Youtube视频
相关链接
- 官方Github
- 中文文档
- gwf-report版本
- Matsuri&Nekoray文档官网
- Matsuri下载
- Matsuri Trojan-Go插件下载
- Nekoray下载
- Qv2ray下载
- Qv2ray Trojan-Go插件下载
- v2ray-core下载
服务端下载安装(基于CentOS)
# 下载
wget https://github.com/p4gefau1t/trojan-go/releases/download/v0.10.6/trojan-go-linux-amd64.zip
# 解压,-d指定解压的目录
unzip trojan-go-linux-amd64.zip -d ./trojan-go
# 进入到解压目录
cd trojan-go
# 移动可执行文件到可执行目录
mv trojan-go /usr/bin/
# 创建配置目录
mkdir /etc/trojan-go
# 将geo数据文件移动到配置目录
mv geoip.dat geosite.dat /etc/trojan-go/
# 将服务端配置文件移动到配置目录
mv example/server.yaml /etc/trojan-go
# 修改system daemon配置模板
# 改为使用root用户启动
sed -i 's/nobody/root/g' trojan-go@.service
# 改为使用yaml配置格式,若使用json配置文件,不需要修改
sed -i 's/.json/.yaml/g' trojan-go@.service
# 将文件移动到system daemon 配置目录下
mv example/trojan-go@.service /etc/systemd/system/
# 刷新systemd 配置文件
systemctl daemon-reload
# 设置trojan-go 开机启动,后面的@server 必须和配置文件名一致
systemctl enable trojan-go@server.service
完整的【trojan-go@.service】配置文件
[Unit]
Description=Trojan-Go - An unidentifiable mechanism that helps you bypass GFW
Documentation=https://p4gefau1t.github.io/trojan-go/
After=network.target nss-lookup.target
[Service]
User=root
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
NoNewPrivileges=true
ExecStart=/usr/bin/trojan-go -config /etc/trojan-go/%i.yaml
Restart=on-failure
RestartSec=10s
LimitNOFILE=infinity
[Install]
WantedBy=multi-user.target
服务端【server.yaml】配置文件 - 带注释
// 运行类型,服务端固定是server
run-type: server
// trojan-go绑定的ip以及端口
local-addr: 0.0.0.0
local-port: 443
// 本地http服务的地址和端口,用来伪装正常的web网站,自己修改为自己的http服务地址和端口
remote-addr: 172.17.0.2
remote-port: 80
// 访问的密码,数组,可填写多个密码
password:
- hello_trojan
- hello_elden
ssl:
// 证书和密钥文件的配置
cert: /data/cert/latata.me/latata.me.cer
key: /data/cert/latata.me/latata.me.key
// 一般填访问的域名就可以
sni: trojan.latat.me
// fallback配置是当tls握手失败的时候重定向到改地址,可能提高伪装度,自己修改为自己falback的https服务地址和端口
fallback-addr: 172.17.0.2
fallback-port: 443
// websocket的配置,一般无需配置,若使用cdn可以结合shadowsocks配置一起使用
websocket:
enabled: true
// 指定websocket的访问地址,注意自己修改一下,填一个合理的地址
path: /video/get.action
// 主机名,填访问的域名
host: trojan.latat.me
// ss 二次加密配置
shadowsocks:
enabled: true
// 加密的方法
method: aes-256-gcm
// 密码
password: hello_elden
// 路由的配置
router:
enabled: true
// server只能配置block,用来限制服务端访问的域名和ip
// geoip:通过geoip数据文件过滤,geosite:通过geosite数据文件过滤,domain:过滤域名及子域名,full:过滤指定的完整域名,cidr:过滤IP段
block:
- 'geoip:private'
- 'domain:baidu.com'
- 'full:news.qq.com'
- 'cidr:111.0.0.0/8'
// geo数据文件路径配置
geoip: /etc/trojan-go/geoip.dat
geosite: /etc/trojan-go/geosite.dat
// 输出日志文件的路径
log-file: /var/log/trojan-go.log
// 日志的输出级别,默认是1为info,0为debug,2为error
log-level: 1
服务端【server.yaml】配置文件 - 无注释
run-type: server
local-addr: 0.0.0.0
local-port: 443
remote-addr: 172.17.0.2
remote-port: 80
password:
- hello_trojan
- hello_elden
ssl:
cert: /data/cert/latata.me/latata.me.cer
key: /data/cert/latata.me/latata.me.key
sni: trojan.latat.me
fallback-addr: 172.17.0.2
fallback-port: 443
websocket:
enabled: true
path: /video/get.action
host: trojan.latat.me
shadowsocks:
enabled: true
method: aes-256-gcm
password: hello_elden
router:
enabled: true
block:
- 'geoip:private'
- 'domain:baidu.com'
geoip: /etc/trojan-go/geoip.dat
geosite: /etc/trojan-go/geosite.dat
log-file: /var/log/trojan-go.log
log-level: 1
Nginx简单伪装服务配置
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
proxy_pass https://demo.cloudreve.org;
# 开启传递服务器名
proxy_ssl_server_name on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
# 证书和秘钥要换成自己的
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /data/cert/latata.me/latata.me.cer;
ssl_certificate_key /data/cert/latata.me/latata.me.key;
}
客户端【client.yaml】配置文件 - 带注释
// 运行类型,服务端固定是client
run-type: client
// trojan-go客户端绑定的ip以及端口
local-addr: 127.0.0.1
local-port: 1080
// 指定远程连接的trojan-go域名和端口,自行修改
remote-addr: trojan.latata.me
remote-port: 443
// 指定一个访问密码
password:
- hello_elden
ssl:
// 一般填访问的域名就可以
sni: trojan.latata.me
// 多路复用配置,concurrency 为并发数,默认8;idle-timeout为空闲超时时间,超过无数据传输则关闭连接
mux:
enabled: true
concurrency: 10
idle-timeout: 60
// websocket的配置,需要和服务端保持一致
websocket:
enabled: true
path: /video/get.action
host: trojan.latat.me
// shadowsocks二次加密配置,需要和服务端保持一致
shadowsocks:
enabled: true
method: aes-256-gcm
password: hello_elden
// 路由的相关配置,bypass 直连,proxy 代理 block 拒绝
router:
enabled: true
bypass: ['geoip:cn', 'geoip:private', 'geosite:cn', 'geosite:private']
block: ['geosite:category-ads']
proxy: ['geosite:geolocation-!cn']
// 默认路由策略
default-policy: proxy
// geo数据库文件的配置
geoip: /Users/IU/Downloads/trojan-go-darwin-amd64/geoip.dat
geosite: /Users/IU/Downloads/trojan-go-darwin-amd64/geosite.dat
客户端【client.yaml】配置文件 - 无注释
run-type: client
local-addr: 127.0.0.1
local-port: 1080
remote-addr: trojan.latata.me
remote-port: 443
password:
- hello_elden
ssl:
sni: trojan.latata.me
mux:
enabled: true
concurrency: 10
idle-timeout: 60
websocket:
enabled: true
path: /video/get.action
host: trojan.latat.me
shadowsocks:
enabled: true
method: aes-256-gcm
password: hello_elden
router:
enabled: true
bypass: ['geoip:cn', 'geoip:private', 'geosite:cn', 'geosite:private']
block: ['geosite:category-ads']
proxy: ['geosite:geolocation-!cn']
default-policy: proxy
geoip: /Users/IU/Downloads/trojan-go-darwin-amd64/geoip.dat
geosite: /Users/IU/Downloads/trojan-go-darwin-amd64/geosite.dat
启动trojan-go客户端
# -config 指定配置文件
./trojan-go -config example/client.yaml