Trojan-go

trojan多用户管理部署程序

功能

  • 在线web页面和命令行两种方式管理trojan多用户
  • 启动 / 停止 / 重启 trojan 服务端
  • 支持流量统计和流量限制
  • 命令行模式管理, 支持命令补全
  • 集成acme.sh证书申请
  • 生成客户端配置文件
  • 在线实时查看trojan日志
  • 在线trojan和trojan-go随时切换
  • 支持trojan://分享链接和二维码分享(二维码仅限web页面)
  • 限制用户使用期限

安装方式

trojan使用请提前准备好服务器可用的域名

a. 一键脚本安装

#安装/更新
source <(curl -sL https://git.io/trojan-install)

#卸载
source <(curl -sL https://git.io/trojan-install) --remove

安装完后输入’trojan’可进入管理程序 浏览器访问 https://域名 可在线web页面管理trojan用户 前端页面源码地址: trojan-web

b. docker运行

  1. 安装mysql

因为mariadb内存使用比mysql至少减少一半, 所以推荐使用mariadb数据库

docker run --name trojan-mariadb --restart=always -p 3306:3306 -v /home/mariadb:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=trojan -e MYSQL_ROOT_HOST=% -e MYSQL_DATABASE=trojan -d mariadb:10.2

端口和root密码以及持久化目录都可以改成其他的

  1. 安装trojan
docker run -it -d --name trojan --net=host --restart=always --privileged jrohy/trojan init

运行完后进入容器 docker exec -it trojan bash, 然后输入’trojan’即可进行初始化安装

启动web服务: systemctl start trojan-web

设置自启动: systemctl enable trojan-web

更新管理程序: source <(curl -sL https://git.io/trojan-install)

一直在更新的trojan

简介

完整介绍和配置教程,参见 Trojan-Go 文档

Trojan-Go 兼容原版 Trojan 的绝大多数功能,包括但不限于:

  • TLS 隧道传输
  • UDP 代理
  • 透明代理 (NAT 模式,iptables 设置参考这里)
  • 对抗 GFW 被动检测 / 主动检测的机制
  • MySQL 数据持久化方案
  • MySQL 用户权限认证
  • 用户流量统计和配额限制

同时,Trojan-Go 还扩展实现了更多高效易用的功能特性:

  • 便于快速部署的「简易模式」
  • Socks5 / HTTP 代理自动适配
  • 基于 TProxy 的透明代理(TCP / UDP)
  • 全平台支持,无特殊依赖
  • 基于多路复用(smux)降低延迟,提升并发性能
  • 自定义路由模块,可实现国内外分流 / 广告屏蔽等功能
  • Websocket 传输支持,以实现 CDN 流量中转(基于 WebSocket over TLS)和对抗 GFW 中间人攻击
  • TLS 指纹伪造,以对抗 GFW 针对 TLS Client Hello 的特征识别
  • 基于 gRPC 的 API 支持,以实现用户管理和速度限制等
  • 可插拔传输层,可将 TLS 替换为其他协议或明文传输,同时有完整的 Shadowsocks 混淆插件支持
  • 支持对用户更友好的 YAML 配置文件格式

手动安装

  1. 手动安装Trojan-go

apt install unzip

wget https://github.com/p4gefau1t/trojan-go/releases/download/v0.10.6/trojan-go-linux-amd64.zip

unzip trojan-go-linux-amd64.zip

cp trojan-go /usr/bin

chmod +x /usr/bin/trojan-go

  1. 配置文件设置

mkdir /etc/trojan-go

vi /etc/trojan-go/config.json

  1. 启动Trojan-GO查看连接状态

/usr/bin/trojan-go -config /etc/trojan-go/config.json

4.设置开机启动

cp /root/example/trojan-go.service /etc/systemd/system/

chown -R nobody:root /etc/trojan-go

systemctl start trojan-go

systemctl enable trojan-go

systemctl status trojan-go

完整配置文件

{
    "run_type": "server",
    "local_addr": "0.0.0.0",
    "local_port": 443,
    "remote_addr": "127.0.0.1",
    "remote_port": 80,
    "log_level": 2,
    "log_file": "",
    "password": [
             "密码"
    ],
    "buffer_size": 32,
    "dns": [],
    "ssl": {
        "verify": true,
        "verify_hostname": true,
        "cert": "/usr/ssl/证书123.crt",
        "key": "/usr/ssl/证书123.key",
        "key_password": "",
        "cipher": "",
        "cipher_tls13": "",
        "curves": "",
        "prefer_server_cipher": false,
        "sni": "网址",
        "alpn": [
            "http/1.1"
        ],
        "session_ticket": true,
        "reuse_session": true,
        "plain_http_response": "",
		"fallback_addr": "127.0.0.1",
        "fallback_port": 80,
        "fingerprint": "firefox",
        "serve_plain_text": false
    },
    "tcp": {
        "no_delay": true,
        "keep_alive": true,
        "reuse_port": false,
        "prefer_ipv4": false,
        "fast_open": false,
        "fast_open_qlen": 20
    },
    "mux": {
        "enabled": true,
        "concurrency": 8,
        "idle_timeout": 60
    },
    "router": {
        "enabled": false,
        "bypass": [],
        "proxy": [],
        "block": [],
        "default_policy": "proxy",
        "domain_strategy": "as_is",
        "geoip": "./geoip.dat",
        "geosite": "./geoip.dat"
    },
    "websocket": {
        "enabled": false,
        "path": "",
        "hostname": "127.0.0.1",
        "obfuscation_password": "",
        "double_tls": false,
        "ssl": {
            "verify": true,
            "verify_hostname": true,
            "cert": "/usr/ssl/证书123.crt",
            "key": "/usr/ssl/证书123.key",
            "key_password": "",
            "prefer_server_cipher": false,
            "sni": "",
            "session_ticket": true,
            "reuse_session": true,
            "plain_http_response": ""
        }
    },
    "forward_proxy": {
        "enabled": false,
        "proxy_addr": "",
        "proxy_port": 0,
        "username": "",
        "password": ""
    },
    "api": {
        "enabled": false,
        "api_addr": "",
        "api_port": 0
    }
}

Trojan + NGINX 多網站共存

Trojan 共用 443 端口方案