我处于一个奇怪的境地
10.0.0.100是VPN服务器的内部IP地址。 10.0.0.200是DNS服务器的内部IP。 如果我从外部networking连接到VPN服务器,它一切正常 – 我可以通过他们的IP地址ping和ssh到本地机器。
但是,由于某种原因,我无法访问DNS服务。 我可以ssh到10.0.0.200 。 所以我尝试nslookup HOSTNAME 10.0.0.200 ,但我只得到;; connection timed out; no servers could be reached ;; connection timed out; no servers could be reached ;; connection timed out; no servers could be reached 。 内部和外部域名都会出现这种情况。
当OpenVPN运行时,如果我在局域网中的任何一台机器上运行,并运行nslookup HOSTNAME 10.0.0.200 ,它就像预期的那样工作。 另外,我甚至可以telnet到机器10.0.0.200 53端口。
为了debugging这个问题,我尝试了更多的东西。 我给了DNS服务器的一个外部IP, 10.0.0.200 ,说, 1.2.3.4 。 在外部networking中,我可以运行nslookup HOSTNAME 1.2.3.4 ,该命令按预期执行 – 它可以parsing内部和外部域名。
但是,当我在客户端机器上启动Openvpn客户端,并运行nslookup HOSTNAME 1.2.3.4 ,它没有执行相同的connection timed out; 错误信息。
traceroute to 1.2.3.4 (1.2.3.4), 30 hops max, 60 byte packets 1 5.5.0.1 (5.5.0.1) 25.705 ms 25.714 ms 25.790 ms 2 * * * 3 * * * 4 * * * 5 * * * 6 * * * 7 * * * 8 * * * 9 * * * 10 * * * 11 * * as7065.xe-1-0-6.ar1.pao1.us.nlayer.net (69.22.130.86) 25.742 ms 12 tengig4-3.cr1.lsatca11.sonic.net (69.12.211.6) 25.658 ms 33.069 ms 33.067 ms 13 po2.cr1.colaca01.sonic.net (70.36.205.65) 33.075 ms 33.009 ms 37.902 ms 14 gig1-1-1.gw.snfcca01.sonic.net (70.36.228.102) 40.420 ms 40.332 ms 40.364 ms 15 * * * 16 ...(and go on)
5.5.0.1是OpenVPN创build的虚拟接口的网关。
在那一点上,我也注意到Wed May 18 22:32:44 2011 /sbin/route add -net 1.2.3.4 netmask 255.255.255.255 gw 5.5.0.1 metric 101在openvpn客户端的启动消息中。
所以,我怀疑,通过OpenVPN路由DNS查询stream量是以某种方式导致这个问题。 但是,我不知道
这是很多分散的信息,更多的不确定性。 总结:
我相信你所遇到的问题是DNSMasq的configuration,因为你不断得到;; connection timed out; no servers could be reached ;; connection timed out; no servers could be reached ;; connection timed out; no servers could be reached错误消息。
我在使用OpenVPNconfiguration我的DD-WRT时遇到了同样的问题,并通过添加以下内容来修复它:
interface=tun0
到我的dnsmasq.conf (服务|来自DD-WRT HTTP接口的其他DNSMasq选项)[1]
然后,您可以通过添加以下内容将正确的DNS服务器推送到客户端:
push "dhcp-options DNS 10.xxx"
到OpenVPNconfiguration[2],但是这只能在Windows [3]上“开箱即用”。 在Ubuntu客户端,我只是手动设置我的内部DNS服务器,而不是编写脚本来parsingforeign_option_n参数。
如果你发布你的/etc/openvpn/server.confconfiguration文件,这是最有用的。 特别是,检查你是否推送路由和DNS服务器到客户端:
# give clients access to the whole work network, not just the server. push "route 192.168.10.0 255.255.255.0" # tell clients to use your internal dns server push "dhcp-option DNS 10.8.15.1" push "dhcp-option DOMAIN inside.example.com"
有关更多详细信息,请参阅我的openvpn安装程序howto 。 另外,请检查您的dns服务器是否configuration为允许远程客户端访问,并且vpn服务器上的防火墙允许dnsstream量通过。
您需要configuration您的VPN客户端机器连接到VPN时使用10.0.0.200作为其parsing器。
http://openvpn.net/index.php/open-source/documentation/howto.html#dhcp
您可以通过编辑/etc/resolv.conf(或您的操作系统等效项)并发出DNS查询来手动尝试。
要进一步排查问题,请提供: