为有源头活水来:浅谈双跳梯子

warning: 这篇文章距离上次修改已过354天,其中的内容可能已经有所变动。

双跳梯子(更专业一些的说法是链式代理)这个玩法历来已久,向来也一直是进阶玩家的玩法之一。这玩意说白了,就是先利用机场的线路出境,然后再连接到自己的VPS,通过那个VPS再发往目标网站,有点像非常简化的Tor网络(当然也只是打比方罢了,实际上的匿名性是不如Tor的)

网上似乎都是具体谈教程的,笔者倒是有一些别的东西想分享。

关于双跳梯子

优点

任何东西都有好有坏,双跳梯子笔者能想到的优点有:

用上机场的『神奇』线路

神奇打了个双引号,因为机场这玩意其实很微妙,多多少少可以看作是一个黑盒子,用户把数据塞进去,他帮忙把数据转发出去。至于里面到底是怎么实现的,各家有不同的方法,而且因为是机场的生命线之一,当然也不会公布出来。

在此之中就有一个经常被提及的东西:『专线』

传统意义上的专线当然就是指的专门连接的电路,比如说IPLC/IPEL/MPLS等线路。这类线路的特点当然就是不过墙,低延迟,够稳定——也就意味着,如果你机场挂出来一个专线牌子,实际上也就暗示了『啊啊我这个机场很稳定很快速,大家快来用』这个意思。不过专线的价格并不在低,尤其是最原始的专线一般都是需要资质才能批下来的,机场肯定没这个资质,那么就只有以下三个方法可以走:

  • 购买转包商(转个五六手六七手都很正常)转包出来的玩意
  • 卡Bug(比如人见人爱的阿里云经典内网,现已修复)
  • 挂羊头卖狗肉

第一条,层层转包带来的直接后果就是价格高带宽小,200个人挤一条50Mbps的专线,这个体验也可想而知
第二条,既然是Bug,就有被修复的可能性。比如阿里云内网Bug,如果没记错的话,曾经某天突然修复了,结果搞坏了一大批机场

那么就剩下第三条了。

前面提到过,机场是个黑盒子,鸡场老板做些什么你是看不出来的。那么我可不可以国内外各放一台机器,然后中间用加密隧道(比如TLS)连起来,然后对外声称这个就是内网专线呢?

你猜对了:可以。而且这么弄出来的线路其实带宽很大,给多人使用的完全没有问题的。延迟问题当然无法解决,毕竟公网依然是公网,不过一般用户也不在意这一丁点延迟,反正可以高速看视频,那就可以了。

笔者在此并不对这个行为做什么评价,只是想讨论一下引申出来内容:机场主,一般都会对其卖出来的线路稍微上点心,至少比你去维护VPS线路要上心。毕竟是要拿出来卖的,如果天天卡顿天天被墙,鸡场老板也肯定看不下去了,除非他脸皮真的够厚,不然肯定不会置之不理。

作为用户的我们,当然不能放着这个优势不用的,不然那岂不是亏了?

获取干净的IP

做外贸的朋友,尤其是做TikTok电商直播的朋友可能对此深有感受:自己的账号轻易被平台封号,或者被限流,无观看,无进入直播间,甚至不让注册,等等。很多情况我们经常说『你的IP不干净』是很重要的原因之一。

什么叫不干净?大致以下情况:

  • IP被多人使用(机场节点通病),导致被平台认为是刷单或者刷号
  • IP曾经被人滥用(比如垃圾邮件,诈骗,DDoS)
  • IP是代理IP,VPN IP,存在被人滥用的风险
  • IP是服务器IP,存在被人用作跨境链路的风险
  • IP变来变去,上一秒在美国下一秒在香港

基本上就是这几点,可以让平台认为这是『账IP』或者『脏账号』。通常不同平台判断规则也不一样(当然也不会公开,不然会被有心之人利用),但是几乎可以肯定的是,如果上面的检查不通过,平台必然会拒绝你进入,或者给你降权,走两步就蹦出来一个验证码让你滑滑块。

这也就是为什么,卖代理IP(一般是提供HTTP/Socks5代理)的,以及自建梯子的,在外贸行业都长盛不衰。这两者都可以在某程度上提供相对干净(甚至是你独享的,固定不变的)的IP,更利于业务开展。但是缺点也显而易见:前者无法直接连接(GFW看到你明文HTTP/Socks代理过墙,高兴的不得了,毫不费力就能掐掉连接),后者连接质量不一定好,还有被墙的可能性,一被墙就要暂停业务,这就是一大损失。

双跳梯子就完美解决了这个问题:使用机场线路出墙,然后用代理服务或者VPS来『洗白』IP,就可以顺利开展业务了

保护隐私

机场可以有审计记录,这个我在『搭建自己的出海专线』一文中提到过了。简单讲就是,不管是HTTP还是HTTPS,机场老板都可以获取『你在什么时间访问了什么域名』这个信息。HTTPS当然不会导致网页内容被窃听,但是SNI信息也会暴露你的连接去向

双跳梯子的话,机场节点解密出来的数据也是经过二次加密(在你的客户端上完成)的,无法看到实际内容,只能看到一堆加密数据发往你的VPS而不是实际的网站,隐私泄露问题自然也就不会发生了。

缺点

凡事都有优缺点,双跳梯子也不例外

价格较高

直觉上很好理解,原本你只需要单付机场钱,或者单付VPS钱,现在你要付两份钱了。

不过实际的成本到底会不会上涨,其实还真的有待商榷。一方面『一个便宜机场+一个便宜VPS』并不一定比『一个线路的VPS』效果差,价格也不一定比他贵。其次就是,如果让我选,我宁可选择稍微稳定些的前者,让鸡场老板帮我修理线路,而不是自己费心去换IP换线路,隐形的时间成本和精力成本就这么被省下来了。

延迟较高

毕竟数据多走了一跳,延迟会高一些

但是也不会高太多,顶多也就几个毫秒,如果你不是对延迟有高要求的FPS玩家,那么其实真的察觉不出来(而且,玩游戏的,也不推荐自己搭建了,买成品加速器其实更好。)

配置较复杂

这个就是实打实的问题了,所以我才会在开头把双跳梯子归类为进阶玩家的玩法。由于很多代理软件并不会在GUI界面提供实现『双跳』的方法,必须要你去手写一份适合自己的配置文件。手写配置文件就需要你对这个代理软件有一定的认知度,『只懂得一键连接』的用户就被排除掉了。

即使配置文件写好了,用起来也不一定如意,总会有些莫名其妙的问题在等着你。如果是进阶玩家自然知道该怎么解决,但是如果是小白用户,那么这也是一个技术难题。


所以究竟要不要使用双跳梯子,就取决于你的用途了。笔者最后选择了『需要』,就是结合自己的需求得出来的结论:我需要IPv6出口,但是机场不提供!

落地协议的选择

确定用途之后就需要确定另外一个东西:落地协议。

在这里先做一下名词的定义,落地协议指的是包裹在内层的,在你的客户端到真正的落地机之间的传输协议。与之相对应的,我给它起个名字叫起飞协议,也就是在外层(用来形成一个隧道)的协议。

这么说你可能不太明白,下面来解释一下。一般我们在使用科学工具的时候,客户端对代理数据进行加密等处理,发往节点服务器,由节点服务器解密之后再发给目标网站。这个节点服务器可以是别人的,也可以是你自己的,由于只有一层加密,所以解密之后,服务端知道这个数据包内容是啥,要发往何处。

而在双跳梯子的应用中,客户端先对代理数据用落地协议加密一次(在内层),再用起飞协议加密一次(在外层),然后一起发给节点服务器。节点服务器拿到数据之后解密外层,但是此时因为内层的密码不在节点服务器手上,他只能按部就班的把这些数据发给真正的落地服务器。真正的落地服务器拿到之后,用落地协议所指定的密码,对数据进行解密,然后发给目标服务器。

可以看到,因为对数据进行了两次加密,所以在客户端其实是有额外的运算步骤的,理论上这会对速度产生一定的影响,但实际上一般都可以忽略不计,或者可以接受。但是毕竟能少一点是一点,尤其是延迟问题,最好是降到最低,所以做出一定的优化,其实也情有可原。

起飞协议是机场已经定好的了,就SS/VMess什么的,这个就不可变动了,所以不在讨论范围内。至于落地协议,一般来说,我们推荐用自建的vps去做落地机,所以至于具体要什么协议,就是你自己的事情了,可以选择的空间,自然也就会大一些。同时,因为此处的数据受到了起飞协议的保护,所以说一些被认为是过时的协议,也可以被应用上去,只要是方便就行了。

细细琢磨,其实有以下几种可选的方案:

HTTP/Socks5

这些是传统的代理方案,没有加密,老实说也是笔者不太推荐的一种方案。即使你不太担心自己的传输内容被别人看到,也会因为是明文鉴权的方式而被别有用心的人扫描到拿去滥用。

SS/SSR

笔者目前正在用的方案就是SS。

SS足够轻量,也没有额外的握手开销,而且不容易被人盗用,这是它相对于传统Socks5协议的一个特点。

VLESS+mKCP(with Seed)

这个方案其实比较dirty,而且不适用于使用传统ss协议(不包括Xray和sing-box那边弄的UoT协议)的机场做起飞协议的情况。因为这玩意是用udp传输的,传统ss协议,会直接利用原生udp来传输数据,在容易被ban的同时,传输效果也不是很理想。

如果在确定你的机场支持uot的情况下,这个方法其实也不是不能接受,因为KCP的特性,它有助于改善从机场节点服务器到你的vps之间的一些传输问题。不过,KCP协议本身来说有点暴力,属于是一种损人利己的协议,因此不到特殊时候,还真不建议去使用它。

此外,标题中讲到的with seed,是v2ray的一个功能,大概意思是对KCP数据加一个额外的对称加密混淆层,来达到数据保护的目的。笔者建议是加上,不然数据直接在公网裸奔,不太妙。

OpenVPN/WireGuard

优点当然是可以完整传输三层数据,缺点你就是握手比较麻烦,以及分流也稍微麻烦一点。

当然,最重要的一点是,要想达到效果最好,就必须多开软件(比如v2ray本体和OpenVPN客户端),而不能像上面的协议那样用一个软件搞定。

不推荐的协议

  • Websocket:没那个必要,只是增加了额外的握手开销
  • TLS:同样是没那个必要,除了增加握手开销之外,安全性的提升有是有,但对一般人来说并不怎么明显。毕竟固定密钥的混淆加密,已经几乎足够安全了,除非你的配置文件天天泄露,不然几乎没有人能解密你的数据
  • VMess:在目前的情境下,就和SS一样了,不如直接用SS。当然了,如果你有单端口多用户的需求,考虑一下VMess也不是不行
  • SoftEther VPN:除了官方软件外,几乎没有比较便利的客户端支持他,而且速度也不太理想。除非你想传二层数据包,不然OpenVPN/WireGuard比较好

写在最后

门虽设而常关
但我想凿个眼

(全文完)

none
最后修改于:2023年12月15日 17:37

添加新评论