超时OpenVPN

我使用这些指令来设置OpenVPN,目标是使用AWS IP地址连接到外部世界,而不是我的ISP分配的IP。

连接成功。 当我ping(从客户端)例如google.com,而连接到我得到的VPN

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 

到客户端和服务器上的OpenVPNconfiguration,结果相同。

客户端是Windows 10和在AWS Nano实例上运行的服务器Ubuntu 16.04。 在连接尝试期间, top不会在服务器上显示任何重要的负载。

客户端的连接速度降低了300 Mbps / 30 Mbps。

还有什么可以尝试通过OpenVPN实现可用的速度?

由于我目前缺乏声誉,我无法评论。

首先,您是在AWS上设置了哪个可用区域的EC2实例? 我假设一个离你最近的人? 你在AWS中运行VPC吗? 这两个都引入了许多其他可能导致networking性能差的variables。

我怀疑t2.nano对于OpenVPN安装不够健壮。 你遵循的指示明确说使用t2.micro。 根据我的经验,t2.nano的networking性能差,但是t2.micro并不是那么好。

因此,我build议的解决scheme是将实例升级为t2.micro,甚至是t2.medium(暂时),以排除AWS域中的networking性能。

这里是关于EC2networking性能的进一步阅读

这里是关于EC2 vCPU /内存性能的进一步阅读


鉴于上述不能解决问题,我的下一个怀疑将是分裂隧道的一个可能的问题。 你的客户是否强迫所有stream量通过你的隧道? 您可以通过发行route PRINTtracert google.com来检查。 如果使用route选项,那么你应该看到所有的stream量都被引导到隧道。 如果使用tracert选项,那么你应该看到你的第二或第三跳通过你的VPN。

鉴于上述两个选项之一显示通过VPN的stream量路由,那么你知道分离隧道被禁用。 但是,这并不意味着DNS将按预期工作。 尝试执行nslookup google.com 8.8.8.8 。 这迫使谷歌的公共DNS服务器(8.8.8.8)做域名parsing,而不是你的本地networking,或在AWS内的DNS。 现在发出nslookup google.com 192.168.1.1 ,用本地网关(通常是你的路由器)的IP地址replace192.168.1.1 。 如果这个工作,那么最后一个选项是SSH进入EC2实例,只发出nslookup google.com


如果在执行完所有上述操作后,仍然遇到此问题,请回复您在执行上述步骤时所做的任何进一步调查结果。