假设您可以通过SSH通过IP“ your.ec2.ip.address”访问您的AWS。假设您的办公室网络可以通过应用某些NAT转换的路由器访问Internet,这样,您的办公室PC就可以在Internet上使用IP“ your.office.external.ip”进行访问。
让我们还假设你所在OUTSIDE你的办公室,你的笔记本电脑连接世界各地,有:
- 由您当地的Internet提供商分配的主IP地址(假设192.168.0.33,网络掩码255.255.255.0和def-gw 192.168.0.1);
- 由远程PPTP服务器分配给笔记本电脑的PPP0地址(成功建立VPN通道后)。假设PPP0是带有远程P2P the.remote.pptp.address的.local.ppp0.ip。换句话说,您的笔记本电脑知道是.local.ppp0.ip,并且还知道在VPN隧道的另一端,通过.remote.pptp.address可以通过VPN到达您的PPTP服务器。
在这种情况下,如果您无法从笔记本电脑通过“ your.ec2.ip.address”到达您的AWS,那么我敢打赌,问题就在于您所猜测的路由:将您的SSH流量定向到“ your.ec2.ip.address” 不会将您的上网本留在VPN内,而是会沿着公用的外部VPN路径(又名:发送到您的本地网关:192.168.0.1)离开。
要诊断此问题,可以使用以下方法轻松检查:
- Linux:tracepath命令(例如:“ tracepath -n your.ec2.ip.address”)
- Windows:“ tracert”命令(例如:“ tracert -d your.ec2.ip.address”)
从输出中,您可以检查第二步是否报告PPTP地址。
如果您的流量沿错误的路径传播,则在VPN中路由的简单方法是:
- Linux:“路由添加-host your.ec2.ip.address gw the.remote.pptp.address”
- Windows:“路由添加your.ec2.ip.address掩码255.255.255.255 the.remote.pptp.address”
配置完上述路由后,您可以使用tracert / tracepath再次检查路由
一旦正确配置了路由,您办公室内出现问题的可能性就很小:如果您的PPTP服务器没有进行IP转发和NAT转换,则很可能会遇到“过滤”的情况,笔记本和your.ec2.ip.address之间缺少ip转发或“不对称路由”(如果缺少NAT):
- 从您到亚马逊的流量,沿着VPN到达您的办公室,再到亚马逊。
- 将流量从亚马逊返回给您,沿着通用的互联网路径路由,并且...被丢弃的可能性很高。
同样:tracepath / tracert可以帮助您检查问题。
在Linux机器上,另一个非常有用的朋友是“ tcpdump”。一些有用的tcpdump命令是:
- “ tcpdump -n -i interface icmp”检查传入/传出的PING请求/响应;
- “ tcpdump -n -i host an.ip.add.ress ”检查到达/发送到an.ip.add.ress的流量;