Dns
OpenVPN 客戶端不使用 VPN DNS 伺服器
我已經在私有網路上設置了一個 OpenVPN 伺服器,以及一個 DNS 伺服器來解析私有 DNS 地址。
在 OpenVPN 伺服器上,我在客戶端 DNS 配置中設置了私有 DNS 地址。我有三個客戶端,分別執行 Android、Ubuntu 和 Raspbian。
Android 和 Ubuntu 客戶端似乎使用私有伺服器;至少我可以解析私人名稱。但是,這在 Raspbian 客戶端上不起作用:無法解析私有地址,並
nslookup
返回來自客戶端 LAN 上的 DNS 伺服器的響應,而不是 VPN 的遠端端。當我在互動模式下執行 nslookup 並顯式設置伺服器時,查詢被解析,這告訴我 DNS 查詢可以通過 VPN 而不會被阻止。問題似乎是客戶端正在查詢錯誤的 DNS 伺服器。
這是 Raspbian 客戶端的配置:
client remote 'vpn.example.org' ca 'ca.pem' cert 'cert.pem' key 'key.pem' cipher AES-128-CBC dev tun proto udp verify-x509-name 'vpn.example.org' tls-auth 'hmackey.pem' 1 auth SHA256 nobind auth-nocache script-security 2 persist-key persist-tun
其他兩個客戶端是使用 GUI 工具配置的,因此我無法提供可靠的配置文件(他們提供 exp
我是否需要在客戶端設置任何內容才能讓客戶端使用 VPN 上的 DNS 伺服器?
根據serverfault 上的這個答案,一些 Linux 版本需要在客戶端配置中添加兩行額外的行,以在 VPN 啟動或關閉時更新解析器配置:
up /etc/openvpn/update-resolv-conf down /etc/openvpn/update-resolv-conf
此外,內部 DNS 伺服器需要配置為接受來自 VPN 的遞歸查詢。預設情況下,某些伺服器(例如 BIND9)只允許來自 DNS 伺服器自己子網的查詢。
通過這兩個更改,我現在可以解析私有名稱。