trojan 443端口被封的简单解决思路

trojan 443端口被封的简单解决思路

最近trojan的443端口总是被封,看了下网上的的很多文章,提供的思路很多。

简单归纳以下几点:

  1. 伪装成正常网站,允许搜索引擎爬虫抓取。
  2. Nginx分流。
  3. 上cdn。
  4. 换端口。

实验环境

  • 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,每次刷新订阅都是不同的端口。最简单的方式实现动态端口!

Print Friendly, PDF & Email
赞赏

微信赞赏支付宝赞赏

Zgao

愿有一日,安全圈的师傅们都能用上Zgao写的工具。