前言#
阅读本文需要有一定 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 连接测试#
填写如下
如果发现没通,请仔细检查自己参数与示例的对应关系。
后记#
个人体验延迟非常低,并且视频加载速度很快,使用已基本接近在国内使用微信。