Jee*_*Kim 2 networking domain-name-system linux openvpn
我在一个奇怪的情况。
10.0.0.100 是VPN服务器的内部IP。10.0.0.200 是DNS服务器的内部IP。如果我从外部网络连接到 VPN 服务器,则一切正常 - 我可以通过本地计算机的 IP 地址 ping 和 ssh 连接到本地计算机。
但是,由于某种原因,我无法访问 DNS 服务。我可以 ssh 进入10.0.0.200. 所以我尝试了nslookup HOSTNAME 10.0.0.200,但我只得到了;; connection timed out; no servers could be reached。内部和外部域名都会发生这种情况。
当 OpenVPN 运行时,如果我通过 ssh 连接到局域网中的任何机器并运行nslookup HOSTNAME 10.0.0.200,它会按预期工作。而且,我什至可以 telnet 到机器的 53 端口10.0.0.200。
为了调试这个问题,我尝试了更多的东西。我给了 DNS 服务器一个外部 IP 10.0.0.200,例如,1.2.3.4。在外部网络中,我可以运行nslookup HOSTNAME 1.2.3.4,命令按预期执行 - 它解析内部和外部域名。
但是,当我在客户端机器上启动 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)
Run Code Online (Sandbox Code Playgroud)
5.5.0.1 是OpenVPN创建的虚拟接口的网关。
那时,我还注意到
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 查询流量以某种方式导致了问题。然而,我不知道
这是很多零散的信息,还有更多的不确定性。总结一下:
小智 5
我相信您遇到的问题是 DNSMasq 配置,因为您不断收到;; connection timed out; no servers could be reached错误消息。
我在使用 OpenVPN 配置我的 DD-WRT 时遇到了同样的问题,并通过添加以下内容来修复它:
interface=tun0
Run Code Online (Sandbox Code Playgroud)
到我的dnsmasq.conf(服务 | DD-WRT HTTP 接口的附加 DNSMasq 选项)[1]
然后,您可以通过添加以下内容将正确的 DNS 服务器推送到客户端:
push "dhcp-options DNS 10.x.x.x"
Run Code Online (Sandbox Code Playgroud)
到 OpenVPN 配置 [2],但这只能在 Windows [3] 上“开箱即用”。在 Ubuntu 客户端上,我只是手动设置我的内部 DNS 服务器,而不是编写脚本来解析foreign_option_n参数。