亚马逊主机被墙的一些反思

今天发现的亚马逊主机被墙,后来思考了一下,考虑从技术处识别的破绽,觉得原来的方案 有问题,特记录如下,以作教育。

在这台主机上, 主要开通了下面的服务:

服务 端口 备注
openvpn 10122  
ssh 22 远程登录
dns 10153 仅支持持tcp查询
shadowsocks 8080 用于翻墙

关于openvpn服务

所有的客户端不会主动连接这个服务,我在国内主机上创建了一个到这个服务器上的ssh代 理连接,连接到国内的服务器上,所有客户端使用代理的方式,连接到远程主机上,这个很 少用,流量也不大,因此问题可能不大。我曾经考虑过由远程主机主动发起,但openvpn的 客户端似乎有问题,反正没成功,不了了之了。

ssh服务不用说了,一般不会因为这个封吧。

shadowsocks服务采用的是aes-256-fb,自定义密码,应该也没问题。

剩下的就是dns了,在很早之前,我用的是韩国的dns,然后有一天发现韩国的dns不返回任何 内容了,而这个dns没有打开ICMP,因此无法ping成功,不返回任何有用的查询说不定是因 为被墙了。然后我就用了一段时间的google dns,问题在于google 的dns速度太慢了(其实 我的这个理解是错误的,使用google dns的时候其实是走了代理的)。后来考虑速度,就在 亚马逊的主机上添加了pdnsd的服务,然后本地的pdnsd指向这个服务器。大概用了一个月的 样子,被封了。

在所有的流程中,除了pdnsd的查询没有被加密外,其他的内容都是被加密的,而tcp dns的查询, 无论是从特征识别还是关键字过滤,都是可以被发现的,因此被墙也就不难理解了。