简介
Trojan-Go使用Go实现的完整Trojan代理,与Trojan协议以及Trojan版本的配置文件格式兼容。安全,高效,轻巧,易用。
支持使用多路复用提升并发性能,使用路由模块实现国内直连。
支持CDN流量中转(基于WebSocket over TLS/SSL)。
支持使用AEAD对Trojan流量二次加密(基于Shadowsocks AEAD)。
支持可插拔的传输层插件,允许替换TLS,使用其他加密隧道传输Trojan协议流量。
完整配置教程和配置介绍参见Trojan-Go文档。
准备工作
- 可用的公网 IP 服务器(例如在 BandwagonHost、Vultr 等处购买的 VPS)
- 注册一个域名,本文以
example.com
为例
- 浏览器可正常访问
example.com
的显示网页
- 请自行关闭防火墙,并放行80/443端口
安装并配置 trojan-go
安装
以 trojan-go v0.5.1
为例:
1
2
3
|
wget https://github.com/p4gefau1t/trojan-go/releases/download/v0.5.1/trojan-go-linux-amd64.zip
unzip -o trojan-go-linux-amd64.zip -d /usr/local/bin/trojan-go
rm trojan-go-linux-amd64.zip
|
设置自启
新建服务文件:
1
|
vim /etc/systemd/system/trojan-go.service
|
添加如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[Unit]
Description=Trojan-Go
After=network.target nss-lookup.target
Wants=network-online.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/trojan-go/trojan-go -config /usr/local/etc/trojan-go/config.json
Restart=on-failure
RestartSec=15
[Install]
WantedBy=multi-user.target
|
启用服务:
1
|
systemctl enable trojan-go
|
配置
创建配置文件:
1
2
|
mkdir -p /usr/local/etc/trojan-go
vim /usr/local/etc/trojan-go/config.json
|
编辑配置文件,注意替换其中的password
,以及ssl
部分的内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "127.0.0.1",
"remote_port": 80,
"password": [
"fuckgfw"
],
"ssl": {
"cert": "/etc/ssl/certs/example.com.cer",
"key": "/etc/ssl/certs/example.com.key",
"sni": "example.com"
},
"router":{
"enabled": true,
"block": [
"geoip:private"
]
}
}
|
安装及配置Nginx及安装证书
启动服务
1
|
systemctl restart trojan-go
|
至此,服务端已部署完成。
客户端配置文件
编辑配置文件,注意替换其中的password
及example.com
内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
{
"run_type": "client",
"local_addr": "127.0.0.1",
"local_port": 1080,
"remote_addr": "example.com",
"remote_port": 443,
"password": [
"fuckgfw"
],
"ssl": {
"sni": "example.com"
},
"mux" :{
"enabled": true
},
"router":{
"enabled": true,
"bypass": [
"geoip:cn",
"geoip:private",
"geosite:cn",
"geosite:geolocation-cn"
],
"block": [
"geosite:category-ads"
],
"proxy": [
"geosite:geolocation-!cn"
],
"default_policy": "proxy"
}
}
|
Cloudflare 设置
- 将域名的 Namesever 指向 Cloudflare 所提供的地址,等待生效
- NS 记录更新后,将 Cloudflare 中域名的 A 记录指向服务器 IP,确保云朵为橙色(Proxied)
- 在
SSL/TLS
版块中的 Overview
里,将加密模式调整为 Full (strict)
- 在
SSL/TLS
版块中的 Edge Certificates
里,将 Minimum TLS Version
调整为 TLS 1.3
,并在下方确保开启对 TLS 1.3 的支持
- 在
Firewall
版块中的 Firewall Rules
里,添加一个规则,允许 /random
路径的访问(Allow URI path)
- 在 Cloudflare 上获取域名的
Zone ID
,记录之
- 在 Cloudflare 的
My Profile
中生成一个 API Token
,权限为 Zone Zone Read
和 Zone DNS Edit
,Zone Resources
特指区域为 example.com
,完成后记下 Token
- 根据自己的需要在 Cloudflare 上进行其他设置(可选),例如配置
Always Use HTTPS
、HSTS
、Automatic HTTPS Rewrites
、Auto Minify
等等,主要影响浏览器访问网站的效果