目录
简介
- 介绍
Trojan模仿了互联网上最常见的Https协议,以诱骗GFW封锁认为它就是Https,从而不被识别. Trojan处理来自外界的Https请求,如果是合法的,那么为该请求提供服务,否则将该流量转交给Web服务器Nginx,由Nginx为其提供服务. 基于这个工作过程可以知道,Trojan的一切表现与Nginx一致,不会引入额外特征,从页达到无法识别的效果.
- Trojan与V2ray ws协议的区别
V2ray是Nginx侦听443,数据->Nginx->V2ray;Trojan是自己侦听443,都是伪装成网站.
- Trojan-Go访问原理
当一个客户端试图连接Trojan-Go的监听端口时,会发生下面的事情: 如果TLS握手成功,检测到TLS的内容非Trojan协议(有可能是HTTP请求,或者来自GFW的主动探测)。Trojan-Go将TLS连接代理到本地127.0.0.1:80上的HTTP服务。这时在远端看来,Trojan-Go服务就是一个HTTPS网站。 如果TLS握手成功,并且被确认是Trojan协议头部,并且其中的密码正确,那么服务器将解析来自客户端的请求并进行代理,否则和上一步的处理方法相同。 如果TLS握手失败,说明对方使用的不是TLS协议进行连接。此时Trojan-Go将这个TCP连接代理到本地127.0.0.1:1234上运行的HTTPS服务(或者HTTP服务),返回一个展示400 Bad Reqeust的HTTP页面。fallback_port是一个可选选项,如果没有填写,Trojan-Go会直接终止连接。虽然是可选的,但是还是强烈建议填写。
部署
准备工作
►更新系统安装环境
# 更新系统 yum update -y #CentOS apt update -y #Debian # 安装curl|wget yum install -y curl wget #CentOS apt-get install curl wget #Debian Ubuntu
►安装开心版宝塔(免手机验证)
- 直接安装V7.7.0的版本,之后的版本都会验证userInfo.json,虽然网上有大把的开心版,但不敢用。
# Centos/Ubuntu/Debian安装命令 独立运行环境(py3.7) curl -sSO https://raw.githubusercontent.com/8838/btpanel-v7.7.0/main/install/install_panel.sh && bash install_panel.sh # 备用安装链接,适用于不能访问GitHub的服务器。 curl -sSO http://d.moe.ms/AAAAA/btpanel-v7.7.0/install/install_panel.sh && bash install_panel.sh
- 屏蔽手机号
sed -i "s|bind_user == 'True'|bind_user == 'XXXX'|" /www/server/panel/BTPanel/static/js/index.js
- 删除强制绑定手机js文件
rm -f /www/server/panel/data/bind.pl
- 手动解锁宝塔所有付费插件为永不过期
文件路径:/www/server/panel/data/plugin.json,搜索字符串:"endtime": -1全部替换为"endtime": 999999999999 给plugin.json文件上锁防止自动修复为免费版:chattr +i /www/server/panel/data/plugin.json
- 直接安装V7.7.0的版本,之后的版本都会验证userInfo.json,虽然网上有大把的开心版,但不敢用。
►开启 BBR 加速
- 开启Debian10自带的BBR加速
# 本脚本只针对 Debian≥9 或是 CentOS≥8 以上的系统,可以开启系统自带BBR加速。 echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf sysctl -p lsmod | grep bbr
- 四合一 BBR Plus / 原版BBR / 魔改BBR
# Centos 7, Debian 8/9, Ubuntu 16/18 测试通过, 不支持 OVZ wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh
- 开启Debian10自带的BBR加速
►测试脚本
# VPS 三网测速脚本(查看您的 Linux 系统信息,还可以测试网络带宽及硬盘读写速率) wget -qO- bench.sh | bash curl -Lso- bench.sh | bash # VPS 三网回程线路检测 curl https://raw.githubusercontent.com/zhanghanyun/backtrace/main/install.sh -sSf | sh curl https://raw.githubusercontent.com/zhucaidan/mtr_trace/main/mtr_trace.sh | bash # VPS 流媒体解锁检测 bash <(curl -L -s check.unlock.media) -R 0
安装Trojan-go面板
提前准备好trojan-web面板域名和trojan服务域名
- Jrohy的一键Trojan面板脚本
#安装/更新 source <(curl -sL https://git.io/trojan-install) #卸载 source <(curl -sL https://git.io/trojan-install) --remove
- 修改trojan-web端口
/etc/systemd/system/trojan-web.service 在/usr/local/bin/trojan web 后面添加 -p port systemctl daemon-reload systemctl restart trojan-web
- trojan设置
# 修改端口 /usr/local/etc/trojan/config.json # 申请证书报错 netstat -ntlp 采用命令 sudo fuser -k 80/tcp 强制 杀掉进程 nginx # 连接被墙的外网就No route to host: 切换trojan-go版本解决
- 更改Trojan-Go配置文件(可选)
# 找到VPS目录文件 /usr/local/etc/trojan/config.json ,备份一份(若是把类型切换回来可以恢复使用Trojan) # 需要增加WS等其他Trojan-Go所支持的模块,增加完成后保存并在面板重启Trojan-GO服务 "websocket": { "enabled": true, "path": "/DFE4545DFDED/", "host": "你的域名" }, "mux": { "enabled": true, "concurrency": 8, "idle_timeout": 60 }
常见问题总结
- Failed to set locale, defaulting to C.UTF-8解决方法
- Invalid version. The only valid version for X509Req is 0.
参考链接
https://ybfl.net/sites/158.html
https://v2rayssr.com/bbr.html
https://v2rayssr.com/trojancdn.html
https://github.com/Jrohy/trojan
https://www.youtube.com/watch?v=tC5bER5iHyE
https://kejilion.blogspot.com/2023/10/vps.html
结束语
- 未完待续…
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 tujide.lv@foxmail.com