Trojan一键搭建教程
什么是 Trojan
Trojan 是一个比较新的翻墙软件,它模仿了互联网上最常见的HTTPS协议,以诱骗 GFW 认为它就是 HTTPS,从而不被识别。所谓魔高一尺道高一丈,墙在不断往上砌,那工具也得跟着变了。
Trojan 工作在 443 端口,并且处理来自外界的 HTTPS 请求,如果是合法的 Trojan 请求,那么为该请求提供服务,否则将该流量转交给 WEB 服务器 Nginx,由 Nginx 为其提供服务。基于这个工作过程可以知道,Trojan 的一切表现均与 Nginx 一致,不会引入额外特征,从而达到无法识别的效果。当然,为了防止恶意探测,我们需要将 80 端口的流量全部重定向到 443 端口,并且服务器只暴露 80 和 443 端口,这样可以使得服务器与常见的 WEB 服务器表现一致。
项目地址: https://github.com/trojan-gfw
搭建前准备
域名申请
目前免费顶级域名我知道的只有 http://www.freenom.com/zh/index.html 可申请。另外,在一些域名商家也可购买几块钱一年的,我看阿里云现在有 6 元一年的,一年一换也不费事。
VPS 购买
还是建议 VULTR.COM,主要是因为在同价位 VPS 中比较稳定,IP 虽然日本经常有被墙的,但可以随时换啊,无论是换地区还是换 IP。论小时计费,如果用 IPV6 的话最低 $2.5/月,IPV4 的最低有美区 $3.5/月,我觉得还是比较合适的。
DNS 解析
免费解析网站有很多,首先域名申请机构一般都会解析,如腾讯云,阿里云,godaddy 等,还有:
- cloudflare.com
- dns.he.net
- dnsever.com
将域名解析设置到购买的 VPS 对应 IP,并确认已成功。使用 cloudflare 的记得将 DNS only 灰掉。
一键安装 Trojan
系统建议:
- Debian 9,10(推荐)
- Ubuntu 14,16,18
- CentOS 7,8
安装依赖包
安装依赖包(Debian/Ubuntu):
apt-get update && apt-get install sudo whiptail curl locales -y && sudo -i
安装依赖包(Centos):
yum update -y && yum install sudo newt curl -y && sudo -i
一键安装脚本
现在还是使用下面这个脚本吧:
https://github.com/mack-a/v2ray-agent
见我的原文V2Ray最新协议VLESS一键安装脚本感谢 johnrosen1 提供的一键脚本:https://github.com/johnrosen1/trojan-gfw-script
注:
开发者更新后删除了 v2ray 等,我 fork 后回退了一下版本,想安装多个应用的用这个吧:
sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/harry3633/trojan-gfw-script/master/trojangui.sh)"
- 方向键选择,回车确定安装。提示 VPS 打开 80,443 端口,一般服务器都是开的吧,我还没碰到过没打开这两端口的。
- 可安装项目有很多,我是把下载相关的都取消了,没这方面需求。
- 输入已经解析成功的域名。
- 输入用户密码阵列两个,可输不同的密码,一样也可以。
- 输入访问 natdata 访问路径,随便填。
- 是否使用 API ,支持 cloudflare,aliyun,dnspod 等几家,当然也可以选否,不用去输入 key,更简单。
如果是 cloudflare,在 My Profile 里选择 Global API Key:
- 回车开始自动安装,等一袋烟的功夫出结果。
- 访问域名会出现一个网站
注:更多请看 Github 详情。如域名已有证书,请放置于 /etc/trojan/trojan.crt
处,脚本会自动跳过域名解析验证,申请证书以及 acme.sh 安装
客户端及配置
Windows,Linux,MacOS
开发者有发布三大系统客户端:
https://github.com/trojan-gfw/trojan/releases
只说下 Windows 下使用,下载解压缩,如果启动 trojan.exe 报错,说明系统没有 C++ 运行环境,需要安装 VC++ 运行环境,压缩包里已经有了:VC_redist.x64.exe。
修改配置文件 config.json,很简单,就下面两个地方,本地端口默认 1080,可选修改:
{
"run_type": "client",
"local_addr": "127.0.0.1",
"local_port": 1080,
"remote_addr": "example.com #改为解析的域名",
"remote_port": 443,
"password": [
"password1 #改为服务器端安装时设置的第一密码"
],
"log_level": 1,
"ssl": {
"verify": true,
"verify_hostname": true,
"cert": "",
"cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA",
"cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384",
"sni": "",
"alpn": [
"h2",
"http/1.1"
],
"reuse_session": true,
"session_ticket": false,
"curves": ""
},
"tcp": {
"no_delay": true,
"keep_alive": true,
"reuse_port": false,
"fast_open": false,
"fast_open_qlen": 20
}
}
目前 Trojan 客户端没有全局代理而且仅支持 socks5,因此得配合 Chrome 的 SwitchOmeaga 插件或者用 V2rayN 客户端把 socks5 转换成 http 使用。
- 如果使用 Chrome 浏览器,可在 SwitchOmeaga 新增情景模式,代理协议填入 SOCKS5,代理伺服器填 127.0.0.1,端口填 1080 或者配置已经修改的端口。
- 在 V2rayN 客户端点击服务器->添加 SOCKS 服务器->填写服务器地址:127.0.0.1 端口:1080。即可实现国内分流了。
Android
下载安装,填上域名,密码就可以使用了,目前没过多选项,而且仅支持一个节点连接:
https://github.com/trojan-gfw/igniter/releases
支持 IPV6 和大陆白名单,不过我发现大陆白名单的使能开关需要关闭再打开一次才起作用。
如果运营商支持 IPV6,可在 DNS 解析设置 IPV6 ,我这没法测试,不知道速度会不会更好。
iOS
因为已经很多年没用过 iOS 了,所以就知道目前 Shadowrocket 俗称小火箭最新版是支持 Trojan 的。
路由器
目前仅有 Openwrt 系统有支持 Trojan 的插件,可根据路由器型号选择刷机。
在 LuCI 里有 SSR-Plus 和 passwall 插件,都支持 SS,SSR,V2ray,Trojan 等,就体验来讲,我个人更喜欢 passwall 插件。
后记
因为手动安装复杂很多,涉及到的知识面也更多,所以不想写了,一键安装确实方便了我这样的懒汉。
Trojan 似乎和 V2Ray+WS+TLS 机理差不多,从安全性来说两者稍有点差异但不大,而速度 Trojan 更有优势。就我测试的美国主机,本身速度就比较慢,V2Ray+WS+TLS 平均下载 1M 左右,最高 1.5M,而 Trojan 平均下载速度 2M 以上,最高可以到 3.5M。
参考:
Trojan-GFW --一把通往自由互联网世界的万能钥匙:https://www.johnrosen1.com/trojan/
自建梯子教程 --Trojan版本:https://trojan-tutor.github.io/2019/04/10/p41.html
- 推荐 Vultr:我已使用超过 5 年觉得还算稳定可靠的便宜 VPS,虽然可能会有 IP 被墙,但欧美亚的机房可以随便切换,美国机房最低每月 $3.5:512M 内存 500G 流量。
- 奖励链接: 新用户充值有奖励 https://www.vultr.com/?ref=7342510

Pay by WeChat
https://github.com/johnrosen1/vpstoolbox/issues/138
有人提了issue,这玩意会把你的vps信息和节点信息传到作者的服务器上。
虽然我不太懂代码,看了下感觉不像
谢谢博主,步骤还是有点多 ,这个教程简单点:https://www.itblogcn.com/article/1048.html
你好博主,请问,按照文章搭建后(阿里云的域名 + vultr 的服务器)后,提示安装成功,但是浏览器登录域名(已经进行正确的a记录解析),显示的是nginx的欢迎页
https://github.com/mack-a/v2ray-agent 看看这个吧
请问如何设置添置多个用户?
已解决,外面检测都是关闭的,原因是没有服务运行在上面,默认VPS服务商都是打开的,自己的问题在DNS解析没用对IP,因为之前被ban,忘记换了
打开443和80端口是这样吗
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload
这样操作了可以查到都打开的
firewall-cmd --zone=public --list-ports
只是用那个国内和国外端口检测都显示未打开
你好,你又遇到过passwall配置trojan节点后,访问https网站提示证书的问题嘛,如果使用其它客户端就没问题
没遇到过,升级下passwall看看
还一个想请教下的,我这新服务器,防火墙原来没开,我打开了,80和443也开了,但是到了最后
Can not find nginx conf.
证书申请测试失败,请检查VPS控制面板防火墙(80 443)是否打开!!!
这时候再查,又是firewalld is not running
我估计一键脚本里有其他的操作吧,因为我的服务器全是用来翻墙所以全部让脚本自己设置
想问下是一定要用国外域名吗,我有阿里云的现成的,就想用掉
不一定啊,我也是在阿里云买的,不过有一定的风险,有买的域名就被回收了,所以选不重要的域名干
果断Mark收藏了,谢大佬
您好,不晓得为什么初次安装完后提示要重启,重启之后Trojan就启动不了,连网站也是。
用的是甲骨文VPS
重启之后打了补丁 要干掉防火墙 然后重装一次
目前碰到几个问题
1.目前主要用的这台机器 每天晚上到11点20左右 就会掉线几分钟,有点像是自动重启。。好像和我建成的时间差不多。。。这是什么原因
2.我之前用CF的api对应了错误的邮箱,导致生成的证书无法连通,后来用正确的api对应正确的邮箱,却无法解析域名,然后在尝试用脚本直接生成的证书无法连通。。。替换成CF的才连通
3.我在装第三台机器的时候。。。直接把CF的证书放进去后,虽然服务正常启动了。。但是用来做伪装的域名是不安全域名,2和3用的是同一套证书 *.xxx.xx的
最头痛的问题是每晚准时掉线。。。。。。
掉线这个问题无解的,你应该是用的USA的服务器和cloudflare的DNS解析吧? 晚上十一点半正好是美国的早上八点,属于网络高峰期,是cloudflare最卡的时候
甲骨文韩国 和cf
dns 是关的。。云是灰的
补充一下 刚刚查看了一下系统运行时间。。不是重启 就是单纯的掉线
看了一下trojan的日志 大概是11点18左右掉线的 然后日志到了11点28分 又回到18分
今天早上 vps提示更新 系统补丁 ubuntu18
更新之后就上不去了
亲。我在腾讯云上申请的ssl,现在审核中。想问下到时候通过了下载下来怎么上传到vps呀。来自一个可怜的小白求助~BTW按照教程搭建好了,就是用起来网速一般,只有300-500k。到网上翻了一下BBR加速也搞进去了但是没有明显效果,是不是没有ssl的原因?
没必要自己去腾讯申请了再上传,按脚本自动生成就好了,毕竟你只是用来翻墙。证书可通过winscp上传到 /etc/trojan/trojan.crt 处,或者用FinalShell这个软件,ssh+文件管理都有了
至于网速,bbr效果好不好也是看服务端到本地的网络,我是没太在意过这个加速,聊胜于无吧
亲,脚本自动生成的证书过期了如何更新呀?
自动更新啊
你好,这个证书到期自动更新吗
看开发者的描述是自动更新的
谁搞的这个脚本,看着这繁体和奇怪文本对话框 怎么感觉那么像那什么
这个脚本已经开源了,觉得不放心就去看下代码,不想用就不用,可以去找其他脚本
你好 在搭建Trojan前, cloudflare的那云点灰,搭建好Trojan,在把cloudflare的云点亮,结果客户端,域名无法连接服务器,IP可以连接服务器。如果IP连接服务器就没用通过cloudflare解析域名。但是所有解析都是对的,搭建V2就一切正常,域名可以登录。为啥我的Trojan为啥域名无法登陆?谢谢了
v2支持cdn也就是可以点亮那个云,trojan不支持,所以只能灰着
朋友。vultr的vps,现在用你这个搭建好用吗。之前的几种方法都不行了,v2ray也不好用。
我一直在用vultr的,ss,ssr确实不行,经常搭了就挂,但我用Trojan和v2+ws+tls一直都好使,就是速度快慢而已
你好 你搭建的Trojan也是域名登录的?我v2+ws+tls域名登录正常,但这个Trojan,客户端域名无法成功连接,只有IP能连接,也不知道自己哪有问题?
你好,脚本卸载重装,出现can not resolve the host,脚本不执行,怎么解决?
这个不知道是不是脚本bug,我也不懂啊,建议去开发者的GitHub去提issue
你好,卸载以后无法重新安装,脚本也不执行,该如何处理?
我一般遇到这样无法解决的问题就是重装VPS系统,比较粗暴,因为我不懂代码啊
你好,想问下是不是我的搬瓦工IP被墙了以后就算解析成功也无法使用?
应该是可以的啊,我之前有个IP被墙后用cf做CDN就可以用了
挂了代理才能打开结果链接,不知道什么情况,感觉IP已经全面被Q
我一直在用vutlr的,一般碰到IP被墙就换一个地方或者再建一个。所以也没研究过这些帮不了你了,搜索一下看看别人都是怎么解决的吧
弄好,这速度真舒爽!啥也不说了!!老哥牛皮!!!!!
请问搬瓦工 ip 被墙了,用cf做了中转后,域名可以访问,chinaz也能大部分地区 ping 通,但就是梯子没法用,是vps 的 trojan安装问题,还是说本地客户端问题,我在纠结要不要花钱换ip重装一轮
trojan无法使用CF中转,你换v2ray,用ws+tls协议,先灰了中转,把v2ray的解析测试过了以后,再去点cf的中转按钮,这样就可以了。
我觉得cf应该是可以做到的,之前我ip被墙用v2的ws协议是可以翻的。不同协议多试试吧,再说IP可能过一个月又好了
感谢大大的教程,搭建成功。用lean openwrt的passwall设置节点可以访问。但有一个问题,使用passwall的Trojan节点访问会出现部分网站无法打开的情况,比如233blog.com, google.com.tw都无法访问,请大师测试解答一下。
是不是过滤列表还是黑白名单的问题啊,没遇到过呢。
可以去各种telegram群咨询下,我遇到的问题比较少,经验不足
谢谢答复,我觉得可能是openwrt或者是passwall的问题,v2ray可以正常访问,ssr和trojan就不行
有可能,可以换个插件对比试试看,ssr plus。这种东西一个是自己摸索测试,一个就看开发者有没有发现bug去改进了,毕竟都是靠热情驱动的
成功搭建,十分感谢!
谢谢您的教程!已经搭建成功。
现在用一台老笔记本做了软路由,还没有相应插件,在网上看了看好像只能自编译OpenWRT来获取SSR Plus插件,实现Trojan方式的翻墙,但编译过程比较难理解。看您另一个教程编译的是硬路由的固件,请问x86架构的软路由固件应当如何编译呢?谢谢!
只要在Target System (x86) CPU选x86就好了,后面就到luci里选自己想要的插件,试一次就知道了
谢谢回复,现在已经在用GCP编译了。昨天下载了别人编译的OpenWRT固件,刷在电脑上发现插网线没有任何反应,不知道这个行不行,有点紧张。
很不幸,失败了。固件刷入电脑后一过GRUB界面就黑屏了,没有任何反应。倒是学了不少Linux命令233333333
哈哈,就是这样,折腾的乐趣啊
重编译了固件依然不行,没办法还是用了Koolshare的。于是就想办法把lean大神的SSR Plus+编译成ipk模块装在软路由上了。这下Trojan也能用了,一高兴误删了配置好的Trojan服务器,重新配置又不行了,心累......
呵呵,软路由好刷,多试试就好了
爽了三天,google服务器直接连不上了。SSH都连不上。
原来是看视频把服务器玩崩了,300%负荷,已升级。爽
报错了呢
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details
建议将详细的操作过程写下来,到脚本作者 GitHub issues 提交
为什么安装一键脚本的时候提示 (22) The requested URL returned error: 404 Not Found
GitHub 那边的命令文件更新了,名字改了
可以提供一下K2的opemwrt的固件含有trojan链接吗?谢谢
lean的openwrt源码是支持的,恩山有人编译了刷k2用了,因为我现在手上没有k2也不好验证,你试试看这个
https://www.right.com.cn/forum/thread-1655944-1-1.html
你好
我是家用VPS搭建。80,443端口被屏蔽掉了,请问如何更换端口?
你是在国外是吧,如果家里的端口被封那就没招了,trojan本身就是通过443端口伪装流量的,改端口没意义。
所以还是找海外机房吧