前言
阅读本文需要有一定linux知识,懂一点linux命令。
本文完全原创,转载请注明。
为什么要采用隧道中转搭建?
现有的几种常用Telegram代理方式有如下问题:
- socks直连:秒封
- mtproto直连:基本秒封
- mtproto+tls:能有效抗封锁,但是限于直连线路的情况,延迟一般较高
- mtproto+中转:mtp流量在国内是会被识别的,NAT商家一般都严禁走mtp
那么有没有一种方式能够避免以上所有问题?就是采用隧道中转搭建socks代理。
基本原理如下:
在国外落地机搭建socks代理,国内中转机器使用gost,在两机器间建立加密隧道过墙(隧道是目前最佳的抗封锁形式)。
搭建教程
示例
下文演示按照如下假设:
- 国内nat:
- ip:A.A.A.A
- 内网端口:11360
- 外网端口:49698(部分商家支持映射内外网端口一致,这里以不一致做示范,请手动创建好映射)
- 落地socks5:
- 落地ip:B.B.B.B
- socks端口:7891
- socks用户名:123456
- socks密码:654321
自己的各项参数请与示例一一对应,不要照抄。
安装gost
本人基于原EasyGost脚本进行了修改增强,增加了许多功能,具体功能可以看项目页:
一键脚本:
wget --no-check-certificate -O gost.sh https://raw.githubusercontent.com/KANIKIG/Multi-EasyGost/master/gost.sh && chmod +x gost.sh && ./gost.sh
再次运行本脚本只需要输入./gost.sh
回车即可
我们在落地机与国内NAT均运行此脚本,选1,安装gost。
国内机器安装gost请选择国内加速源,不然从GitHub拉取很慢。
国内NAT配置
我们使用脚本添加gost加密转发
#启动脚本
./gost.sh
接下来按照指示操作即可,我按照前文的示例填写,请自行对应。隧道传输类型选哪个都可以,但是中转和落地选择必须一致。
注意这里的目的地端口不能是落地的socks端口,应当是它之外的任意一个空闲端口,仅用于解密隧道流量,具体可以见下一步。上文我选的443,如果落地机器443被站点占用,可以更换为任意端口,不影响安全性。
落地机配置
脚本内置了socks代理一键安装(gost内置)
#启动脚本
./gost.sh
安装好后先用tg直连一下这个socks代理,确定直连能通再进行隧道转发。(确认通了就关掉,socks裸奔很快就会被封)
接下来对接隧道落地端,按照指示操作即可,我按照前文的示例填写,请自行对应。
注意流量入口和国内机填的目的地端口必须一致,ip填127.0.0.1,也就是本机ip,这里的目的地端口即为socks代理监听的端口。
TG连接测试
填写如下
如果发现没通,请仔细检查自己参数与示例的对应关系。
后记
个人体验延迟非常低,并且视频加载速度很快,使用已基本接近在国内使用微信。