我已经在私有网络上设置了一个 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 服务器?
答案1
根据这个答案关于服务器故障,某些 Linux 版本需要在客户端配置中添加两行,以便在 VPN 启动或关闭时更新解析器配置:
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
此外,内部 DNS 服务器需要配置为接受来自 VPN 的递归查询。默认情况下,某些服务器(例如 BIND9)仅允许来自 DNS 服务器自己的子网的查询。
通过这两项更改,我现在可以解析私有名称。