保姆级教程:手把手教你自建独享海外 Trojan 节点

我们将以建立一个菲律宾节点为例,介绍具体的自建流程。本教程采用目前最稳健的 Trojan 协议,该协议通过模仿常见的 HTTPS 网页流量,能有效欺骗防火墙,从而实现稳定的网络连接。

购买并初始化 VPS 服务器

选择服务商

首先我们需要购买一台目标国家的VPS服务器,通过多方比价和查询,我选择了Lightnode,一家总部位于香港,业务遍布全球,支持海内外多种支付方式的服务商。尽量不要选择大陆服务商(如阿里云、腾讯云),即使他们也有很多海外节点。

部署实例

登录后我们进入控制台,在左侧菜单选择产品->实例开始部署新的实例。

类型:作为节点使用,不需要很高的性能,选择CPU共享型即可

地区:按需选择节点的位置,在这个教程中我们选择了菲律宾·马尼拉

操作系统:选择基于Linux的系统,资源占用少,系统纯洁。我根据自己的喜好选择了Debian 12

其他配置:其他配置选择最低配置即可

密码:设置 SSH 的 root 密码并妥善保存

安全组(防火墙): 选择默认配置,务必确保80和443端口已开放,这是Trojan工作的核心端口。

提交订单并付费,LightNode支持支付宝付款,但与信用卡不同,支付宝需要先充值然后消耗余额支付。

等待若干分钟,让服务器完成配置,待实例变为运行中状态后,进入管理页面,复制系统给服务器分配的公网IP地址备用。

购买域名并配置 DNS 解析

Trojan 协议的工作原理是伪装成一个 HTTPS 网站,因此必须拥有一个域名并申请 SSL 证书。

选择域名注册商

推荐使用 Gname 等海外注册商,操作简单并支持支付宝支付。

输入一个前缀查询可用域名,按价格排序,选择便宜的后缀(如.top.xyz)即可。为了下文叙述方便,我们假设你注册域名为yourdomain.com

配置域名解析

进入域名的 DNS 管理页面,我们需要将域名指向 VPS 的 IP 地址。

点击“添加记录”,通常建议添加以下两条记录:

主机记录

记录类型

记录值

@

A

你的VPS的IP

www

A

你的VPS的IP

域名解析生效时间不等,短则十几分钟,长则十几小时。请使用https://whatsmydns.me/zh 等工具查询,必须等待解析完全生效后再进行下一步操作。

在 VPS 上安装 Trojan 服务端

解析生效后,我们通过 SSH 管理软件(如 FinalShell、PuTTY 或 Termius)连接到 VPS 开始部署 Trojan 服务。添加一个新的连接,主机填写所购VPS的IP,用户名填写root下方的密码填写购买实例时配置的密码。如果链接有问题,试试点选下方的智能加速选项。

手动安装的模块包含以下几个部分:

Nginx:搭建一个普通的网站(作为伪装)。

Certbot:为这个网站申请 HTTPS 证书。

Trojan:安装 Trojan 服务端,接管 443 端口。实现Trojan 流量 -> 代理连接。普通流量 -> 转发给本地的 Nginx(看起来就像访问了一个普通网站)。

搭建伪装 Web 服务器 (Nginx)

Trojan 需要一个“掩体”。当有非授权流量(如爬虫或防火墙探测)访问 443 端口时,Trojan 会把请求转给 Nginx,对方只能看到一个普通的网页。

apt update
apt install nginx -y

我们测试一下Nginx,在浏览器访问你的域名http://yourdomain.com,如果看到 "Welcome to nginx!" 页面,说明 Nginx 运行正常。

申请 SSL 证书 (Certbot)

Trojan 必须使用 SSL 证书。我们使用官方推荐的 certbot 向 Let's Encrypt 申请免费证书。注意这里我们使用 certonly 模式,只获取证书文件,而不让 Certbot 自动修改 Nginx 配置文件去占用 443 端口(因为 443 端口要留给 Trojan 用)。

# 安装 Certbot 及其 Nginx 插件
apt install certbot python3-certbot-nginx -y

# 申请证书
certbot certonly --nginx -d yourdomain.com #将yourdomain.com替换为你申请的真实域名

程序会询问你的邮箱,填一个真的或假的都行,并让你同意协议,输入“Y”同意即可。

如果成功,你会看到 Congratulations!,并告知证书保存在 /etc/letsencrypt/live/yourdomain.com/ 目录下。

记下证书路径(稍后配置要用):

证书公钥:/etc/letsencrypt/live/yourdomain.com/fullchain.pem

私钥:/etc/letsencrypt/live/yourdomain.com/privkey.pem

安装 Trojan 服务端

Debian 12 的软件源里其实包含了 trojan,但为了版本可控和路径清晰,我们从 GitHub 下载官方二进制文件安装。

# 下载最新版 Trojan (v1.16.0)
wget https://github.com/trojan-gfw/trojan/releases/download/v1.16.0/trojan-1.16.0-linux-amd64.tar.xz

# 解压
tar -xvf trojan-1.16.0-linux-amd64.tar.xz

# 将二进制文件移动到系统路径
cp trojan/trojan/usr/local/bin/

# 创建配置文件夹
mkdir -p /etc/trojan

配置 Trojan

这是最关键的一步。我们需要创建一个配置文件,告诉 Trojan 监听 443 端口,使用刚才申请的证书,并将无法通过密码验证的流量转发给本地 Nginx (127.0.0.1:80)。

创建配置文件

# 使用 nano 编辑器创建文件
nano /etc/trojan/config.json

粘贴并修改配置内容
复制以下内容,务必修改 passwordssl -> cert 和 ssl -> key 三处。

{
    "run_type": "server",
    "local_addr": "0.0.0.0",
    "local_port": 443,
    "remote_addr": "127.0.0.1",
    "remote_port": 80,
    "password": [
        "这里填写你自己设定的复杂密码" # 这里的密码要改
    ],
    "log_level": 1,
    "ssl": {
        "cert": "/etc/letsencrypt/live/yourdomain.com/fullchain.pem", # 这里的路径要修改
        "key": "/etc/letsencrypt/live/yourdomain.com/privkey.pem", # 这里的路径要修改
        "key_password": "",
        "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384",
        "cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384",
        "prefer_server_cipher": true,
        "alpn": [
            "http/1.1"
        ],
        "reuse_session": true,
        "session_ticket": false,
        "session_timeout": 600,
        "plain_http_response": "",
        "curves": "",
        "dhparam": ""
    },
    "tcp": {
        "prefer_ipv4": false,
        "no_delay": true,
        "keep_alive": true,
        "reuse_port": false,
        "fast_open": false,
        "fast_open_qlen": 20
    },
    "mysql": {
        "enabled": false
    }
}

⚠️修改说明:

password这里填写你自己设定的复杂密码替换为您的自定义密码。

ssl -> cert: 将路径中的 yourdomain.com替换为您的真实域名。

ssl -> key: 将路径中的 yourdomain.com 替换为您的真实域名。

完成后,按 Ctrl + O 保存,Enter 确认,Ctrl + X 退出。

创建 Systemd 服务

将 Trojan 注册为系统服务,以便管理和保证服务器重启后自动启动。

创建服务文件

nano /etc/systemd/system/trojan.service

粘贴以下内容

[Unit]
Description=trojan
Documentation=https://github.com/trojan-gfw/trojan
After=network.target network-online.target nss-lookup.target mysql.service mariadb.service mysqld.service

[Service]
Type=simple
StandardError=journal
ExecStart=/usr/local/bin/trojan -c /etc/trojan/config.json
ExecReload=/bin/kill -HUP $MAINPID
LimitNOFILE=51200
Restart=on-failure
RestartSec=1s

[Install]
WantedBy=multi-user.target

保存并退出(Ctrl+O, Enter, Ctrl+X)。

启动服务并检查状态

# 重载系统服务配置
systemctl daemon-reload

# 启动 Trojan
systemctl start trojan

# 设置开机自启
systemctl enable trojan

# 检查服务状态
systemctl status trojan

如果看到绿色的 Active: active (running),恭喜您,Trojan 服务端已成功配置!此时,你可以在浏览器访问 https://yourdomain.com(注意是 https),如果能看到 Nginx 的欢迎页面(且有一把小锁图标),说明伪装成功。

性能优化(可选)

开启 BBR 拥塞控制算法

BBR 是 Google 开发的 TCP 拥塞控制算法,能显著提高网络在高丢包环境下的吞吐量,对节点速度提升巨大。Debian 12 内核默认已支持 BBR,只需开启即可。

执行以下命令修改系统配置:

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

使配置生效:

sysctl -p

验证是否开启成功:

lsmod | grep bbr

如果输出中包含 tcp_bbr,说明 BBR 已成功开启。

现在服务端(VPS服务器)已经配置完毕,如何在客户端(电脑、手机)配置呢,请移步这两篇篇文章:如何搭建纯净的独立IP环境:v2ray + AdsPower配置全解