Trojan是基于HTTPS通信的网络通信协议,它的设计很简单,只使用 TLS 做为可信通道,其他加密一概没有,在不增加附加功能的前提下,实现稳定的核心通信功能。
搭建之前需要知道Trojan直接对接流量入口,这会导致 443 端口占用的问题,如果你的VPS还用作网站运行用途,如果想让
trojan和网站共存,本教程是无法满足的。
个人试用体验:同一个VPS(racknerd)搭建trojan和v2ray,v2ray一直正常,但是使用trojan就有时会出现IP被封的情形,只是个人经历,可能是我环境的原因。
其他教程:
- 新搭建教程:2022最新版本xray搭建:通过SNI实现vless和vmess协议共存及443端口复用搭建网站;
- 新搭建教程:2022最新版本v2ray搭建过程图文教程(vmess+tls+websocket);
正文开始之前,先插播个广告,推荐一些性价比较高的VPS,有购买VPS打算的,可以使用我的推介链接,这样你不仅可以优惠购买,我也会得到一定的返券,感谢你对我写文创作的支持!没有购买VPS打算的,可以跳过这一部分。
一、搬瓦工VPS推荐
搬瓦工优惠券: BWH3HYATVBJW
,此券为全网当前最高优惠力度:6.58%。
线路 | CPU | 内存 | 硬盘 | 带宽 | 流量 | 价格 | 购买链接 |
---|---|---|---|---|---|---|---|
CN2 GIA(特别推荐) | 2x Intel Xeon | 1 GB | 20 GB SSD | 2.5 Gbps | 1000GB/月 | $49.99/季度或 $169.99/年 | 购买 |
CN2 GIA(特别推荐) | 3x Intel Xeon | 2 GB | 40 G SSD | 2.5 Gbps | 2000GB/月 | $299.99/年 | 购买 |
CN2 GIA(推荐) | 4x Intel Xeon | 4 GB | 80 GB SSD | 2.5 Gbps | 3000GB/月 | $549.99/年 | 购买 |
CN2(推荐) | 1x Intel Xeon | 1024 MB | 20 GB SSD | 1 Gbps | 1 TB/月 | $49.99/年 | 购买 |
CN2(推荐) | 1x Intel Xeon | 2048 MB | 40 GB SSD | 1 Gbps | 2 TB/月 | $99.99 美元/年 | 购买 |
常规 | 2x Intel Xeon | 1024 MB | 20 GB SSD | 1 Gbps | 1 TB/月 | $49.99/年 | 购买 |
促销 | 4x Intel Xeon | 4 GB | 80 GB SSD | 1 Gbps | 3 TB/月 | $19.99/月或$199.99/年 | 购买 |
促销 | 3x Intel Xeon | 2 GB | 40 GB SSD | 1 Gbps | 2 TB/月 | $99.99/年 | 购买 |
二、Rackerd VPS推荐
- racknerdVPS,$43.39/年,4GB内存,10T流量/月
-
新手套餐:racknerd 512M 内存,10 GB SSD快速硬盘,1000 GB月流量,1Gbps 带宽,$9.89/年(续费同价)
Racknerd速度测试及更换IP地址?参考:Racknerd速度测试及免费更换IP地址。
三.环境信息
- 系统:Debian GNU/Linux 10
- 这里使用的root用户
- trojan版本:1.16.0,地址:https://github.com/trojan-gfw/trojan/releases/download/v1.16.0/trojan-1.16.0-linux-amd64.tar.xz ;
下面开始搭建细节。
四.开始搭建
下面我搭建过程中涉及的域名your-domain.com
,请在实际执行过程中,换成你自己的域名。
4.1 连接VPS
这篇文章里有使用xshell远程连接VPS的细节。
4.2 更新VPS环境
apt update
五、安装nginx并申请证书
5.1 执行安装
apt install -y nginx
5.2 新建网页目录
这里在假设是/root/www
。
mkdir -p /root/www
5.3 新建首页
在/root/www
目录下新建一个index.html
文件,
vi /root/www/index.html
内容如下:
<html>
<title>欢迎访问四个空格</title>
<head><meta charset="UTF-8"></head>
<body>
<a href="https://www.yomige.org/install-v2ray-on-debian-2021/">四个空格</a>
</body>
</html>
5.4 新建/修改NGINX配置文件
注: 不同版本的nginx配置文件可能有区别,我的是nginx/1.18.0
,配置文件/etc/nginx/sites-enabled/default
。或者你的配置文件可能在/etc/nginx/conf.d/default.conf
。
输入vi /etc/nginx/sites-enabled/default
命令,编辑nginx配置文件为如下内容:
server{
listen 80;
server_name your-domain.com;
index index.html;
root /root/www/;
}
这里你可能需要将
/etc/nginx/nginx.conf
中第一行user www-data
改为user root
,即当前用户。
5.5 启动nginx服务
依次执行下面命令,启动服务:
#启动Nginx并设置为开机自启命令
systemctl start nginx;systemctl enable nginx
#查看nginx启动状态命令
systemctl status nginx
在浏览器里访问your-domain.com
,如果正常则说明nginx配置没问题,这是是没有加密的,不带HTTPS的网址:http://www.your-domain.com
。
5.6 安装certbot并申请ssl证书
详细的申请证书流程参考: certbot instructions – Nginx on Debian 10 (buster)。具体如下:
安装snapd
apt install -y snapd
确保snapd为最新版本
snap install core; snap refresh core
安装certbot
snap install --classic certbot
创建软链
ln -s /snap/bin/certbot /usr/bin/certbot
申请证书
运行certbot --nginx
开始申请证书,申请时,选择为多个域名申请证书时,各域名对应数字用英文逗号或空格分隔,如下:
如上图,执行过程中出现Successfully received certificate
表示获取证书成功,并显示了证书的保存路径。
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/your-domain.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/your-domain.com/privkey.pem
This certificate expires on 2022-07-20.
六、安装trojan
6.1 下载trojan安装包
下载
wget https://github.com/trojan-gfw/trojan/releases/download/v1.16.0/trojan-1.16.0-linux-amd64.tar.xz
解压
tar xf trojan-1.*
# 我解压在的路径是/root/trojan,解压完毕后,文件夹里的内容如下
root@debian-trojan:~/trojan# pwd
/root/trojan
root@debian-trojan:~/trojan# ls -al
total 4088
drwxr-xr-x 3 1001 116 4096 Jun 10 2020 .
drwx------ 4 root root 4096 Apr 27 23:48 ..
-rw-r--r-- 1 1001 116 2355 Jun 10 2020 CONTRIBUTORS.md
-rw-r--r-- 1 1001 116 35845 Jun 10 2020 LICENSE
-rw-r--r-- 1 1001 116 1224 Jun 10 2020 README.md
-rw-r--r-- 1 1001 116 1474 Jun 10 2020 config.json
drwxr-xr-x 2 1001 116 4096 Jun 10 2020 examples
-rwxr-xr-x 1 1001 116 4121104 Jun 10 2020 trojan
6.2 修改配置文件
编辑文件
vi /root/trojan/server.conf
内容如下
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "127.0.0.1",
"remote_port": 80,
"password": [
"iiskdsksdksdpassword"
],
"log_level": 1,
"ssl": {
"cert": "/etc/letsencrypt/live/your-domain.com/fullchain.pem",
"key": "/etc/letsencrypt/live/your-domain.com/privkey.pem",
"key_password": "",
"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": {
"no_delay": true,
"keep_alive": true,
"fast_open": false,
"fast_open_qlen": 20
},
"mysql": {
"enabled": false,
"server_addr": "127.0.0.1",
"server_port": 3306,
"database": "trojan",
"username": "trojan",
"password": ""
}
}
将上面的域名换成自己的域名。
6.3 配置trojan启动脚本
编辑文件
vi /etc/systemd/system/trojan.service
文件内容编辑为下面内容
[Unit]
Description=trojan
After=network.target
[Service]
Type=simple
PIDFile=/root/trojan/trojan/trojan.pid
ExecStart=/root/trojan/trojan -c "/root/trojan/server.conf"
ExecReload=
ExecStop=/usr/src/trojan/trojan
PrivateTmp=true
[Install]
WantedBy=multi-user.target
其中/root/trojan
是我服务器的trojan解压路径,如果你的不一样,记得修改。
重启服务
systemctl daemon-reload
#停止nginx,因为它会占用443端口
systemctl stop nginx
#重启xray
systemctl restart trojan
至此trojan的搭建完成。
七、客户端v2rayN配置
配置大体截图:
最新评论
黑镜4k被和谐,哥
地址已经无效
谢谢,大神的分享
你们都能正常用吗?我怎么不能呀,没有几个能放