字
字节笔记本
2026年2月22日
EasyTrojan:一行命令搭建 Trojan 代理服务器
本文介绍 EasyTrojan,一个极简的 Trojan 代理服务器一键部署脚本。该项目由 eastmaple 开发维护,在 GitHub 上已获得 1.2k stars。EasyTrojan 的最大特点是无需购买域名和配置证书,仅需一行命令即可快速搭建代理服务器。
项目简介
EasyTrojan 是一款面向个人用户和主机商家的 Trojan 部署解决方案。它通过自动化脚本简化了传统 Trojan 部署中繁琐的配置流程,自动提供免费的域名解析和 SSL 证书服务,让用户能够快速搭建可用的代理服务器。
该项目主要解决以下问题:
- 个人用户与主机商家面临的连接阻断问题
- 降低大量 IP 被阻断造成的后续影响
- 简化 Trojan 部署的技术门槛
核心特性
- 一键部署:仅需一行命令即可完成服务器搭建
- 免费域名:自动通过 nip.io 提供域名解析服务,无需购买域名
- 自动证书:集成 Caddy HTTPS 模块,自动申请 Let's Encrypt 或 ZeroSSL 免费证书
- 多系统支持:兼容 RHEL 7/8/9 (CentOS、RedHat、AlmaLinux、RockyLinux)、Debian 9/10/11/12、Ubuntu 16/18/20/22
- 服务伪装:非正确密码访问返回 503 状态码,伪装成过载的 Web 服务
- 密码管理:支持多密码创建、删除、流量查询等管理功能
技术栈
- Shell 脚本:核心部署逻辑
- Caddy:Web 服务器与 HTTPS 证书自动管理
- Trojan:代理协议实现
- nip.io:免费域名解析服务
安装指南
前置要求
- 必须使用 root 用户部署
- 服务器需开放 TCP 80 和 443 端口
- 支持的操作系统:RHEL/CentOS/Debian/Ubuntu 系列
首次安装
执行以下命令,将 password 替换为你自己的密码:
bash
curl https://raw.githubusercontent.com/eastmaple/easytrojan/main/easytrojan.sh -o easytrojan.sh && chmod +x easytrojan.sh && bash easytrojan.sh password安装成功后会返回 Trojan 的连接参数。
防火墙配置
RHEL 7/8/9 系列:
bash
firewall-cmd --permanent --add-port=80/tcp --add-port=443/tcp && firewall-cmd --reload && iptables -FDebian/Ubuntu 系列:
bash
sudo ufw allow proto tcp from any to any port 80,443 && sudo iptables -F验证端口放行
通过浏览器访问脚本提供的免费域名(如 1.3.5.7.nip.io),如果自动跳转至 HTTPS 并显示 "Service Unavailable",说明端口已正确放行。
密码管理
下载密码管理脚本:
bash
curl https://raw.githubusercontent.com/eastmaple/easytrojan/main/mytrojan.sh -o mytrojan.sh && chmod +x mytrojan.sh常用命令:
bash
# 创建密码
bash mytrojan.sh add password
# 创建多个密码
bash mytrojan.sh add password1 password2
# 删除密码
bash mytrojan.sh del password
# 查询流量
bash mytrojan.sh status password1
# 流量归零
bash mytrojan.sh rotate
# 查看密码列表
bash mytrojan.sh list使用示例
连接参数示例
假设服务器 IP 为 1.3.5.7,密码为 123456:
| 参数 | 值 |
|---|---|
| 地址 | 1.3.5.7.nip.io |
| 端口 | 443 |
| 密码 | 123456 |
| ALPN | h2/http1.1 |
客户端配置
Windows - V2rayN:
- 下载地址:https://github.com/2dust/v2rayN/releases
- 配置时填入上述连接参数即可
macOS - V2rayU:
- 下载地址:https://github.com/yanue/V2rayU/releases
- 支持 Intel 和 Apple Silicon 架构
Android - V2rayNG:
iOS - Shadowrocket:
- App Store 下载(需海外账号)
Xray 配置示例
json
{
"outbounds": [
{
"protocol": "trojan",
"settings": {
"servers": [
{
"address": "1.3.5.7",
"port": 443,
"password": "123456"
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"allowInsecure": false,
"serverName": "1.3.5.7.nip.io",
"fingerprint": "chrome",
"alpn": "h2,http/1.1"
}
}
}
]
}高级配置
指定自定义域名
如果免费域名被阻断,可以指定自己的域名:
bash
systemctl stop caddy.service && curl https://raw.githubusercontent.com/eastmaple/easytrojan/main/easytrojan.sh -o easytrojan.sh && chmod +x easytrojan.sh && bash easytrojan.sh password yourdomain.com更换端口
当 443 端口被阻断时,可临时更换端口(如 8443):
bash
sed -i "s/443/8443/g" /etc/caddy/Caddyfile && systemctl restart caddy.service注意:更换端口后需要开启对应端口的防火墙规则。
重新安装
bash
systemctl stop caddy.service && curl https://raw.githubusercontent.com/eastmaple/easytrojan/main/easytrojan.sh -o easytrojan.sh && chmod +x easytrojan.sh && bash easytrojan.sh password完全卸载
bash
systemctl stop caddy.service && systemctl disable caddy.service && rm -rf /etc/caddy /usr/local/bin/caddy /etc/systemd/system/caddy.service注意事项
- 必须使用 root 用户部署
- 请勿修改配置文件参数,以免导致服务异常
- 免费域名通过 nip.io 提供,格式为
ServerIP.nip.io - 证书申请失败时,尝试关闭防火墙后重新安装
- 客户端 TLS 指纹是端口被封的重要原因,建议使用支持 uTLS 的客户端
项目链接
- GitHub 仓库:https://github.com/eastmaple/easytrojan
- 项目作者:eastmaple
- 许可证:仅限研究用途,用户应根据所在管辖区的当地法律评估法规遵从义务
免责声明
该项目仅限研究用途,用户应根据所在管辖区的当地法律评估自己的法规遵从义务。技术原理不做解释,初衷只为解决个人用户与主机商家被阻断连接的问题。
分享: