前言#
閱讀本文需要有一定 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 連接測試#
填寫如下
如果發現沒通,請仔細檢查自己參數與示例的對應關係。
後記#
個人體驗延遲非常低,並且視頻加載速度很快,使用已基本接近在國內使用微信。