19BIG期间,网络环境又恶化了,唉,要连个Github,google这么难.本来一直用SS,手上有很多台VPS.基本都挂了SS。没想到这次居然封IP,奶奶的,虽说换一个IP就能用段时间,但是也不是办法啊,难道一直换IP?总有IP用完的时候,加上有些VPS服务商好说话帮你换了,有些就不换。唉,本来人就懒,能用别人的就用别人的,最近在研究NodeJS,加上环境形势所迫,自己动下手吧,权当练习NodeJS编程吧。(脑子里突然浮现出 爱国者电影的情节 官逼民那个啥)

前提基本知识

        所谓墙,可能有不对啊,不知道他们是怎么运作的,但是在我这个程序员看来,不过就是一个包过滤和包嗅探。(最早有DNS污染,暂时不讨论,这种改HOST文件就能解决的事情,有点像土法炼钢,墙虽然还用着,但是早就淘汰了了)无论是代理,SSH,各种隧道,Tor,包括SS都是有一定的包协议,也就是格式存在的,所以通过研究了解包协议,然后墙就可以定点清除之间的通讯。

比如证书型代理,通过伪装一个请求,拿到证书,定点清楚所有IP,比如Tor伪装客户端获取服务节点IP定点清除。

比如HTTP,明文代理,则是更进一步,通过解析包,进行内容判断,不过这个数据如果是明码好实现,加密之后,对于即时通讯其实是有难度的。所以直接BAN…

这也是为啥没有明显特征的SS很难识别,很难清除的原因,当然最近还是。。。。

所以协议越多,也就是包越复杂,越容易被识别,墙的目的是只是阻碍通讯而已,随便找一个就行。

备注:关于SS的通讯格式,https://loggerhead.me/posts/shadowsocks-yuan-ma-fen-xi-xie-yi-yu-jie-gou.html 有说明

解决方案(验证中)

         SS被请去和咖啡的那位说,翻那个啥,最重要的不是你要翻出去是不要暴露你的在提供翻的服务。所以各种加密,关键是开始阶段的问询还是有特征的。不大看好最近插件的更新,唉。当然特征是免不了的,但是如果省略掉联络问询,并且把包的定义交给客户来定义,是不是就会产生无数种特征,无数种特征也就等于了没特征。我们无非就是要建一个隧道,用Socket编程,省去一切不必要的定义,无脑数据传输。  

格式是 

数字(即包长) + 包数据  

!这种特征广泛用于Socket通讯中,如果这个被封基本就大中华局域网了,GFW存在的价值就没有了。其实包括这个也是可以改的

具体数据包的格式用户自定义。

特征可以是各式各样的比如 

12byte包头,32byte包头信息,64k数据  ;

16byte包头,16byte包头信息,32K数据;

32byte包头,32byte包头信息,12K数据

48byte包头,无包头信息,48K数据

(包头主要用于识别有效数据方便丢弃,和判断异常链接,包头信息用于扩展机能,RSV完全可以没有)你可以在包头里面写点问候GFW的话,也可以给你的女朋友或者老婆表白祝福一下。如果墙识别了你的格式,华丽的换一个。。。。

包数据部分,自选加密压缩,可以不加密不压缩,聊胜于无,比如我这样的看到我的数据在网上明码传递不爽的。。。。

一万句话归一句话,这个只是个通道软件,实现从你的端口透明到另外一个机器上另外一个端口的通讯。。。用者自担其责。

回到标题,翻一道墙所需要的技术?

代码200行足以。。。

https://github.com/akechi1980/ATunnel

最后附上附上一些天朝法律

1.我国《宪法》第40条:中华人民共和国公民的通信自由和通信秘密受法律保护。除因国家安全或者调查刑事犯罪的需要,由公安机关或者检察机关依照法律规定的程序对通信进行检查外,任何组织或者个人不得以任何理由侵犯公民的通信自由和通信秘密。
2.《刑事诉讼法》第116条:侦查人员认为需要扣押犯罪嫌疑人的邮件、电报的时候,经公安机关或者人民检察院批准,即可通知邮电机关将有关邮件、电报检交扣押。不需要继续扣押的时候,应即通知邮电机关。
3.《刑事诉讼法》第118条:对于扣押的物品、文件、邮件、电报或者冻结的存款汇款,经查确实与案件无关的,应在3日内解除扣押,退还原主或原邮电机关。
4.《刑法》第252条:隐匿、毁弃或者非法开拆他人信件,侵犯公民通信自由权利,情节严重的,处一年以下有期徒刑或者拘役

最后修改日期: 2022年6月13日

作者