trojan 443端口被封的简单解决思路
最近trojan的443端口总是被封,看了下网上的的很多文章,提供的思路很多。
简单归纳以下几点:
- 伪装成正常网站,允许搜索引擎爬虫抓取。
- Nginx分流。
- 上cdn。
- 换端口。
实验环境
- centos 7
- 使用 https://github.com/Jrohy/trojan 脚本一键搭建的trojan
使用iptables nat端口转发
就我目前使用来看,trojan最多被封端口,ip好像没有太大问题。上面哪些方法懒得搞,直接一条iptables解决问题 。
# 将40000~50000的端口流量转发到443端口 iptables -t nat -A PREROUTING -p tcp --dport 40000:50000 -j REDIRECT --to-ports 443
使用nat转发流量,在本机上是不会监听端口的,也就是netstat看不到。
执行之后就可以客户端使用40000至50000的任意端口和trojan通信了。
注意:很多vps需要在控制台放行端口
配合客户端的订阅更新实现“伪动态端口”
写一个
#!/bin/bash # 生成的订阅文件放在网站根目录下 filePath='~/www/vmess' # 随机生成40000~50000之间的一个随机数 randPort=$((RANDOM % 10000 + 40000 )) # 下面的是我的trojan节点信息 echo -e \ " trojan://nsTcmFBI@domain.com:443#HK1 trojan://MTYqeRsx@domain.com:443#HK3 trojan://BAuSxaiw@domain.com:443#HK0 trojan://GwZOlMiB@domain.com:443#JP1 " \ | sed "s/443/$randPort/g" | base64 > $filePath # 将更换端口后的节点信息base64写入文件
这是一个很简单的shell脚本实现,通过生成随机数把原本的节点信息进行替换再base64编码变成客户端订阅可接受的格式,最后将这个订阅放在网站目录下。
crontab定时任务更新订阅节点信息
把上面的这个脚本放到 /usr/bin/
目录下,并添加可执行权限。
[root@VM-4-13-centos ~]# chmod +x /usr/bin/vmess.sh [root@VM-4-13-centos ~]# crontab -l 1 * * * * /usr/bin/vmess.sh
客户端添加订阅
这里以小火箭为例,其他都差不多。
ok,每次刷新订阅都是不同的端口。最简单的方式实现动态端口!
2023年01月16日补充:自动更新订阅一键脚本
最近很多人加我好友,询问关于配置的问题。就写了个一键脚本方便大家部署。
cd /var/tmp/ && rm -f vmess.sh && wget https://zgao.top/download/vmess.sh && chmod +x vmess.sh
然后编辑vmess.sh
然后执行
./vmess.sh
就可以了!
赞赏微信赞赏支付宝赞赏
27条评论