在被tcp阻断墙的情况下使用v2ray进行爱国上网

几台服务器被tcp阻断墙了,分享一下绕过tcp进行爱国上网的方法,和避免被tcp阻断的方法。

1. 事起

在搬瓦工买了两台服务器,一台是CN2的一台是GIA的,CN2的只运行酸酸,GIA是装了酸酸乳,用户通过域名连接访问,之前用了半年相安无事,在18年七月底的时候突然全部被TCP阻断。赶紧联系换IP,因为GIA的用户比较多,先是换了GIA的IP,域名DNS服务马上从国内转到NS1,并指向新地址保证之前用户能直接使用,过了三天,周一早晨还能访问,中午没到又被TCP阻断。心说可能是高危IP段,换了一家买了一台伯力机房的机器,结果也还是三天,同样TCP阻断。心想我操,阿里云国际的不会还不行吧。又转战阿里云国际,为了不被阿里云杠,特地没在阿里云上直接架设酸酸乳,而是把阿里云做网关,所有流量通过iptable转发到linode新加坡服务器,结果还是一样,阿里云三天倒。这下酸酸乳是彻底不能用了。

2. 换方案

十分神奇的是四台服务器全是TCP阻断,朋友建议无视tcp rst flag,操作起来不现实,只能转向udp。如果考虑udp那么只剩一种方案了,那就是v2ray。

v2ray的话考虑三种方案:

a. vmess + mkcp

该方案花费最少同时是最简单的udp爱国方式,iOS的话美区kitsunebi lite还可以用kcp方式。

b. vmess + websocket + cdn

目前已知的在价格能承受的支持websocket的CDN只有cloudflare,然而问题是免费的毕竟是免费的,不知道啥时候就不稳定了。更何况如果要用cloudflare的CDN比如要配合CF的DNS,这个在国内的体验太差了。如果国内有支持WS的CDN我是愿意用的,可惜并没有。同时在iOS上shadowrocket就支持ws。

c. vmess + http/2 + cdn

h2 CDN的情况好点,CF一样是支持,国内也有不少CDN支持。然而问题是nginx并不支持h2转发…Caddy又实在是不放心…可能性能一样吧,只是个人的毛子倾向在作怪…最重要的是iOS端完全没有支持http2的客户端啊…实在是蛋疼