【美博翻墙2019.12.27】trojan是较新的代理项目,目前网上trojan+Caddy的构建详细教程极少,美博测试后发布此方法与网友分享。
trojan 采用常见的协议HTTPS,没有使用特别的协议,trojan监听443端口,其思路是把 trojan代理数据伪装成正常的 HTTPS 通信,对于其他访问数据则直接转发到80端口,通过caddy、Nginx等web服务器提供网页访问服务,当trojan客户端连接到服务器时,首先执行真正的 TLS 握手,若握手成功,则所有后续流量都将受到保护TLS; 否则服务器就立即关闭连接,就像任何HTTPS服务器一样。这样VPS更像一个正常的web服务器,使得 GFW 认为是 正常HTTPS。trojan反侦查采用主动检测与被动检测,而不会被识别出来。caddy+trojan一起合用是很好的组合,trojan绑定在0.0.0.0:443上,转发非trojan流量到 caddy 达到掩护的目的。caddy绑定在0.0.0.0:80上,并自动重定位到https加密浏览。
前文 自建最强科学上网2:V2ray+Caddy+Tls+WebSocket 与本文trojan + Caddy方法,美博园(allinfa.com)认为都是目前翻墙思路最好、最强的翻墙方法。二者可等同使用。
本方法的trojan服务器部署系统要求:Ubuntu ≧ 16.04 or Debian ≧ 9,建议使用 Debian 10
本方法以Caddy作为前端web服务器,是一个轻便的web部署工具,其功能与 nginx 类似。其优点是:单文件,无依赖,安全、轻量、方便;安装快速、不到30秒可创建一个 HTTPS 服务器;不受制于EE的版本限制,可广泛应用于各种系统;配置文件简洁,多站点配置、反向代理等功能都在一个 Caddyfile 文件里配置;默认启用HTTPS,自动签发免费的 Let’s Encrypt https 证书并自动续约,默认支持HTTP/2(H2)网络协议;还有丰富的插件系统,可以快速配置缓存、CORS、自动拉取 Git 仓库、Markdown 支持、ip/地区过滤等功能。
本文有关的几个概念介绍:
trojan:以常见的https协议构建的绕过网络限制、审查、翻墙的工具。
Caddy:作为部署代理的前端web服务器。
HTTP/2(H2):是互联网HTTP网络协议的主要修订版。它源自Google最初开发的实验SPDY协议。
TLS:安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。
反向代理:相对正向代理而言,真实的web服务器受到保护、对外不可见,外网只能看到反向代理,而反向代理服务器上并没有真实数据,从而保护web服务器的资源安全,并可加速网站访问速度等。
本教程按照实际制作过程進行描述:
一、选择 VPS 服务器并安装系统
购买VPS并安装系统,请见教程:
自己搭建代理服务器:VPS的选择
自己搭建代理服务器:Vultr VPS 购买图文教程
自己搭建代理服务器:Vultr VPS 系统安装图文教程
请记住VPS安装系统后得到的: ip地址、 密码、 用户名(默认是root),后面会用到。
二、购买域名并设置与服务器ip关联
请参考教程:
自己搭建代理服务器:域名购买及设置与ip服务器关联
域名是为了建立网站(网页)用的,本方法实际建立一个网站(网页),将翻墙代理隐身其中,翻墙就像是实实在在的在浏览网站,消除代理的特征信号,提高翻墙代理安全性,这样的思路一直以前的翻墙软件难以实现的,trojan也实现了这个愿望,成为目前最好的翻墙方法系列之一。
三、用SSH工具连接VPS服务器
用SSH工具连接VPS服务器后,可以输入各种指令(命令)来安装系统、安装各种应用程序
在自家电脑上通过安全的SSH连接到远端的VPS服务器,就可以发出各种指令(命令)来安装系统、安装各种应用程序,包括建立代理的各种组件等等。在电脑上安装XShell软件来实现SSH连接非常方便,美博园推荐这个工具。
请参考:SSH连接软件-Xshell下载及使用教程
如果你使用的是Linux或macOS系统,本身就内置有SSH链接的终端模拟器,无需下载额外的软件。
=========== 几点说明 =========
# 本文方法以root用户来构建,建议不熟悉改变命令的网友不要自建用户,否则此法的很多命令将不可用。
# 新手注意:以下命令都是在英文半角输入完成,电脑的输入法不要处于中文输入状态,以免无意输入中文字符出错。
# 在执行下面各种命令时,首先都是要以root用户登录SSH连接VPS服务器,然后输入各种命令来执行。
# 下面的步骤,如果不明白其中命令的含义没有关系,请按照下面的全部顺序,有的步骤是不能移动顺序的,一步一步输入命令完成即可。
==============================
四、更新及优化系统
购买VPS时已经选择了安装系统,首先我们要输入指令更新系统:
4-1、更新系统
依次输入:
apt update
按[Enter]
apt upgrade
按[Enter]
注:以下每个命令输入后都要按[Enter] 回车执行,下面不再重复注明。
4-2、调整系统控制参数
输入
nano /etc/sysctl.conf
为代理服务器优化配置,将以下配置内容粘贴到上面命令打开的/etc/sysctl.conf的 #绿色光标处,象这样子:
#绿色光标在粘贴插入配置文件后处于加入内容的尾端,可按回车将#光标另立分行。
# max open files
fs.file-max = 51200
# max read buffer
net.core.rmem_max = 67108864
# max write buffer
net.core.wmem_max = 67108864
# default read buffer
net.core.rmem_default = 65536
# default write buffer
net.core.wmem_default = 65536
# max processor input queue
net.core.netdev_max_backlog = 4096
# max backlog
net.core.somaxconn = 4096
# resist SYN flood attacks
net.ipv4.tcp_syncookies = 1
# reuse timewait sockets when safe
net.ipv4.tcp_tw_reuse = 1
# turn off fast timewait sockets recycling
net.ipv4.tcp_tw_recycle = 0
# short FIN timeout
net.ipv4.tcp_fin_timeout = 30
# short keepalive time
net.ipv4.tcp_keepalive_time = 1200
# outbound port range
net.ipv4.ip_local_port_range = 10000 65000
# max SYN backlog
net.ipv4.tcp_max_syn_backlog = 4096
# max timewait sockets held by system simultaneously
net.ipv4.tcp_max_tw_buckets = 5000
# TCP receive buffer
net.ipv4.tcp_rmem = 4096 87380 67108864
# TCP write buffer
net.ipv4.tcp_wmem = 4096 65536 67108864
# turn on path MTU discovery
net.ipv4.tcp_mtu_probing = 1
# for high-latency network
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control = bbr
退出nano编辑状态
注:下面凡是用到nano编辑命令的,退出nano编辑状态都是这个办法。下面不再重复说明。
输入上述内容后,退出nano编辑状态
同时按
Ctrl + X
会问你会否储存档案,按下
y
再按多一次
Enter
就可以退出nano编辑状态了。
4-3、激活更改
输入:
sysctl -p
4-4、编辑安全限制配置文件
4-4-1、将文件数限制增加到51200
输入
nano /etc/security/limits.conf
在绿色#光标处粘贴添加下面代码:
* soft nofile 51200
* hard nofile 51200
然后,按回车将#光标另立分行。再同时按 Ctrl + X
,再按y,退出nano编辑状态。
4-4-2、将当前文件数限制设置为51200
输入:
ulimit -SHn 51200
4-4-3、编辑永久配置文件:
输入:
nano /etc/profile
在绿色#光标处粘贴添加下面代码:
ulimit -SHn 51200
然后,按回车将#光标另立分行。再同时按 Ctrl + X
,再按y,退出nano编辑状态。
五、安装 Caddy
5-1、先安装Web数据传输实用程序curl
输入:
apt install curl
若询问
Doy
ou want to continue? [Y/n]
就按
y
继续安装直到完成。
5-2、安装Caddy个人使用版本
输入:
curl https://getcaddy.com | bash -s personal
会显示:
Downloading Caddy for linux/amd64 (personal license)...
Download verification OK
Extracting...
Putting caddy in /usr/local/bin (may require password)
Caddy v1.0.4 (h1:wwuGSkUHo6RZ3oMpeTt7J09WBB87X5o+IZN4dKehcQE=)
Successfully installed(安装成功)
5-3、确定caddy文件安装在何处
输入:
whereis caddy
显示为:
root@vmi:~# whereis caddy
caddy: /usr/local/bin/caddy
5-4、赋予所有权和权限
#root拥有cabby文件防止其他账户修改
输入:
chown root:root /usr/local/bin/caddy
#修改权限为755,root可读写执行,其他账户不可写
输入:
chmod 755 /usr/local/bin/caddy
5-5、允许Caddy绑定到特权端口
#Caddy不会由root运行,使用setcap允许caddy作为用户进程绑定低号端口(服务器需要80和443)
输入:
setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy
5-6、www-data的组和用户
检查名为www-data的组和用户是否已经存在
输入:
cat /etc/group | grep www-data
显示为:
root@vm:~# cat /etc/group | grep www-data
www-data:x:33:
输入:
cat /etc/passwd | grep www-data
显示为:
root@vm:~# cat /etc/passwd | grep www-data
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
注意:你的显示结果与上面一样,不需要下面输入,如果显示不一样、其组和用户不存在,则需要创建它们:
输入:
groupadd -g 33 www-data
输入:
useradd -g www-data --no-user-group --home-dir /var/www --no-create-home --shell /usr/sbin/nologin --system --uid 33 www-data
5-7、为 Caddy 创建目录
#创建文件夹存储Caddy的配置文件
输入:
mkdir /etc/caddy
#创建文件夹存储Caddy所管理的站点证书
输入:
mkdir /etc/ssl/caddy
#允许root及www-data组访问相关文件,允许Caddy写入站点证书文件夹
依次输入:
chown -R root:root /etc/caddy
chown -R root:www-data /etc/ssl/caddy
chmod 770 /etc/ssl/caddy
#创建记录文件
依次输入:
touch /var/log/caddy.log
chown root:www-data /var/log/caddy.log
chmod 770 /var/log/caddy.log
六、创建网站(网页)
6-1、为您的网站创建目录
#如果默认站点根目录不存在,创建以下文件夹
输入:
mkdir -p /var/www/html
#允许www-data组拥有站点文件夹
输入:
chown -R www-data:www-data /var/www
#创建空的Caddy配置文件
输入:
touch /etc/caddy/Caddyfile
6-2、向网站添加内容
基本上有二种方式,一种是建立一个简单的网页,另一种是建立一个实实在在的简易网站,可以装一些内容。当用域名访问时,是可以看到真实内容的。美博这里先介绍创建一个简单网页的方法。建立一个简易网站的方法,美博正在编辑网页文件,完成后会在此步骤提供下载安装及方法,请留意此文的更新。
6-2-1、创建网站方法
待补充。 美博考虑到安全,还是不补充了。原本在建一个简易的网站包,网友下载后安装进来就是一个像样的网站。思来想去还是觉得不安全,固定为一个网站后,GFW流氓可能抽取其中的内容作为关键词过滤,就可能有安全隐患了。
给朋友们提供一个思路去自己处理:
本方法的掩护网站建立的位置在 /var/www/html/ 目录中,其中网页启动文件是 index.html。有些了解网站的网友知道,你自己可以在网上找到很多网站模板(主题)程序,到处都有网站模板(主题)演示,下载一个模板(主题)后,把其全部文件(只要里面的内容文件,不要模板(主题)名目录)复制到 /var/www/html/ 目录中,其中的 启动文件 index.html 一定要在 html/ 目录下,不要放在其它子目录中,就OK了。
建议不要变动以上的目录结构,不然就可能需要更改目录路径和重新设置安装本文一些其它步骤。
6-2-2、创建一个网页
这个方法简单,可以广泛采用这个方法。
先特别说明:里面的中文字内容,请不要千篇一律的复制,可任意改为你自己编辑的独一无二的、普通的、无敏感词的内容,如:诗词、图片、外文等等,
6-2-2-1、首先创建一个作为掩护的真正的网页
输入:
touch /var/www/html/index.html
6-2-2-2、编辑网页文件
输入:
nano /var/www/html/index.html
将以下内容粘贴到 #绿色光标处
<!DOCTYPE html>
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1 style="font-family: sans-serif">Hello </h1>
……网站正文内容……
……本博客正在创建中……ing,请耐心等待!
……文章内容正在添加中……ing
</body>
</html>
注:图片加入的格式为:<img src=”你的图片链接” />,可以加入多张图片,图文并茂更好,加入的位置就是“替换”上例的“……网站正文内容……”这些中文字内容。
总之,就是改为你自己知道的唯一的内容, 重申:其中不要有敏感字词。
然后,按回车将#光标另立分行。再同时按 Ctrl + X
,再按y,退出nano编辑状态。
七、设置SystemD服务
7-1、安装SystemD服务配置,然后重新加载SystemD
输入:
wget https://raw.githubusercontent.com/caddyserver/caddy/master/dist/init/linux-systemd/caddy.service
输入:
cp caddy.service /etc/systemd/system/
输入:
chown root:root /etc/systemd/system/caddy.service
输入:
chmod 644 /etc/systemd/system/caddy.service
7-2、重载systemd使其检测到新安装的Caddy服务
输入:
systemctl daemon-reload
八、配置 Caddy
8-1、加入Caddy配置文件
输入:
nano /etc/caddy/Caddyfile
请注意,先要修改下面紫红色标记的“域名”、“信箱”为你自己的资料(下面有详细说明)
然后再将内容粘贴到 #绿色光标处
这里举例用一个二级域名 tro.abcdef.com
tro.abcdef.com {
tls [email protected]
log /var/log/caddy.log
root /var/www/html
}
然后,同时按 Ctrl + X
,再按y,退出nano编辑状态。
说明:
1)tro.abcdef.com:要改为你自己的域名,若是这样的二级域名,其正确解析请参考前文【自己搭建代理服务器:域名购买及设置与ip服务器关联
】;
2)[email protected]:要改为你自己的邮箱,Caddy将自动与Let's Encrypt联系以获取SSL证书并在90天到期后自动更新证书;
3)Caddy将自动与Let's Encrypt联系以获取SSL证书。它将证书和密钥放在“/etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/你自己的域名/” 目录中;
4)此文件保存后,Caddy会随即向Let's Encrypt发出SSL证书申请,一般很快在一分钟就可完成,但可能有人会遇到特殊情况比较久一些才会完成。
8-2、赋予Caddy配置文件权限
#将您的Caddy配置文件复制到正确的目录中:
输入:
cp ~/Caddyfile /etc/caddy/
#给它适当的所有权和权限:
输入:
chown root:root /etc/caddy/Caddyfile
输入:
chmod 644 /etc/caddy/Caddyfile
8-3、启动Caddy
#启动Caddy
输入:
systemctl start caddy
8-4、检查SSL证书是否生效及效果
上面Caddy配置是否生效,SSL证书是否已经生成,到这里要进行检查,这在trojan构建时是需要做的。因为SSL证书没有生成,后面是不能成功搭建trojan代理的。而且,上面这一步的Caddyfile配置是专为你的域名生成证书,在后面会删除这个设置,所以,这一步一定要检查SSL证书已经生成才可以往下面的步骤走。
检查很简单,就是在浏览器中用 https://你的域名,如果已经可以访问你的网站,显示你自己建的网站内容,就表明SSL已经安装成功了。
因有时SSL证书申请要等几分钟,如果没有马上生效,可稍等一下。
如果要進一步看看SSL效果,可以在 SSL Labs网站查看
https://www.ssllabs.com/ssltest/
在其中输入自己的域名,可以检测一下https配置评分。
8-5、检查Caddy启动状态
要检查Caddy是否正在运行并且正在侦听端口80和443,可输入:
systemctl status caddy
你应该看到这样子的结果,如看到如下绿色字 active (running),表明 caddy已经启动:
8-6、自启动Caddy
若上一步启动无问题则可启用开机自启动Caddy
输入:
systemctl enable caddy
8-7、若Caddy没有正常启动的记录查看
如果Caddy无法正常启动,则可以查看日志数据以帮助找出问题.如果已经启动,不需要此步检查。
输入:
journalctl --boot -u caddy.service
九、安装trojan
trojan官网(Github 页面)
https://github.com/trojan-gfw/trojan
注意trojan在不同的系统及不同版本的安装命令不同,请参考官方命令说明:
https://github.com/trojan-gfw/trojan/wiki/Binary-&-Package-Distributions
但,我们可以方便使用trojan的官方一键脚本(Quickstart Script),适用于所有系统:
输入:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"
显示:
……
nstalling trojan systemd service to /etc/systemd/system/trojan.service...
Reloading systemd daemon...
Deleting temp directory /tmp/tmp.M5PQtGC5dh...
Done!
注意:在配置完成前,不要启动trojan,也无法启动。
十、配置Caddyfile
# 转发cabby
由于caddy也占用了443端口,需要修改caddy的配置文件,让caddy转为监听80端口
# 先关闭caddy
输入:
service caddy stop
# 先备份原配置文件
输入:
cp /etc/caddy/Caddyfile /etc/caddy/Caddyfile.bak
# 再删除原配置并打开编辑器
输入:
rm /etc/caddy/Caddyfile && nano /etc/caddy/Caddyfile
# 修改Caddyfile配置文件
将下面的内容复制、粘贴到绿色光标处
:80 {
root /var/www/html
gzip
browse
}
然后,同时按 Ctrl + X
,再按y,退出nano编辑状态。
# 再启动caddy
输入:
service caddy start
十一、服务器端配置文件
(一)服务器配置文件修改
因按照本方法的配置文件,美博已经修改好了,就直接给出修改内容。
# 先备份原没有设置的服务器配置文件
输入:
cp /usr/local/etc/trojan/config.json /usr/local/etc/trojan/config.json.bak
# 再删除原配置并打开编辑器
输入:
rm /usr/local/etc/trojan/config.json && nano /usr/local/etc/trojan/config.json
将下面的内容复制、粘贴到绿色光标处
请注意,先要修改下面紫红色标记的“密码”、“域名”为你自己的资料(下面有详细说明)
然后再将内容粘贴到 #绿色光标处
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "127.0.0.1",
"remote_port": 80,
"password": [
"你设定的密码",
""
],
"log_level": 1,
"ssl": {
"cert": "/etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/你的域名/你的域名.crt",
"key": "/etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/你的域名/你的域名.key",
"key_password": "",
"cipher": "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256",
"prefer_server_cipher": true,
"alpn": [
"http/1.1"
],
"reuse_session": true,
"session_ticket": false,
"session_timeout": 600,
"plain_http_response": "",
"curves": "",
"dhparam": ""
},
"tcp": {
"prefer_ipv4": false,
"no_delay": true,
"keep_alive": true,
"fast_open": false,
"fast_open_qlen": 20
},
"mysql": {
"enabled": false,
"server_addr": "127.0.0.1",
"server_port": 3306,
"database": "trojan",
"username": "trojan",
"password": ""
}
}
然后,同时按 Ctrl + X
,再按y,退出nano编辑状态。
说明:上面配置文件只有二处需要修改:
1)“你设定的密码”:可任意设定任何数字字母符号和任意长度,只要自己记住,并与客户端设置一样的密码就好。
若自己想不到好的密码,也可在下面网站随意生成
https://strongpasswordgenerator.com/
2)"cert"和"key",是你的cabby为你自动申请的SSL证书文件及密钥文件,在上面的配置文件中需将“你的域名”改为你上面设置的域名
3)请注意:不同系统的具体证书、密钥路径可能不同。
是否开启 “fast_open”: true?
有网友建议开启,据美博所知:trojan目前只在Linux中支持TCP_FASTOPEN_CONNECT,而在Windows中则不提供,TFO并未有重大改进,容易受到某种形式的攻击,美博不建议启用它。
(二)重新加载配置文件
修改好上述服务器配置文件后,需要加载
输入:
systemctl daemon-reload
(三) 赋予trojan监听443端口能力
赋予trojan监听1024以下端口的能力,使得trojan可以监听到443端口。
输入:
setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/trojan
(四)启动trojan
# 启动trojan
输入:
systemctl start trojan
# 查看启动是否成功
输入:
systemctl status trojan
如图,若显示为绿色的“active”表示trojan已经成功启动

# 设置自启动
若启动成功运行,可以加入开机自启
输入:
systemctl enable trojan
显示为:root@vm:~#
systemctl enable trojan
Created symlink /etc/systemd/system/multi-user.target.wants/trojan.service → /etc/systemd/system/trojan.service.
# 若不能启动,请查看错误日志
(已经正常启动不需此输入)
输入:
journalctl -fu trojan
十二、防火墙简易设置
为了增强安全性,下面介绍防火墙的简易设置,请接着上面的步骤继续完成下面的设置。
不过美博觉得这个防火墙可设置也可不设置,因为你的自建代理本来就是隐蔽在运行。如果要進一步增强安全性,当然是可以设置的。
请根据你的系统是 Ubuntu 或 debian 来选择设置,二者防火墙设置方式不同。
12-1、Debian 系统 开启防火墙及端口设置
如果你使用的是 Debian 系统,请按照下面的设置,不适用于Ubuntu系统和Centos系统
1)安装UFW
Debian默认不安装UFW,使用apt安装:
apt install ufw
2)设置默认策略
要设置UFW使用的默认值,使用以下命令:
ufw default deny incoming
ufw default allow outgoing
3)允许SSH连接
允许端口22上的所有连接
ufw allow 22
如果将SSH使用其他端口,则必须指定相应的端口。例如,如果SSH服务器正在监听端口2222 ,则可以使用此命令允许该端口上的连接:
ufw allow 22
22
4)启用UFW
在允许了SSH后,才启用UFW,不然SSH连接会断开
要启用UFW,使用以下命令:
ufw enable
会询问是否安装,
root@v3:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
请输入y
完成安装会显示:
Firewall is active and enabled on system startup
5)打开常用端口
翻墙会用到 端口80、443
依次输入:
ufw allow 80
ufw allow 443
12-2、Ubuntu 系统 开启防火墙及端口设置
如果你使用的是 Ubuntu 系统,请按照下面的设置,不适用于Debian系统和Centos系统
因我们只是用于翻墙,需要打开这几个端口 port: 22, 80, 443
22 / TCP(入站/出站):标准SSH端口
80 / TCP(入站/出站):标准HTTP端口
443 / TCP(入站/出站):标准HTTPS端口
用下面的命令打开这几个 port
依次輸入以下指令:
ufw allow 22
回车
ufw allow 80
回车
ufw allow 443
回车
再输入命令启用防火墙
ufw enable
回车
会提问:
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
问是否真的启用防火墙 enable firewall,并警告如果设定不当会断线。因我们已经启用 allow port 22 ,所以没有问题,
按下y
回车
就可以了。
至此,防火墙设置完成
==============
至此,服务器端设置全部完成
1、退出SSH
退出 SSH 连接
输入:
exit
或者 直接关闭 X-shell
2、关于修改服务器配置
上述设置一切都完成后,一般不需要修改就可以稳定运行。如果你想修改配置,如域名、密码等等,都是可以修改的,但是修改完成后,记得重启trojan服务端即可,同时客户端的资料也要同步修改。
重启trojan服务
输入:
systemctl restart trojan
修改配置也需重新加载配置文件
输入:
systemctl daemon-reload
==============
十三、客户端下载、配置及使用方法
13-1、客户端配置文件
与上述服务器端配置文件对应的客户端配置文件是:
{
"run_type": "client",
"local_addr": "127.0.0.1",
"local_port": 1080,
"remote_addr": "你的域名",
"remote_port": 443,
"password": [
"你设定的密码"
],
"log_level": 1,
"ssl": {
"verify": true,
"verify_hostname": true,
"cert": "",
"cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:RSA-AES128-GCM-SHA256:RSA-AES256-GCM-SHA384:RSA-AES128-SHA:RSA-AES256-SHA:RSA-3DES-EDE-SHA",
"sni": "",
"alpn": [
"h2",
"http/1.1"
],
"reuse_session": true,
"session_ticket": false,
"curves": ""
},
"tcp": {
"no_delay": true,
"keep_alive": true,
"fast_open": false,
"fast_open_qlen": 20
}
}
然后,同时按 Ctrl + X
,再按y,退出nano编辑状态。
说明:这个配置文件里也有二处需要修改为你自己的内容,即:“你的域名”和“你设定的密码”,并与上述“十一、服务器端配置文件之(一)服务器配置文件修改”的相同。
13-2、客户端软件下载
# 官方客户端软件下载
在服务器端搭建好trojan代理服务器后,我们还需在自己的电脑即客户端上使用。
至今,trojan还没有图形界面的客户端软件,官方发布有一个客户端软件,只有dos黑框,里面会显示数据连接状况,因为trojan设置简单,其实已经够用,美博建议还是用官方的。
trojan客户端下载官方页面:
https://github.com/trojan-gfw/trojan/releases
请根据自己的电脑所装系统,下载对应的软件包,如:Windows系统就下载 trojan-x.xx.x-win.zip, Mac系统就下载 trojan-x.xx.x-macos.zip(中间的x.xx.x是版本号)
# 使用方法
下载后解压,得到trojan文件夹,其中文件包括:
config.json : 这个就是客户端配置文件,
trojan.exe : 这是trojan执行文件,

13-3、客户端配置修改及启动trojan
用文本编辑器打开客户端配置文件config.json,然后将“12-1、客户端配置文件”内容复制进去,然后保存。
然后,双击trojan.exe,就可以启动trojan了。
启动后象这样:

13-4、启动trojan常遇到的问题
1、trojan客户端无法启动,提示缺少找不到 vcruntime140.dll 或找不到 msvcp140.dll
这是因为你的系统没有安装VC++运行环境
点击下载链接到微软官方下载,
https://www.microsoft.com/zh-CN/download/details.aspx?id=48145
其中有两个软件,一个是32位(vc_redist.x86.exe)、一个是64位(vc_redist.x64.exe)。二者区别是v1.12.3及以前版本安装x86环境,v1.13.0及以后版本安装x64环境,但若网友分不清区别,就二个全部都安装。然后重新启动trojan,确认trojan没有报错即可。
若启动还是有错,也可能缺乏 Windows.NET Framework 4.6.2,请到微软官方下载并安装:
https://support.microsoft.com/zh-cn/help/3151800/the-net-framework-4-6-2-offline-installer-for-windows
2、如果提示 vcruntime140_1.dll 的错误
下载下面的文件放到C:\windows\system32目录下即可:
https://github.com/atrandys/trojan/raw/master/vcruntime140_1.dll
3、如果启动trojan会一闪而过
这应该是你配置文件有错误,请仔细检查。
可以使用控制台运行trojan,能看到具体是哪一行有错,具体方法:使用”命令提示符”定位到trojan目录,如何运行 trojan 命令,可以看到具体哪一行有错误,如:fatal: config.json(16): invalid code sequence ,说明你的配置文件第16行有错误。然后,用文本编辑器打开客户端配置文件config.json对号检查修正。
十四、浏览器设置与代理上网
14-1、浏览器代理参数设置
这个比较简单,完全借用v2ray一样的设置,不需要另外设置
在浏览器中设置trojan代理为: socks5 127.0.0.1:1080
请注意:
1)firefox68版,很多代理调度扩展不能使用(如 Gproxy代理扩展),美博园的Firefox纯净绿色版已经用另外的代理扩展设置有这个端口的v2ray代理,请参考:
火狐浏览器_Firefox_68.0.1esr_美博园纯净中文绿色版(更新) – 美博园
2)57版之前的旧版firefox,可以使用以下介绍的方法设置firefox浏览器代理, 但是, 切记:在新版firefox中下面的代理扩展已经不起作用!
请参考:
GProxy:火狐(firefox)浏览器简便的代理调度扩展(v2.1) - 美博园
GProxy Plus 3.0和 3.1 版:Firefox浏览器简便的代理调度扩展(20180523) - 美博园
3)、其他浏览器设置trojan代理,请参考上面介绍的firefox设置,这里不详述。