道高一尺,魔高一丈,网络监管与反监管技术永远在更新和升级。现状是,除了简单粗暴的封锁,对数据包内容与来源的深度分析也在逐渐增强,监控已经从互联网出口、骨干网一路延伸到了家庭光猫。因此,我们需要定期更新自己的技术栈和工具库,使用不同类型、不同连接方式的加密数据通道作为备份。
之前文章中介绍的一些技术已经稳定运行了很长时间,并为了保障安全和可用性,分布于不同国家的多台服务器。
近期我对其中一部分技术进行了升级改造,并进行了测试和研究。
但本文只讨论形式和结果,不包含过程,也不涉及教程。
使用CDN隐藏并加速海外服务器入口
国内到国外的网络出口有很多条,有的稳定些,有的波动很大,况且国内的网络本身也有影响。
况且还有一个因素就是你的国内IP频繁连接一个固定海外IP,哪怕墙无法探测出具体的传输数据,一样可以被标记为高危行为而阻断连接。
如果用的是某些机场扎堆的vps,搞不好这个行为本身就和访问危险网站一样触发反诈。
这种时候为了保护海外IP地址本身不被墙内探测(包括简单的主动探测和重放攻击),也为了避免通过国内IP找到本人,就需要将它隐藏起来。
而这时候之前部署的方式就显现出了它的优势:纯HTTP Server,可以走CDN。
Cloudflare的CDN免费、速度快且布局极广,是个首选。其他的海外CDN也没有问题,只要支持websocket即可。
而使用Cloudflare CDN更大的优点是它自带ssl证书,而为了传输安全,可以下载它的Origin证书回源(有效期10年)。这样就有了一个全程加密的数据链,也无需自己手动签发部署证书了,节省了一大块精力。
如果域名已经托管在Cloudflare,只需把原先DNS中的改成即可,其它不必修改。
由于原服务器的线路已经很好,换成Cloudflare后也没有太大改进,只是入口IP被隐藏了。如果原始IP和大陆的线路较差的话,应该能有明显的改善。
使用Warp获得动态优质的出口IP
Warp是Cloudflare ZeroTrust产品的一部分,初衷原本是快速搭建安全的企业VPN网络,底层使用的是Wireguard技术,比起OpenVPN等传统方案要轻量很多。
我们并不需要使用它的额外功能,但有一个更刚需的行为:除了入口IP要保护之外,固定的出口IP也不安全。你直接通过代理IP访问网站,对方可以记录,可以分析,可以拉黑。OpenAI和很多网站都会拒绝被标记为不安全的IP地址,我之前使用IPV6 tunnel规避了这个问题,但这也不是一劳永逸的。
甚至还要防止一种更严重的行为——在社工学中针对你本人或广撒网进行钓鱼。给你一个海外假链接,你爬梯子访问就直接暴露了自己的代理IP和一些个人信息。
所以我们需要Warp,一旦拨入它的vpn,再对外访问就等于借道Cloudflare的出口,完全隐藏了自身来源。
Warp的注册和安装比较麻烦,我用的是https://github.com/P3TERX/warp.sh的脚本,但并没有使用它的全局网络出口,只是创建了一个本地Socks5代理:
然后使用proxychains4,先安装,然后在/etc/proxychains4.conf最后追加一句:
socks5 127.0.0.1 40000
再给shadowsocks-libev套上代理就行。
具体做法,例如原来/lib/systemd/system/shadowsocks-libev.service文件中的启动命令是:
ExecStart=/usr/bin/ss-server -c /etc/shadowsocks-libev/config.json $DAEMON_ARGS
现在改成:
ExecStart=/usr/bin/proxychains4 /usr/bin/ss-server -c /etc/shadowsocks-libev/config.json $DAEMON_ARGS
即可。
所以……还要自己的服务器吗?
看到这里时,恐怕稍动动脑子就会想到另一个事实:
从Cloudflare的CDN入,再从Cloudflare的Wrap出,那为什么不干掉中间商,全流程交给Cloudflare算了?
你还别提,自从Cloudflare开始由纯粹网络架构转向全栈云服务后,搞出了pages(静态网页)、workers(轻量边缘计算)、KV(键值数据库)、甚至还有更像模像样的消息队列、关系数据库、GPU云……
那些多余的姑且不提,单独这个workers就足以搞定我们的需求。
有人已经写了轻量级vless脚本,edgetunnel,配置起来也很容易。在youtube上、各种网站上都有手把手教程甚至一键部署按钮。
但坏就坏在这个“手把手”上,某种技术门槛越高用的人肯定越少,真不会的就花钱去买、有问题问客服了。但强行把原本门槛高的东西硬交给完全不懂的小白或者一知半解的普通玩家,不仅导致各种低级错误暴增,甚至很多人会拿着教程里默认的配置硬上,连ID和密码都不改的。
对了,全Cloudflare方案的最大诱惑是免费,现在再加上并不复杂的配置,恐怕很快就要蜂拥而上变成主流了。
如果墙想查,先用默认密码扫一遍,恐怕就能查出几百上千个查实的翻墙小白。各地公安要真靠这个刷政绩或创收,肯定也是先朝着容易的来。
言归正传,edgetunnel的脚本我看了一遍,vless确实轻量级,改了几个配置和域名后就直接部署上了。
用客户端连上之后,速度不慢,和前面我包装了出入口的服务器差不多。当然我那个线路比较好,要是以前常年用渣线路的话,肯定明显感觉这个的速度很快。
但有个很尴尬的点:可能由于一些内部安全策略原因,Cloudflare workers不能访问Cloudflare自己的IP……
换句话说你上Google、油管、推特啥的都没问题,但现在大量海外网站都用了Cloudflare前置CDN和防DDOS,用workers等于和这些网站直接告别了。
优点很明显,免费、简单、省心;缺点除了网站受限之外,可能在未来一年半载之内蜂拥而入的用户会导致政策发生变化,前途未卜。
所以拿workers当梯子可以作为一个临时且免费的备选,但绝不能作为唯一手段。
写到一半发现内容太多,拆成两篇。下篇见:一些新网络技术实测(下)