Youtube视频



相关链接

服务端下载安装(基于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

图形化客户端的使用请看Youtube视频

如果觉得我的文章对你有用,请随意赞赏