Trojan 代理服务器搭建:证书、认证拒绝与恢复验证

Trojan 代理服务器搭建:证书、认证拒绝与恢复验证

Ryan Foster
2026年10月11日· 8 分钟阅读

本篇 Trojan 代理服务器搭建采用 Xray-core v26.3.27、你控制的域名和有效 TLS 证书。先建立受限测试入口,再分别验证代理转发、TLS 可用性、错误凭据、撤销和恢复;作者未完成端到端部署实验。

关键要点

  • 无合法域名、匹配证书或独立管理通道就停止。
  • 固定一种实现,不把 Trojan-gfw 或 Trojan-rs 命令混入 Xray。
  • 保持证书校验,本地 SOCKS 只监听回环地址。
  • 回落网站有响应不代表代理认证成功。
  • 续期、重启、凭据撤销和回退需要分别验收。

这条 Trojan 代理服务器搭建路线适合谁?

预留服务器前,先读自建网络责任指南。参考环境是专用且未使用的 Ubuntu 24.04 LTS 主机,独立授权客户端运行同一 Xray 版本。示例只转发明确配置的 TCP 应用,不证明全设备 DNS、IPv6、UDP 或 TUN 覆盖。

Trojan 协议说明另讲机制。协议将密码派生的认证值及请求放在 TLS 内。[1]固定版本支持以下字段,但对 Trojan 发出弃用警告;固定版本用于说明示例,不代表可以忽略维护或未来移除。[3]需求或客户端支持不同,可先比较 VLESS/REALITY 与 Trojan 的取舍。

文档匹配不能称作实测兼容。本例客户端是同版本官方 Xray core,避免猜测第三方应用导入格式。换客户端前核对其官方协议、传输、TLS 名称和认证字段,再自行完成验收。

步骤 1:确认域名、证书及恢复边界

使用自有或明确获授权运营的域名,经既有获准 DNS 流程指向服务器。通过授权签发机构或 ACME 流程取得该名称的有效证书。签发方式随服务商而变,是部署前提,不能借用第三方网站身份或内容。

开放监听前检查 Trojan TLS 证书链、有效期、私钥配对和续期负责人。域名或证书缺失、过期或不匹配就停止,不能用 insecure、跳过校验、网上共享秘密或无关名称证书补救。

盘点监听、服务、安装路径、防火墙管理器和恢复控制台。预留服务器 TCP 18443 与客户端回环 TCP 10808。高端口避免特权端口需求,但仍要审查运行 capabilities。Xray、安装路径、服务身份或端口已属于其他任务时,停止全新安装路线,另行审查迁移。

维护期间保留独立管理。服务商及主机初始入站只允许授权测试客户端地址。无限制出站能访问宿主可达目标,因此使用没有敏感内部路由的隔离主机,或先部署经审查的目标访问策略;认证本身不限制目的地。

步骤 2:安装经审查核心并建立最小认证

官方 tag 为 v26.3.27。[5]先把官方安装脚本下载为文件,审查下载、文件写入、服务和用户变更及移除行为,记录上游修订。安装脚本独立于核心 tag 滚动更新;shell 语法通过不代表可信。[6]

以下是专用主机上的读者操作,不是作者已执行结果。审查脚本、确认路径和身份未占用后,才进行特权安装:

curl --fail --location --proto '=https' --proto-redir '=https' \
  --output install-release.sh \
  https://raw.githubusercontent.com/XTLS/Xray-install/main/install-release.sh
less install-release.sh
bash -n install-release.sh
sudo adduser --system --group --no-create-home xray-lab
sudo bash install-release.sh install --version v26.3.27 --install-user xray-lab
sudo systemctl disable --now xray.service
sudo systemctl is-enabled xray.service
/usr/local/bin/xray version
sudo systemctl cat xray.service

全新安装会启动并启用服务。disable --now 停止且取消开机启用,检查应显示 disabled。从实际单元确认 /usr/local/bin/xray、/usr/local/etc/xray/config.json 和运行用户 xray-lab。路径异常、root 运行或版本不同都是停止条件,不能凭默认值继续。

私密终端生成唯一高熵临时密码,例如 openssl rand -hex 32。只存受保护配置,不放 shell 参数、截图或工单。以后每设备单独凭据,便于撤销。此 tag 入站为 clients[].password,不能混入 VLESS UUID、Vision flow 或 REALITY 密钥。[3]

步骤 3:配置监听与匹配本地客户端

替换服务端 JSON 全部大写占位符。SERVER_LISTEN_IPV4 必须实际分配在本机,服务商 NAT 公网地址未必可绑定。把证书链和私钥放在所列私有路径,允许 xray-lab 读取,目录 root:xray-lab、750,文件 640。不要全局放宽签发工具目录,应由续期负责人部署专用受保护副本。

{
  "log": {"access": "none", "loglevel": "warning"},
  "inbounds": [{
    "tag": "trojan-lab", "listen": "SERVER_LISTEN_IPV4", "port": 18443,
    "protocol": "trojan",
    "settings": {"clients": [{"password": "DISPOSABLE_PASSWORD", "email": "lab-device"}]},
    "streamSettings": {
      "network": "raw", "security": "tls",
      "tlsSettings": {"certificates": [{
        "certificateFile": "/usr/local/etc/xray/tls/fullchain.pem",
        "keyFile": "/usr/local/etc/xray/tls/privkey.pem"
      }]}
    }
  }],
  "outbounds": [{"protocol": "freedom", "tag": "direct"}]
}

配置文件同样设 root:xray-lab、640,目录 750。用 sudo -u xray-lab /usr/local/bin/xray run -test -config /usr/local/etc/xray/config.json 校验,再只启动专用 xray.service 并检查 ss -lntp。语法通过不证明监听、认证或转发;只开放经审查 TCP 入站规则,保留管理策略。

入站文档说明 Trojan 与可选回落行为。[2]本最小示例没有回落。固定传输解析器支持 raw、TLS 证书路径及客户端 serverName。[4]不要混入其他实现字段,也不要为压下错误关闭信任校验。

独立授权客户端保存以下私有 client.json,替换端点域名和相同密码。PROXY_DOMAIN 必须匹配证书。回环 SOCKS 仅 TCP;共享机其他本地用户可能访问无认证回环入口,因此用隔离客户端或经审查的本地访问控制。[8]

{
  "log": {"access": "none", "loglevel": "warning"},
  "inbounds": [{
    "listen": "127.0.0.1", "port": 10808, "protocol": "socks",
    "settings": {"auth": "noauth", "udp": false}
  }],
  "outbounds": [{
    "protocol": "trojan",
    "settings": {"address": "PROXY_DOMAIN", "port": 18443, "password": "DISPOSABLE_PASSWORD"},
    "streamSettings": {
      "network": "raw", "security": "tls",
      "tlsSettings": {"serverName": "PROXY_DOMAIN"}
    }
  }]
}

client.json 仅所有者可读写,权限 600;确认 xray version,执行 xray run -test -config client.json,再在私密前台终端运行 xray run -config client.json。其他网络客户端保持原样。10808 已占用时不能终止其负责人,应在本次配置与请求中一致改为空闲端口。

步骤 4:分别验证 TLS、正确凭据与拒绝

授权客户端替换真实域名做证书检查。OpenSSL 文档支持主机名校验及遇校验错误返回失败。[7]这里只建立 TLS 证据,不是 Trojan 认证:

openssl s_client -connect PROXY_DOMAIN:18443 -servername PROXY_DOMAIN \
  -verify_hostname PROXY_DOMAIN -verify_return_error </dev/null

检查证书链、名称、日期与验证结果。信任或名称失败就停止,修复授权证书部署,不使用免校验选项。代理转发验证时,把下列授权任务主机及路径换成自有或允许访问目标,关联目标自己的请求证据:

curl --fail --socks5-hostname 127.0.0.1:10808 https://AUTHORIZED_TASK_HOST/task

--socks5-hostname 请求 SOCKS 侧解析目标名称,不改变全设备 DNS。[9]有意验证互联网出口时,通过明确配置的测试应用检查可见出口地址,另查 DNS、IPv6 和失败策略。TCP 示例不能证明全设备接管。

检查读者方法预期现象,不是实测结果
正确身份匹配密码、有效 TLS 下发起新请求授权任务经预定代理到达目标
错误密码仅改临时客户端密码,重启此前台客户端再请求不得认证转发该任务
错误证书名称恢复密码,仅将客户端 serverName 改为无关名称,重启测试客户端并发起新请求TLS 校验拒绝,不转发任务
恢复基线恢复正确名称、密码并重启测试客户端原许可任务再次可用
另配回落时独立检查自有回落响应及代理任务证据网站可用不能计为代理登录

每次修改客户端配置后,只停止本次测试启动的前台 Xray 进程,用 xray run -test -config client.json 校验,再用 xray run -config client.json 重新启动并发起新任务请求。编辑文件不会让运行进程重新载入配置。[10]错误名称案例要从私有客户端输出确认证书名称校验错误;仅有超时或认证失败,不能据此得出结论。

错误名称无需联系该域名:端点保持不变,只改 TLS 验证身份。负面案例仍转发时,关闭本次新增暴露,检查活动配置和客户端接管后再继续。不得通过接受无效证书“修复”失败案例。

步骤 5:续期、重启、撤销与恢复

指定续期负责人,记录到期监控及获准续期演练。签发成功后以相同受限权限部署匹配链与私钥,由服务身份校验,再通过专用单元应用。客户端独立检查实际提供的证书并复测新授权任务;磁盘文件已续期不证明在线服务已使用。

正负案例通过后才启用开机启动,核对启用状态,并在获准重启窗口检查版本、路径、身份、监听和新转发。没有重启授权就保留启动持久性未经验证;理解本文不需要实际重启。

撤销设备时,从持久服务端配置移除其密码项,校验,在获准中断窗口重启专用实例。重启会终止此实例所有会话,不只被移除设备。旧密码新连接必须不能转发。后续测试生成新临时密码,同时确认新密码接受、旧密码拒绝。删客户端文件或订阅不等于服务端撤销。

续期、重启或配置变更失败时,只关闭新增入站暴露,还原上一组兼容二进制、配置及仍有效证书私钥。不能从备份恢复泄露密码或已撤销私钥。独立确认原管理路径和原服务,再做尝试;没有有效证书则保持代理不可用,先修复信任。

决定谁持续维护证书与服务时,比较VPS 运维与托管 VPN 服务,不暗示托管应用可导入 Trojan 或管理此服务器。有限失败证据用Xray 服务端日志处理,结束后恢复临时日志设置。

一次性部署实验结束后,撤销测试凭据,只停止并禁用其单元,移除所属入站规则及初始盘点允许的资源。使用保留安装脚本移除前先审查其行为;共享路径即停止条件。独立确认实验前服务和管理,不能把停止命令当作清理成功。

总结

  • 先有合法域名、有效 TLS 和独立管理。
  • 固定经审查 Xray 实现,秘密留在私有配置。
  • TLS、授权转发和负面案例分别验收。
  • 在运行服务及新连接上确认续期和撤销。
  • 仅恢复兼容可信状态,验证自有测试资源移除。

常见问题

没有授权域名和证书能部署吗?

不能按本路线部署。开放前先有合法域名和有效匹配证书。无关网站名、insecure 选项和公开共享凭据都不满足前提,应停止并另选受支持方案。

能把 Trojan-rs 教程和此 JSON 混用吗?

不能。本例两端固定 Xray-core v26.3.27,路径、字段和服务行为属于该实现。其他客户端官方文档先匹配协议及 TLS 要求,再另做兼容测试。

看见回落网站证明代理正常吗?

不能。TLS 或网页响应可独立于代理认证存在。需要明确客户端请求和授权目标证据。本最小服务端没有回落;添加回落会新增一条需另审的路径。

错误密码应出现什么结果?

新请求不得经代理转发授权任务。只改临时密码、重启测试客户端,区分拒绝与回落响应;仍转发就停止暴露并检查活动状态,再继续。

可以关闭证书检查来诊断吗?

不可以。保持验证,检查名称、链、日期、密钥配对和实际提供证书。证书错误是停止条件,错误名称测试用于证明拒绝,不是绕过理由。

删除订阅会撤销服务端密码吗?

不会。移除服务端客户端条目、校验,了解全会话中断后重启专用实例,再用旧身份新连接复测。回退备份不能带回泄露凭据。

续期后没有有效证书怎么办?

保持代理不可用,通过授权签发流程修复信任。旧证书私钥只在仍有效且未泄露时才能恢复。重新检查运行服务证书和新转发,磁盘有文件并不足够。

免责声明: 本文是基于文档的操作流程,不是作者实测部署或兼容保证。仅操作授权资源及目标,遵守法律和服务商条款;域名归属、证书信任、范围或恢复无法确认时停止。

来源:

  1. The Trojan Protocol https://trojan-gfw.github.io/trojan/protocol.html
  2. Trojan — Xray inbound configuration https://xtls.github.io/en/config/inbounds/trojan.html
  3. Xray-core v26.3.27 Trojan configuration implementation https://github.com/XTLS/Xray-core/blob/v26.3.27/infra/conf/trojan.go
  4. Xray-core v26.3.27 TLS configuration implementation https://github.com/XTLS/Xray-core/blob/v26.3.27/infra/conf/transport_internet.go
  5. Xray-core v26.3.27 release https://github.com/XTLS/Xray-core/releases/tag/v26.3.27
  6. Xray-install — official installer https://github.com/XTLS/Xray-install
  7. openssl-s_client — OpenSSL 3.0 documentation https://docs.openssl.org/3.0/man1/openssl-s_client/
  8. SOCKS — Xray inbound configuration https://xtls.github.io/en/config/inbounds/socks.html
  9. curl — command-line manual https://curl.se/docs/manpage.html
  10. Xray-core v26.3.27 startup and configuration loading https://github.com/XTLS/Xray-core/blob/v26.3.27/main/run.go

Sources checked 2026 年 10 月 11 日。

开启 3 天免费试用

注册即可免费体验全部高级功能。

*仅限新用户;每位用户只能获得一次试用。

Trojan 代理服务器搭建:证书、认证拒绝与恢复验证 | AethoVPN