Trojan是基于HTTPS通信的网络通信协议,它的设计很简单,只使用 TLS 做为可信通道,其他加密一概没有,在不增加附加功能的前提下,实现稳定的核心通信功能。

搭建之前需要知道Trojan直接对接流量入口,这会导致 443 端口占用的问题,如果你的VPS还用作网站运行用途,如果想让
trojan和网站共存,本教程是无法满足的。

个人试用体验:同一个VPS(racknerd)搭建trojan和v2ray,v2ray一直正常,但是使用trojan就有时会出现IP被封的情形,只是个人经历,可能是我环境的原因。

其他教程:

正文开始之前,先插播个广告,推荐一些性价比较高的VPS,有购买VPS打算的,可以使用我的推介链接,这样你不仅可以优惠购买,我也会得到一定的返券,感谢你对我写文创作的支持!没有购买VPS打算的,可以跳过这一部分。

一、搬瓦工VPS推荐

BWH3HYATVBJW
线路 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推荐

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/wwwindex.html
vi /root/www/index.html

内容如下:

<html>
   <title>欢迎访问四个空格</title>
   <head><meta charset="UTF-8"></head>
   <body>
     <a href="https://www.4spaces.org/install-v2ray-on-debian-2021/">四个空格</a>
   </body>
</html>

5.4 新建/修改NGINX配置文件

nginx/1.18.0/etc/nginx/sites-enabled/default/etc/nginx/conf.d/default.conf
vi /etc/nginx/sites-enabled/default
server{
    listen 80;
    server_name your-domain.com;
    index index.html;
    root /root/www/;
}
/etc/nginx/nginx.confuser www-datauser root

5.5 启动nginx服务

依次执行下面命令,启动服务:

#启动Nginx并设置为开机自启命令
systemctl start nginx;systemctl enable nginx

#查看nginx启动状态命令
systemctl status nginx
your-domain.comhttp://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

重启服务

systemctl daemon-reload


#停止nginx,因为它会占用443端口
systemctl stop nginx

#重启xray
systemctl restart trojan

至此trojan的搭建完成。

七、客户端v2rayN配置

配置大体截图: