记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

EasyTrojan-最简单的Trojan部署脚本

EasyTrojan-最简单的Trojan部署脚本

Github:https://github.com/maplecool/easytrojan
世界上最简单的Trojan部署脚本,仅需一行命令即可搭建一台代理服务器。
该项目会自动提供trojan服务所需的免费域名与证书,无需购买、解析等繁琐操作。
支持RHEL 7、8、9 (CentOS、RedHat、AlmaLinux、RockyLinux)、Debian 9、10、11、Ubuntu 16、18、20、22
首次安装
请将结尾的password更换为自己的密码,例如 bash easytrojan.sh 123456,安装成功后会返回trojan的连接参数。
 
XML/HTML代码
  1. curl https://raw.githubusercontent.com/maplecool/easytrojan/main/easytrojan.sh -o easytrojan.sh && chmod +x easytrojan.sh && bash easytrojan.sh password
放行端口
如果服务器开启了防火墙,应放行TCP80与443端口,如在云厂商的web管理页面有防火墙应同时放行TCP80与443端口。
 
XML/HTML代码
  1. # RHEL 7、8、9 (CentOS、RedHat、AlmaLinux、RockyLinux) 放行端口命令
  2. firewall-cmd --permanent --add-port=80/tcp --add-port=443/tcp && firewall-cmd --reload && iptables -F
  3.  
  4. # Debian 9、10、11、Ubuntu 16、18、20、22 放行端口命令
  5. sudo ufw allow proto tcp from any to any port 80,443 && sudo iptables -F
验证端口是否放行 (示例IP应修改为trojan服务器的IP)
通过浏览器访问脚本提供的免费域名,例如1.3.5.7.nip.io
如果自动跳转至https,页面显示Service Unavailable,说明端口已放行。
密码管理
请将结尾的password更换为自己的密码,仅限字母、数字、下划线,非多密码管理用途无需使用。
 
XML/HTML代码
  1. # 下载trojan密码管理脚本
  2. curl https://raw.githubusercontent.com/maplecool/easytrojan/main/mytrojan.sh -o mytrojan.sh && chmod +x mytrojan.sh
  3.  
  4. # 创建密码
  5. bash mytrojan.sh add password
  6.  
  7. # 一次创建多个密码示例
  8. bash mytrojan.sh add password1 password2 ...
  9.  
  10. # 删除密码
  11. bash mytrojan.sh del password
  12.  
  13. # 一次删除多个密码示例
  14. bash mytrojan.sh del password1 password2 ...
  15.  
  16. # 流量查询
  17. bash mytrojan.sh status password1 password2 ...
  18.  
  19. # 流量归零
  20. bash mytrojan.sh rotate
  21. *流量统计归零后会自动在/etc/caddy/trojan/data目录下生成历史记录
  22.  
  23. # 密码列表
  24. bash mytrojan.sh list
重新安装
XML/HTML代码
  1. systemctl stop caddy.service && curl https://raw.githubusercontent.com/maplecool/easytrojan/main/easytrojan.sh -o easytrojan.sh && chmod +x easytrojan.sh && bash easytrojan.sh password
完全卸载
XML/HTML代码
  1. systemctl stop caddy.service && systemctl disable caddy.service && rm -rf /etc/caddy /usr/local/bin/caddy /etc/systemd/system/caddy.service
脚本说明
注意事项:
必须使用root用户部署
请勿修改配置文件参数
命令+密码部署时候中间只有一个空格,如果多个空格,多余空格算是密码前面加了空格
免费域名:
通过nip.io提供的免费域名解析服务获取,域名由ServerIP+nip.io组成
例如你的服务器IP为1.3.5.7,对应的域名则是1.3.5.7.nip.io
指定域名:
仅建议在免费域名被阻断时使用
XML/HTML代码
  1. 在密码后加入域名即可指定域名重新安装,密码与域名之间应使用空格分隔,执行命令如下:
  2. systemctl stop caddy.service && curl https://raw.githubusercontent.com/maplecool/easytrojan/main/easytrojan.sh -o easytrojan.sh && chmod +x easytrojan.sh && bash easytrojan.sh password yourdomain
  3.  
  4. *当指定域名后,如需切换回免费域名,必须完全卸载脚本,重新执行首次安装命令
更换端口
仅建议在443端口被阻断时临时使用
XML/HTML代码
  1. # 将443端口更换为8443端口示例
  2. sed -i "s/443/8443/g" /etc/caddy/Caddyfile && systemctl restart caddy.service
  3.  
  4. *更换端口后应开启对应端口的防火墙
  5. *当测试临时端口超过48小时未阻断后,应尽快更换IP并重新安装,使用默认的443端口
免费证书
XML/HTML代码
  1. 通过Caddy的HTTPS模块实现,会自动申请letsencrypt或zerossl的免费证书
  2.  
  3. *关闭防火墙后执行重新安装命令,能大概率解决证书申请失败的问题
  4.  
  5. # RHEL 7、8、9 (CentOS、RedHat、AlmaLinux、RockyLinux)
  6. systemctl stop firewalld.service && systemctl disable firewalld.service
  7.  
  8. # Debian 9、10、11、Ubuntu 16、18、20、22
  9. sudo ufw disable
服务伪装
XML/HTML代码
  1. 非密码正确的trojan客户端访问返回503状态,将trojan伪装成过载的Web服务
连接方式
客户端的TLS指纹是导致trojan被封端口的重要原因之一,但问题不仅存在于客户端,服务端也应作出对应配置
移动设备建议使用能够开启uTLS指纹功能的客户端,暂未有数据表明其它设备会因未启用uTLS指纹功能被封端口
常见客户端连接trojan示例
Windows
配置示例 | V2rayN-Core
MacOS
配置示例 | V2rayU
Android
配置示例 | V2rayNG
iOS
配置示例 | Shadowrocket | AppStore海外代购
   OpenWRT passwall 配置示例
 
   Xray连接trojan部分示例
XML/HTML代码
  1. {
  2.     ...
  3.   
  4.     "outbounds": [
  5.         {
  6.             "protocol": "trojan",
  7.             "settings": {
  8.                 "servers": [
  9.                     {
  10.                         "address": "1.3.5.7",        #连接trojan的服务器IP或域名
  11.                         "port": 443,
  12.                         "password": "123456"         #连接trojan的密码
  13.                     }
  14.                 ]
  15.             },
  16.             "streamSettings": {
  17.                 "network": "tcp",
  18.                 "security": "tls",
  19.                 "tlsSettings": {
  20.                     "allowInsecure": false,
  21.                     "serverName": "1.3.5.7.nip.io",  #连接trojan的域名
  22.                     "fingerprint": "chrome",
  23.                     "alpn": "h2,http/1.1"
  24.                 }
  25.             }
  26.         }
  27.     ]
  28. }
Clash连接trojan部分示例(仅限非ARM设备)
XML/HTML代码
  1. - name: "trojan"
  2.     type: trojan
  3.     server: 1.3.5.7
  4.     port: 443
  5.     password: 123456
  6.     udp: true
  7.     sni: 1.3.5.7.nip.io
  8.     alpn:
  9.       - h2
  10.       - http/1.1
  11.     skip-cert-verify: false
警告:请勿在移动设备及其它除Mac外的ARM设备上使用Clash及不包含UTLS指纹功能的客户端连接trojan。

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):