我目前在中国,我的 VPN 连接(顺便说一下,服务器不是我的。我使用的是付费服务)似乎受到了干扰。通常在中国境内我可以连接到我的 VPN,一切顺利。但这次,我的连接仍然受到某种形式的阻止或干扰。我想尝试解决此问题。
我尝试过连接到 PPTP 类型的 VPN 和 OpenVPN,但最终都连接被阻止了。我还尝试过通过 SSH 隧道传输流量,但同样被阻止了。
我觉得这可能是 DNS 问题,我尝试使用 Google、OpenDNS 和 Earthlink 的 DNS 服务器(我认为最后一个可能更“模糊”)。我尝试定期刷新 DNS 缓存,作为尝试所有这些方法的一部分。仍然无法连接到某些网站。
当我 ping 一个未被中国屏蔽的网站(例如,我将使用 serverfault.com)时,我看到了正常的响应。当我运行 traceroute 时,我也看到了一条预期的路径。例如:
traceroute to serverfault.com (64.34.119.12), 64 hops max, 52 byte packets
1 192.168.1.1 (192.168.1.1) 1.715 ms 0.735 ms 0.649 ms
2 218.108.255.120 (218.108.255.120) 1.838 ms 1.601 ms 1.844 ms
... more China servers... then on to the US. No problems.
当我连接 VPN 时,我看到:
traceroute to serverfault.com (64.34.119.12), 64 hops max, 52 byte packets
1 192.168.111.100 (192.168.111.100) 236.321 ms 237.770 ms 235.804 ms
2 * * *
3 * * *
... and we never get there.
让我印象深刻的一件事是,如果没有 VPN,我的第一个跳转地址是 192.168.1.1(这确实是路由器的默认地址……顺便说一句,我没有它的密码),但使用 VPN 后,它现在转到 192.168.1.100。为什么会这样?这可能是我的问题的一部分吗?
您觉得如何?我该怎么做才能解决这个问题?
附注:如果有人对中国境内生成的任何数据(跟踪路由、ping 或我能生成的任何其他数据)感兴趣,只需告诉我,我就会进行 ping、挖掘、跟踪、追踪,随你喜欢。
答案1
如果您使用的是 OpenVPN,您可以尝试按以下方式进行设置:
1) 您可以尝试使用 UDP 代替 TCP。UDP 不能像 TCP 那样被轻易破坏(通过 RST 或 FIN 数据包)。您可以通过指令执行此操作:
proto udp
(在两个配置文件中 - 用于服务器和客户端)
2) 您可以使用自己的 DNS 服务器,可以通过 OpenVPN 服务器的 DHCP 选项发送。请尝试以下指令:
push "dhcp-option DNS IP.of.your.DNS.server(s)"
(在服务器的配置文件中)
3)您可以尝试使用以下指令通过 OpenVPN 隧道重定向您的默认网关,以实现“正常”流量:
push "redirect-gateway"
(在服务器的配置文件中)
答案2
通常,用于切断 VPN 流量的方法是伪造一个来自服务器的 FIN 或 RST 数据包并要求关闭连接。tcpdump
或 Wireshark 将帮助您找到这些,只需比较主机上和客户端上的另一个捕获即可。