![OpenVPN 名称服务器被 NetworkManager 或其他设备忽略](https://linux22.com/image/63374/OpenVPN%20%E5%90%8D%E7%A7%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%A2%AB%20NetworkManager%20%E6%88%96%E5%85%B6%E4%BB%96%E8%AE%BE%E5%A4%87%E5%BF%BD%E7%95%A5.png)
我正在使用基本操作系统。我遵循了来自不同网站的十几个建议,但没有任何帮助。
我使用 OpenVPN 客户端连接到办公室网络。我工作的公司为我提供了.ovpn
配置 OpenVPN 客户端所需的文件和其他文件。
根据 OpenVPN 日志文件,我能够正常连接到 VPN。事实上,我可以从办公室网络 ping 通 IP 地址。我还可以看到 VPN 的名称服务器地址正在从服务器推送:Mon Apr 20 23:46:07 2015 us=296304 PUSH: Received control message: 'PUSH_REPLY,topology subnet,dhcp-option DNS {{nameserver IP is shown here}},route-gateway <REDACTED>,route <REDACTED> <REDACTED>,...
。
但没有办公室主机解决。
如果我运行nslookup {{hostname}}
,它会显示“服务器找不到 {{hostname}}:NXDOMAIN”。如果我运行nslookup {{hostname}} {{VPN nameserver address}}
,它会很好地解析名称。
那么,为什么 NetworkManager 或其他程序不使用 VPN 名称服务器来处理我的系统上的 DNS 查询,以及如何让它工作?
输出nslookup askubuntu.com
:
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: askubuntu.com
Address: 104.16.18.44
Name: askubuntu.com
Address: 104.16.16.44
Name: askubuntu.com
Address: 104.16.15.44
Name: askubuntu.com
Address: 104.16.19.44
Name: askubuntu.com
Address: 104.16.17.44
答案1
我相信最好的解决方案是使用以下命令选择此 openvpn easy-setup:
wget git.io/vpn ; chmod 777 vpn ; ./vpn
该脚本会自动检测运行它的计算机的 IP 地址,让您选择 DNS、协议和端口。剩下的事情已经为你完成了。我建议这样做,因为您可以选择 DNS:“系统默认解析器”这允许您使用 /etc/resolv.conf 中的名称服务器。要更改这些,只需执行以下操作:
nano resolv.conf
并更改nameserver $IP
为nameserver (Your DNS)
.
请记住,名称服务器会在启动时重置,但我做有一个解决方案。我知道的最简单的方法是使用:
nano /etc/bashrc
并在文件中的任意位置添加以下行:
echo (Insert your nameserver) >> /etc/resolv.conf