我们将以建立一个菲律宾节点为例,介绍具体的自建流程。本教程采用目前最稳健的 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 地址。

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

域名解析生效时间不等,短则十几分钟,长则十几小时。请使用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粘贴并修改配置内容
复制以下内容,务必修改 password、ssl -> 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配置全解