我使用以下方式设置 OpenVPN这些说明目的是使用 AWS IP 地址而不是我的 ISP 分配的 IP 连接到外界。
连接成功。当我连接到 VPN 并 ping (从客户端)例如 google.com 时,我得到了
Pinging google.com [172.217.9.174] with 32 bytes of data:
Reply from 172.217.9.174: bytes=32 time=122ms TTL=45
Reply from 172.217.9.174: bytes=32 time=262ms TTL=45
Reply from 172.217.9.174: bytes=32 time=119ms TTL=45
Reply from 172.217.9.174: bytes=32 time=121ms TTL=45
与不使用 VPN 连接时速度稍快的 ping 速度相比
Pinging google.com [172.217.6.174] with 32 bytes of data:
Reply from 172.217.6.174: bytes=32 time=84ms TTL=52
Reply from 172.217.6.174: bytes=32 time=85ms TTL=52
Reply from 172.217.6.174: bytes=32 time=89ms TTL=52
Reply from 172.217.6.174: bytes=32 time=82ms TTL=52
然而,当我尝试在客户端的浏览器中加载网站(例如cnn.com)时,加载几乎总是超时。
我尝试添加
sndbuf 0
rcvbuf 0
对客户端和服务器上的 OpenVPN 配置,结果相同。
客户端是 Windows 10,服务器是 Ubuntu 16.04,运行在 AWS Nano 实例上。top
在连接尝试期间没有显示服务器上的任何显著负载。
客户端的连接速度为下行 300 Mbps / 上行 30 Mbps。
我还能够尝试什么来通过 OpenVPN 实现可用的速度?
答案1
由于我目前缺乏声誉,我无法发表评论。
首先,您在 AWS 上的哪个可用区设置了 EC2 实例?我假设是离您最近的一个?您在 AWS 中运行 VPC 吗?这两个都会引入许多其他变量,可能导致网络性能不佳。
我怀疑 t2.nano 不够强大,无法用于 OpenVPN 设置。您遵循的说明明确指出使用 t2.micro。根据我的经验,t2.nano 的网络性能非常差,尽管 t2.micro 也好不到哪里去。
因此,我建议的解决方案是将实例升级到 t2.micro,甚至是 t2.medium(暂时),以排除 AWS 领域的网络性能。
鉴于上述方法不能解决问题,我的下一个怀疑是分割隧道。您的客户端是否强制所有流量通过您的隧道?您可以通过发出 或 来检查这一点route PRINT
。tracert google.com
如果使用 选项,route
那么您应该会看到所有流量都被定向到隧道。如果使用tracert
选项,那么您应该会看到您的第二或第三跳通过您的 VPN。
假设上述两个选项之一显示流量通过 VPN 路由,那么您就知道拆分隧道已被禁用。但这并不意味着 DNS 将按预期工作。尝试执行nslookup google.com 8.8.8.8
。这将强制 Google 的公共 DNS 服务器 (8.8.8.8) 执行域名解析,而不是您的本地网络或 AWS 内的 DNS。现在发出nslookup google.com 192.168.1.1
,将其替换192.168.1.1
为您本地网关(通常是路由器)的 IP 地址。如果这有效,那么最后一个选项是通过 SSH 进入 EC2 实例并发出nslookup google.com
。
如果完成上述所有操作后您仍然遇到此问题,请回复您在执行上述步骤时发现的任何进一步问题。