概述
- Trojan代理服务是一种基于Trojan协议的网络代理工具,它可以在用户与互联网之间建立一个加密的通信隧道,以保护用户的网络通信安全和隐私。
- 使用Trojan代理服务时,用户需要先配置代理服务器信息,然后在设备或应用程序中设置代理。一旦连接成功,用户的网络流量将通过代理服务器传输,实现匿名和安全的上网。
前提条件
- 需要有自己的域名,参考网上教程申请一个域名即可。
- 需要申请SSL证书,参考我之前的文章SSL泛域名证书免费申请,永久续期,新手福音!,生成证书路径如下:
#your-domain-name.com替换成自己的域名
/etc/letsencrypt/live/your-domain-name.com
安装步骤
一键脚本安装代理服务
- 需要自行配置一个http服务,用于代理服务进行探测时TLS握手成功或失败的响应
- 执行如下命令,按照提示安装即可
bash <(curl -sL https://raw.githubusercontent.com/daveleung/hijkpw-scripts-mod/main/trojan-go_mod1.sh)
- trojan服务管理
trojan-go配置文件: /etc/trojan-go/config.json
启动服务:systemctl start trojan-go
停止服务:systemctl stop trojan-go
重启服务:systemctl restart trojan-go
服务状态:systemctl status trojan-go
- 如果配置文件中SSL证书路径不对,注意调整,或者软链指定路径
#软链指定路径后,注意修改配置文件中地址
ln -s /etc/letsencrypt/live/your-domain-name.com/fullchain.pem /etc/trojan-go/fullchain.pem
ln -s /etc/letsencrypt/live/your-domain-name.com/privkey.pem /etc/trojan-go/privkey.pem
采用docker安装代理服务
- 服务启动配置文件config.json如下:
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443, //trojan协议端口,如果被占用,可换成其他端口
"remote_addr": "nginx-service", //一般情况填写本机的地址,当请求不匹配trojan协议时,会自动向这里发送http请求,需要本地有这个http服务,此处为docker compose启动的nginx服务名
"remote_port": 80, //发送http请求的端口,可自定义
"log_level": 1, //日志级别,0: ALL; 1: INFO; 2: WARN; 3: ERROR; 4: FATAL; 5: OFF
"disable_http_check": true,
"udp_timeout": 60,
"password": [
"123456" //自定义密码,可以定义多个,英文逗号分隔
],
"ssl": {
"cert": "/etc/trojan-go/fullchain.pem", //自己申请SSL的证书
"key": "/etc/trojan-go/privkey.pem", //自己申请SSL的key
"sni": "your-domain-name.com", //自己申请SSL的域名
"alpn": [
"http/1.1"
],
"verify": true,
"verify_hostname": true,
"session_ticket": true,
"reuse_session": true,
"fallback_addr": "nginx-service",//服务端TLS握手失败时重定向的地址,可自定义、留空或同remote_addr一样,此处为docker compose启动的nginx服务名
"fallback_port": 80 //服务端TLS握手失败时重定向的端口,可自定义
},
"tcp": { //tcp选项
"no_delay": true,
"keep_alive": true,
"prefer_ipv4": false
},
"mux": { //mux多路复用选项
"enabled": true,
"concurrency": 8,
"idle_timeout": 60
}
}
- 采用docker部署,docker-compose.yml文件如下:
version: '3'
services:
trojan-go:
image: p4gefau1t/trojan-go
restart: always
networks:
- trojan-go-network
depends_on:
- nginx-service
ports:
- "6443:443" #注意443端口与config.json配置的trojan协议端口对应
volumes:
- ./config.json:/etc/trojan-go/config.json #注意docker-compose.yml与上文config.json文件在同一目录,或者自定义目录
- /etc/letsencrypt/live/test.example.org/fullchain.pem:/etc/trojan-go/fullchain.pem #注意替换自己的域名,与config.json配置的证书路径对应
- /etc/letsencrypt/live/test.example.org/privkey.pem:/etc/trojan-go/privkey.pem #注意替换自己的域名,与config.json配置的key路径对应
nginx-service:
image: nginx:1.19.0-alpine
restart: always
networks:
- trojan-go-network
networks:
trojan-go-network:
driver: bridge
- 在docker-compose.yml文件路径下执行命令docker-compose up -d启动即可,显示如下内容表示启动成功:
2026-03-15T22:44:56+00:00 [INFO] 2023/10/24 02:30:38 trojan-go v0.10.6 initializing
- 验证代理服务是否正常启动,浏览器访问如下地址是否正常,自行配置域名解析和端口安全放行
1)http://your-domain-name.com:6443 #TLS握手失败时,验证http://fallback_addr:fallback_port是否正常
2)https://your-domain-name.com:6443 #TLS握手成功时,验证http://remote_addr:remote_port是否正常工作
客户端配置
任何支持trojan协议的客户端均可使用
- windows平台客户端推荐Clash for Windows,*载下**地址: https://github.com/Fndroid/clash_for_windows_pkg/releases
- macOS平台客户端推荐ClashX,*载下**地址: https://github.com/yichengchen/clashX/releases
- Android和IOS平台请自行研究支持trojan协议的客户端即可。
- 以下是clash的配置文件clash-test.yaml示例,clash参考文档: https://lancellc.gitbook.io/clash/
mixed-port: 7890
# RESTful API for clash
external-controller: 127.0.0.1:9090
allow-lan: false
mode: rule
log-level: warning
proxies:
- name: TEST_TROJAN #trojan协议名称,可自定义
type: trojan
server: your-domain-name.com # 你自己的服务器域名
port: 6443 # 注意端口与代理服务对应
password: 123456 # trojan配置文件中的密码
udp: true
sni: your-domain-name.com # 你自己的服务器域名
proxy-groups:
- name: PROXY
type: select
proxies:
- TEST_TROJAN #与自定义的trojan协议名对应
- name: Final
type: select
proxies:
- DIRECT
- PROXY
rules:
# Local Area Network
- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
- IP-CIDR,172.16.0.0/12,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT
- IP-CIDR,100.64.0.0/10,DIRECT
# DNSPod Public DNS+
- IP-CIDR,119.28.28.28/32,DIRECT,no-resolve
# GeoIP
- GEOIP,CN,DIRECT
- MATCH,Final
- 导入clash配置文件,以ClashX为例,打开配置文件夹,将以上配置文件保存到该文件夹下,然后【重载配置文件】即可,路径:【配置】->【打开配置文件夹】,如下图所示:

clash导入配置文件示例
- 测试验证客户端是否配置成功,如下图所示进行【延迟测试】,如正确显示延迟则配置成功

clash延迟测试示例
总结
- Trojan代理服务是一种网络工具,可以提供安全、稳定和匿名的网络连接。
- 它主要使用Trojan协议,这是一种将网络流量加密并混淆的方法,请合理使用,以保证使用的安全和隐私。
相关文章
- SSL泛域名证书免费申请,永久续期,新手福音!
- ngrok-内网穿透神器,开发人员必备