使用OpenVPN客户端配置文件设置DNS服务器


16

如何仅使用客户端配置在客户端上设置DNS服务器。我的客户端是Windows计算机,我想在客户端连接时更改DNS服务器,并在与VPN断开连接时恢复为原始配置。

到目前为止,我发现的所有信息都涉及使用服务器的配置将DNS配置推送到客户端,但是在这种情况下,我无法更改服务器配置,并且当前每次连接到VPN时都在手动进行。在连接期间设置本地计算机DNS服务器的openvpn config选项会很棒。

Answers:


3

您可以使用批处理脚本来执行此操作,如下所示。假定您的家庭DNS服务器是1.1.1.1和2.2.2.2,而您的VPN DNS服务器是8.8.8.8 9.9.9.9:

vpn-connect.bat:

netsh interface ip set dns "Local Area Connection" static 8.8.8.8

netsh interface ip add dns "Local Area Connection" 9.9.9.9

vpn-disconnect.bat

netsh interface ip set dns "Local Area Connection" static 1.1.1.1

netsh interface ip add dns "Local Area Connection" 2.2.2.2

我打算在这些脚本中包括连接和断开连接的方法,但是我没有在OpenVPN中看到通过命令行断开连接的选项。如果您希望自动进行连接,这应该可以:

C:\Program Files\bin\openvpn.exe C:\Program Files\conf\client.ovpn


15

您可以将以下内容添加到客户端配置文件。

dhcp-option DNS <dns_server_ip_address>

在服务器端,应该是:

push "dhcp-option DNS <dns_server_ip_address>"

似乎dhcp-option双方都在使用。您可以使用进行相同的操作route


4
尽管看起来应该对我来说这不起作用。该选项不在生成的client.ovpn中。当我添加它时,它仍然不起作用。从华硕RT-N66U运行带有固件所3.0.0.4.376_3861
谢伊

2
我将其添加到<ca>标记之前的.ovpn文件中,并且效果出色!谢谢!我在使用OpenVPN 2.4.4 Windows版本6.2的Windows计算机上对此进行了测试
Michael Kargl

6

显然Windows中的绑定顺序有问题,至少包括Windows 2000 / XP / 7。这将导致Windows OpenVPN客户端使用默认网络适配器的DNS设置,而不是VPN适配器的设置。

要解决此问题,您需要按照绑定顺序将VPN TUN或TAP设备放置在本地网络适配器上方:

  1. 通过查看的输出来识别您的VPN设备ipconfig。对我来说,这是“本地连接2”。记住此适配器的IP地址。
  2. 打开regedit.exe并找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces与您的VPN适配器的IP地址匹配的密钥。记住此适配器的GUID。
  3. 转到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage并双击Bind。这将包含适配器的GUID列表。将与您的VPN设备的GUID对应的行剪切并粘贴到列表的顶部,然后保存列表。

这将导致使用VPN设备的DNS条目(并且仅在VPN连接处于活动状态时)。您可以根据@brunoqc的答案设置它们。在使用它时,您可能还应该添加openvpn选项block-outside-dns,以确保DNS查询不会泄漏。

该答案基于此非常有用的博客文章


效果很好!谢谢您,先生,您撰写了本指南
SeriousM,

3

除了以下两个选项之一:

dhcp-option DNS <dns_server_ip_address>          (add to client config)

要么

push "dhcp-option DNS <dns_server_ip_address>"   (add to server config)

也将它们添加到客户端配置中,以强制Windows使用配置的DNS:

register-dns
block-outside-dns

1强制Windows优先于已配置的DNS服务器,而不是从DHCP接收的其他任何服务器。第二个防止DNS泄漏到配置的DNS服务器以外的任何DNS服务器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.