Trojan,全称Trojan-GFW,是新一代的抗GFW封锁的协议,通过将流量完全伪装成互联网最常见的HTTPS流量,绕过GFW封锁,实现科学上网。Trojan比V2Ray要轻量,配置简单,速度稍快,而且穿透GFW能力强。Trojan协议的实现目前主要两个方式最为流行,分别是Trojan-GFW 和其分支项目Trojan-Go,我这里会做详细介绍。
本文目录
1、Trojan-GFW 是什么?
Trojan-GFW,简称Trojan,是一把通往自由互联网世界的万能钥匙。Trojan原版不使用 Websocket 混淆,Trojan-GFW 仅支持Websocket,但是均不支持 Cloudflare CDN 流量中转。
Trojan-GFW项目地址:https://github.com/trojan-gfw/trojan
2、Trojan-Go 是什么?相比于 Trojan-GFW 有哪些优点?
Trojan-Go 是使用Go语言实现的完整Trojan代理,与Trojan协议以及Trojan-GFW版本的配置文件格式完全兼容,而且更加安全、高效、轻巧、易用。Trojan-Go 支持使用多路复用提升并发性能,使用路由模块实现国内直连;支持CDN流量中转(基于WebSocket over TLS/SSL);支持基于ACME协议从Let’s Encrypt自动申请和更新HTTPS证书,只需提供域名和邮箱;直接运行解压得到的执行文件即可,无其他组件依赖。
Trojan-Go项目官网:https://github.com/p4gefau1t/trojan-go
Trojan-Go支持并且兼容Trojan-GFW的绝大多数功能,包括但不限于:
- TLS/SSL隧道传输
- 透明代理 (NAT模式,iptables设置参见这里)
- UDP代理
- 对抗GFW被动/主动检测的机制
- MySQL数据库支持
- 流量统计,用户流量配额限制
- 从数据库中的用户列表进行认证
- TCP Keep Alive,TCP Fast Open,端口复用等TCP选项
同时,Trojan-Go还扩展了更多高效易用的功能特性:
- 简易模式,快速部署使用
- Socks5/HTTP代理自动适配
- 多平台和多操作系统支持,无特殊依赖
- 多路复用,降低延迟,提升并发性能
- 自定义路由模块,可实现国内直连/广告屏蔽等功能
- Websocket传输支持,用于实现CDN流量中转(基于WebSocket over TLS/SSL)和对抗GFW中间人攻击
- 自动化HTTPS证书申请,从Let’s Encrypt自动申请和更新HTTPS证书
- TLS指纹伪造,绕过GFW针对TLS Client Hello的特征识别
- 基于gRPC的API支持,支持动态用户管理和流量速度限制
- 服务端支持处理Trojan协议明文(TCP明文传输),以适应前置nginx等服务器的场景
简单地说,那就是 trojan-gfw 和 trojan-go 均支持Trojan协议;trojan-go 兼容 trojan-gfw 配置文件,服务端可以兼容所有Trojan-GFW的客户端,如Trajan-Qt5、Igniter、ShadowRocket等;trojan-go 支持多路复用提高并发性能,而且还支持 CDN 流量中转。trojan-go 比 trojan-gfw 使用更简单,而且功能更强大,未来可期。从众多实际测试来看,Trojan-Go是目前表现最好的Trojan翻墙上网协议,比VLESS协议还要出色不少。
3、Trojan-Go 一键搭建教程
为了更加简单方便地搭建 Trojan-Go 服务器,我们使用傻瓜式Trojan-Go一键安装脚本,是 “Trojan-Go+Websocket+Tls+CDN”2合1一键搭建脚本,只需要按照脚本提示信息一步步操作即可。
准备工作:至少一个域名、一台非大陆地区的VPS,并已经将域名成功解析到VPS的IP地址。注册域名推荐您使用NameSilo 或 Namecheap,购买VPS推荐使用Vultr、Hostwinds 或 搬瓦工(BandwagonHOST,Trojan-Go 一键搭建脚本的整个安装过程大约需要30分钟以上。另外,在 Trojan-Go 服务器搭建完成之前,请不要为域名加上 Cloudflare CDN 防护(也就是部署完成之前小云朵必须是灰色的),否则会造成安装部署失败。
Trojan-Go 一键脚本支持的系统环境:
Debian 9、10
Ubuntu 16.04 、18.04、19.10
Centos 7、8
(1)安装 curl
yum -y install curl #CentOS apt -y install curl #Debian/Ubuntu
(2)执行 Trojan-Go 一键安装脚本
bash -c "$(curl -fsSL https://raw.githubusercontent.com/JeannieStudio/all_install/master/trojan-go_install.sh)"
(3)安装BBR加速
wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" chmod +x tcp.sh ./tcp.sh
安装成功后,有如下提示信息,如图所示:
(4)脚本管理命令
/etc/trojan_mgr.sh
如果你要开启 “Websocket+TLS+CDN”,可执行以上管理命令,结果如下图所示:
我们选择“6”即可,另外,我们还可以修改密码,关闭或重启Trojan-Go,以及关闭或重启nginx,更新HTTPS证书等。
至此,Trojan-Go 服务器就搭建完成了!你现在就可以配合Trojan-Go客户端进行科学上网了。
注意事项:如果你的 Trojan-Go 开启了 CDN,那么暂时是不支持手机端客户端使用的,只能在Windows、MacOS和Linux上面使用。
除此之外,Jrohy大神的“Trojan多用户管理部署程序”也已经支持一键搭建Trojan-Go服务器了,你可以参考文章 [Trojan一键搭建教程]使用 Vultr VPS 自建Trojan/Trojan-GO服务器及客户端配置多用户实现科学上网,Jrohy大佬总是出精品,非常好用。
4、Trojan-Go 客户端下载及配置使用教程
Igniter、ShadowRocket,但是暂时不支持 Trojan-Go 的扩展特性。目前,可完美支持 Trojan-Go 所有功能的客户端有以下3个:
(1)Trojan-Qt5
Trojan-Qt5是一款近乎全能的跨平台客户端,支持 Windows/MacOS/Linux,使用 Trojan-Go 核心,支持所有 Trojan-Go 扩展特性。具体配置参数,如下图所示:
如果您没有启用“Websocket+TLS+CDN”模式,那么只需要配置好前3项即可,否则下面4项也需要完整配置好。
(2)Igniter-Go
Igniter-Go是一款Android安卓客户端,Fork自Igniter,将Igniter核心替换为Trojan-Go并做了一定修改,支持所有Trojan-Go扩展特性。
Igniter-Go项目官网:https://github.com/p4gefau1t/trojan-go-android
(3)Qv2ray
Qv2ray是一款使用 Qt 框架的跨平台 V2Ray 客户端,可视化UI设计,使用起来非常方便。Qv2ray支持 Windows/Linux/MacOS系统,还可以通过
插件系统支持 SS/SSR/Trojan/Trojan-Go/NaiveProxy协议,也算是一个小全能客户端了。
关于Qv2ray的更多详细教程,请参考文章 Qv2ray – 一款能媲美 Trojan-Qt5 的跨平台V2Ray客户端 | 使用插件可支持SS/SSR/Trojan/Trojan-Go/NaiveProxy等协议
关于更多Trojan/Trojan-Go客户端使用教程,请参考文章 科学上网神器Trojan搭建、Trojan客户端下载与配置使用教程以及优质Trojan机场推荐
5、优质Trojan机场推荐
不管你是萌新,还是老鸟,使用Trojan一键搭建脚本的话,Trojan机场搭建真的很简单,喜欢折腾的用户可以尝试手动搭建配置。如果你不喜欢折腾,只想要一个稳定可靠的科学上网工具,那么我推荐你选择Trojan机场。
有没有比较好的Trojan机场推荐看?稳定好用的Trojan机场推荐你使用 CMYNetwork红莓网络 或 GLaDOS,CMYNetwork红莓网络是一家中高端的SSR/Trojan机场,在全球拥有超过90个优质的服务器节点,其中包括45条 IPLC/IEPL 内网专线、1条企业专线和1条游戏专线等昂贵的顶级线路,还有超过15条 CN2 GIA 线路以及大约30条直连线路,性价比很高;GLaDOS是性价比非常高的V2Ray/Trojan机场,老板是技术派,使用独立自研的后台管理面板。
本文由一灯不是和尚于2022年12月26日更新;如果您有什么意见或建议,请在文章下面评论区留言反馈。
—–END CERTIFICATE—–
[Mon Nov 21 14:49:58 CST 2022] Your cert is in: /root/.acme.sh/xin.shop_ecc/xinnhan.shop.cer
[Mon Nov 21 14:49:58 CST 2022] Your cert key is in: /root/.acme.sh/xin.shop_ecc/xinhan.shop.key
[Mon Nov 21 14:49:58 CST 2022] The intermediate CA cert is in: /root/.acme.sh/xinnvn.shop_ecc/ca.cer
[Mon Nov 21 14:49:58 CST 2022] And the full chain certs is there: /root/.acme.sh/xinnn.shop_ecc/fullchain.cer
[信息] TLS 证书测试签发成功,开始正式签发
[Mon Nov 21 14:50:01 CST 2022] Using CA: https://acme.zerossl.com/v2/DV90
[Mon Nov 21 14:50:01 CST 2022] Standalone mode.
[Mon Nov 21 14:50:01 CST 2022] Create account key ok.
[Mon Nov 21 14:50:01 CST 2022] No EAB credentials found for ZeroSSL, let’s get one
[Mon Nov 21 14:50:01 CST 2022] acme.sh is using ZeroSSL as default CA now.
[Mon Nov 21 14:50:01 CST 2022] Please update your account with an email address first.
[Mon Nov 21 14:50:01 CST 2022] acme.sh –register-account -m my@example.com
[Mon Nov 21 14:50:01 CST 2022] See: https://github.com/acmesh-official/acme.sh/wiki/ZeroSSL.com-CA
[Mon Nov 21 14:50:01 CST 2022] Please add ‘–debug’ or ‘–log’ to check more details.
[Mon Nov 21 14:50:01 CST 2022] See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh
[错误] TLS 证书生成失败
请问一直出这个问题,怎么操作?
估计是脚本的问题,可以使用站内的其他脚本。
抱歉,再次打扰。
我分别用了本站的
“Trojan-Go+Websocket+Tls+CDN”2合1一”(报错如上)、
“trojan多用户”脚本不报错,日志报错 :[2022-11-21 02:16:01] [FATAL] fatal: use_certificate_chain_file: No such file or directory
VPS一用racknerd,之前用多用户面板一直正常科学上网,然后多次还原 Debian9 安装都不行,还买了一域名换了,现在有点蒙了,搞不清楚原因。
RackNerd属于风控严重的区域,我建议使用冷门一点的VPS商家产品,今年对Trojan协议封锁也是非常针对的。
最终使用一个8合一的脚本安装成功,用了两年都相安无事,最近把我的433封了,气死了
今年封443端口特别猛,还不如使用常规协议的代理稳定。
呃,我的问题解决了,tls_generate() {
if [[ -f “/data/${domain}/fullchain.crt” ]] && [[ -f “/data/${domain}/privkey.key” ]]; then
echo -e “${Info}证书已存在……不需要再重新签发了……”
else
# if “$HOME”/.acme.sh/acme.sh –issue -d “${domain}” –standalone -k ec-256 –force –test; then
# echo -e “${Info} TLS 证书测试签发成功,开始正式签发”
# rm -rf “$HOME/.acme.sh/${domain}_ecc”
# sleep 2
# else
# echo -e “${Error}TLS 证书测试签发失败 ”
# rm -rf “$HOME/.acme.sh/${domain}_ecc”
# exit 1
# fi
if “$HOME”/.acme.sh/acme.sh –issue -d “${domain}” –standalone -k ec-256 –force; then
echo -e “${Info} TLS 证书生成成功 ”
sleep 2
[[ ! -d “/data” ]] && mkdir /data
[[ ! -d “/data/${domain}” ]] && mkdir “/data/${domain}”
if “$HOME”/.acme.sh/acme.sh –installcert -d “${domain}” –fullchainpath /data/${domain}/fullchain.crt –keypath /data/${domain}/privkey.key –ecc –force; then
echo -e “${Info}证书配置成功 ”
sleep 2
fi
else
echo -e “${Error} TLS 证书生成失败”
rm -rf “$HOME/.acme.sh/${domain}_ecc”
exit 1
fi
fi
}
注释掉–test这个步骤就可以了,这个操作会因为.acme.sh中获取token超时时间写死为了1s,导致获取token失败,从而认证失败
很喜欢你这种钻研的精神,折腾是进步的开始。加油!
大神,一直tls证书测试失败,怎么解决
换一套一键脚本就行了,站内有,你搜索一下。
小白不是很懂,和层主一样的问题,请问“注释掉–test”具体是怎么操作呢
把脚本文件保存 用vim打开 修改
签名一直失败,希望大神能赐教,谢谢!
[信息] 安装 tls 证书生成脚本 完成
[Fri Feb 18 12:18:03 CST 2022] Using ACME_DIRECTORY: https://acme-staging-v02.api.letsencrypt.org/directory
[Fri Feb 18 12:18:03 CST 2022] Using CA: https://acme-staging-v02.api.letsencrypt.org/directory
[Fri Feb 18 12:18:03 CST 2022] Standalone mode.
[Fri Feb 18 12:18:03 CST 2022] Creating domain key
[Fri Feb 18 12:18:03 CST 2022] The domain key is here: /root/.acme.sh/times.nutsmxberry.xyz_ecc/times.nutsmxberry.xyz.key
[Fri Feb 18 12:18:03 CST 2022] Single domain='times.nutsmxberry.xyz'
[Fri Feb 18 12:18:03 CST 2022] Getting domain auth token for each domain
[Fri Feb 18 12:18:04 CST 2022] Getting webroot for domain='times.nutsmxberry.xyz'
[Fri Feb 18 12:18:04 CST 2022] Verifying: times.nutsmxberry.xyz
[Fri Feb 18 12:18:04 CST 2022] Standalone mode server
[Fri Feb 18 12:18:06 CST 2022] Pending, The CA is processing your order, please just wait. (1/30)
[Fri Feb 18 12:18:08 CST 2022] times.nutsmxberry.xyz:Verify error:Fetching http://times.nutsmxberry.xyz/.well-known/acme-challenge/7aNN-zt1tOgUmMH-7XFWEVyVTJTz-lBoFyhEIJ1FWSI: Connection refused
[Fri Feb 18 12:18:08 CST 2022] Please add '--debug' or '--log' to check more details.
[Fri Feb 18 12:18:08 CST 2022] See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh
请教一下,这里也是tls证书签发失败.文章里说的小云朵是灰色的是说的什么?是需要到Cloudflare CDN去操作吗?
对,需要到Cloudflare去管理域名,变成灰色的意思就是没有使用Cloudflare免费CDN节点的状态,这时候解析域名对应的IP地址是服务器的真实IP,否则就是免费CDN节点IP地址了。
伪装网站下载失败 403,会不会有影响?
伪装网站下载失败没啥影响,不用在意。
请问一键安装nginx版时报错:tls证书测试签发失败 该怎么办?
你的域名是不是在安装tls之前套了CDN,一般是由于使用Cloudflare解析没有提前把小云彩点成灰色或你的域名还没有解析生效,稍等片刻。如果不是这些原因,请重新安装。
你好,用tx轻量云,境外,会不会?️被封服务器的风险?谢谢……
有,是禁止用于科学上网代理的。所有国内服务商的机器都一样,只是对境外服务器的管理相对宽松一些。不过,请勿关注和发表不该关注的内容和言论,否则风险很高。
搭建成功,网站和vps都是通的,为什么用trojan-Qt5 时显示连接超时?
请问,你是不是套了 Cloudflare CDN?目前,Trojan-GO在PC端暂不支持CDN,仅移动端可用。另外,我非常不建议网站和VPS共用一个服务器,当然你网站就是为了伪装就另说了。
谢谢老哥,我配置ok了,速度比我之前装的v2ray快了。我套了 Cloudflare CDN之后,Trojan-GO在PC端确实连接超时,然后就关了WS,那这样的话被和谐的几率是不是就高了?
不会,我经常用Trojan都很稳定,更不要说不套CDN的Trojan-Go了,安心使用就好。平时流量不是很大,还是很抗封锁的。
这个脚本安装的不是最新版trojan-go. 是固定的0.4.10版本。已经过时了
新版本trojan-go还抛弃了证书申请功能. 目前搭建起来存在难度。
可以自己把执行代码下载下来,修改成最新的Trojan-Go版本,也可以安装后修改,目前还没有更新一键脚本,等后面的升级吧!而且老版本并不影响使用,用Trojan-Go主要看重的其实不是并发,而是可以加CDN隐藏保护IP,Trojan-Go的多路复用的效果相对于Trojan来说并不太明显,我目前测试如此。