使用服务器白名单可以有效防止代理服务器被 GFW 主动探测,进而防止被墙。2021 年亲测可以解决 MTProxy 容易被封锁的问题,感兴趣的可以在自己的服务器上搭建起来,即便是公开分享,也不担心被墙了。

教程如下:

由于MTProto协议在墙内极难生存,在尝试过mtg2.0和掩耳盗铃的伪装页面均告失败之后,白名单模式可能是更值得尝试的方法,下面就分享搭建白名单MTProxy的方法,同样是使用一键脚本。

这个MTProxy + TLS 脚本同样出自 Eller大佬之手,大佬的电报频道:https://t.me/EllerCN

使用 Docker进行安装,首先需要安装 Docker,镜像集成了nginx、mtproxy+tls 实现对流量的伪装,并采用白名单模式来应对防火墙的检测。

白名单 MTProxy

关于白名单模式,可以谷歌《白名单防火墙可以有效对抗 GFW 的主动探测》,下面是引用的片段:

– 服务器的生存挑战 我们在我们运营的 SSR 机场的服务器上全部部署了防火墙, 并使用上述策略更新防火墙的白名单.

我们进行了为期   18 天的实验. 在实验中, 所有服务器都没有被墙 (除了一次意外撤除防火墙的事件). 这些服务器工作在 163 线路, CN2 GT 线路和 CN2 GIA 线路. 但是为了保护我们自己的安全, 我们不能公布实验的具体规模.

为了对比, 我们尝试性撤除 4 台服务器的防火墙, 在这几次实验中, 这些服务器在数分钟到一小时之内都被迅速封禁. 这进一步证明了白名单防火墙确实是保护服务器的主要因素. 除了 SSR, 我们还测试了 MTProto 协议. MTProto 是一个早就证明被特征识别的协议.

实验证明, 这样的策略同样可以保护 MTProto. 实验中我们部署了 4 台服务器, 设有保护的两台服务器一直生存至今, 而没有部署防火墙的两台服务器分别在第 20 分钟和第一小时被封禁. 这个实验再次印证了主动探测是墙封禁服务器的必要条件, 即使这个协议早已被特征识别. ——《白名单防火墙可以有效对抗 GFW 的主动探测》- 2020.05.01

由于白名单模式文章已经发布了一年有余,不知道现在的GFW策略是否升级,所以此方法还需要实验验证。

安装Docker

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

安装 Docker 十分简单,只需要等待一小会即可完成。

安装 nginx-mtproxy

拉取镜像

docker pull ellermister/nginx-mtproxy:latest

 

一键运行

docker run --name nginx-mtproxy -d  -p 80:80 -p 443:443 ellermister/nginx-mtproxy:latest

可通过 -p 指定端口映射,连接均为外部端口。

查看配置:

docker logs nginx-mtproxy

 

自定义运行

secret=$(head -c 16 /dev/urandom | xxd -ps)
tag="12345678901234567890121231231231"
domain="cloudflare.com"
docker run --name nginx-mtproxy -d -e tag="$tag" -e secret="$secret" -e domain="$domain" -p 80:80 -p 443:443 ellermister/nginx-mtproxy:latest

自定义密钥、域名和AD Tag,

Secret
secret="25c8dfee81acdadaff3a338a10db8497"
运行 head -c 16 /dev/urandom | xxd -ps  命令生成

AD Tag

tag="ashofs232975911523"

tag部分填写从官方bot处申请到的token值。

domain

domain="cloudflare.com"

Fake TLS 网址,需要填写未被防火长城认证的网址。

默认的认证页面:

http://ip/add.php

浏览器访问该页面,会自动提交当前IP地址。

只有认证过的IP地址才会被服务器防火墙放行。

已知问题:使用 docker log 打印出来的代理地址端口显示为8443,实际上却是443,需要注意。

使用方法:

先点击链接进行认证,再连接 MTProxy 代理。

 

更多命令:

查看配置:

docker logs nginx-mtproxy

停止nginx-mtproxy

docker stop nginx-mtproxy

启动nginx-mtproxy

docker start nginx-mtproxy

重启nginx-mtproxy

docker restart nginx-mtproxy

删除nginx-mtproxy

docker rm nginx-mtproxy

关于MTProxy代理有任何问题可以在此处留言或加入群组进行讨论。

https://hub.docker.com/r/ellermister/nginx-mtproxy

转载注明:积木别倒 » 2021 年最新 MTProxy 防墙教程:白名单 MTProxy 代理「以墙治墙」