如何推我自己的DNS服务器到OpenVPN?

我已经在我的VPS上定义了一个ubnound的 DNS服务器,它似乎工作。 我需要使用DNS服务器而不是公有DNS IP,因为有些ISP已经阻止了公有DNS IP。 我的openvpn.conf文件是:

dev tun proto tcp # Notice: here I set the listening port to be 80 to avoid possible port blockage port 80 ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt cert /etc/openvpn/easy-rsa/2.0/keys/server.crt key /etc/openvpn/easy-rsa/2.0/keys/server.key dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem user nobody group nogroup server 10.8.0.0 255.255.255.0 persist-key persist-tun #status openvpn-status.log #verb 3 client-to-client push "redirect-gateway def1" #pushing public DNS IPs push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.222.220" comp-lzo 

正如这里所build议的,我试图使用我的服务器的IP(比如说11.22.33.44)。 所以,而不是

  push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.222.220" 

我只是放

 push "dhcp-option DNS 11.22.33.44" 

在上面的openvpn.conf中。 但是,重新启动openvpn后,我发现我的客户端仍然可以连接到OpenVPN服务器,但是不能再显示页面。

这里有什么可能是错的? 我该如何解决这个问题?

Windows 10客户端上,您需要将下面的指令添加到client.ovpnconfiguration文件中:

 script-security 2 dhcp-option DNS 192.168.1.1 dhcp-option DOMAIN example.lan 

没有更多的指令是必需的窗口。

Ubuntu 16.04客户端上,您需要将下面的指令添加到client.ovpnconfiguration文件中:

 script-security 2 dhcp-option DNS 192.168.1.1 dhcp-option DOMAIN example.lan # Only on ubuntu client, you also need following directives: up /etc/openvpn/update-resolv-conf down /etc/openvpn/update-resolv-conf 

最新的windows版openvpn客户端版本无法正确识别选项DOMAIN-SEARCH ,并与选项DOMAIN

你说这“看起来有效”。 你是怎么validation的? 你是基于服务器启动没有任何错误的事实,或者你真的执行一些查询呢?

我会做的第一件事是使用NSLOOKUP或挖掘连接到未绑定的服务器,并执行一些查询。 我知道这些日子挖掘更时尚,但我更了解nslookup。

 $ nslookup > server 11.22.33.44 Default server: 11.22.33.44 Address: 11.22.33.44#53 > set type=A > www.google.com Server: 11.22.33.44 Address: 11.22.33.44#53 Non-authoritative answer: www.google.com canonical name = www.l.google.com. Name: www.l.google.com Address: 74.125.225.52 Name: www.l.google.com Address: 74.125.225.48 Name: www.l.google.com Address: 74.125.225.49 Name: www.l.google.com Address: 74.125.225.50 Name: www.l.google.com Address: 74.125.225.51 

如果这不起作用,那么你必须再次回顾DNSconfiguration。

这是主DNS服务器还是cachingDNS服务器? 你想查询本地资源或互联网资源? 如果不将DNS服务器推送到客户端,是否按预期工作?

如果您通过OpenVPN服务器传递所有stream量,则不必担心ISP阻止公共DNS服务器,因为就您的ISP而言,您只能为您的VPS生成stream量; 除非VPS在同一个ISP之后。

事实certificate,如果您尝试从非Windows客户端连接,则需要执行一些额外的步骤:

在Linux上

把这一行放在你的客户端configuration( client.confxxxx.ovpn文件)

 dhcp-option DNS 11.22.33.44 

以这种方式调用OpenVPN客户端:

 $ openvpn --script-security 2 --config xxxx.ovpn 

这对我有效。