萝卜小站

要做所有萝卜中最胡的一条

0%

Trojan搭建具体流程

准备工作

域名购买

购买域名选择namesilo 账号 diaoqi 密码 d-

ps: 这有个免费申请域名的网站 没试过好用否 贴在这

购买支付以后,切换域名的DNS服务器

首先左侧勾选域名,然后点击上面的 Change Nameservers 按钮。

切换域名服务器至DNSpod:melon.dnspod.netclam.dnspod.net

切换后要等大概一小时才能进入下一步

域名解析

域名解析选择dnspod 账号 QQ邮箱 密码 d-

添加域名以后 先加上www的解析 如下图

等待解析灯变绿色以后 测试解析结果

1
ping www.domainabcdefg.com

SSL证书选择

申请SSL证书选择腾讯云 账号 QQ邮箱 密码 d-

Trojan代理下的二级域名不能使用HTTPS服务,所以不要给二级域名申请证书

申请证书的时候选择自动DNS验证,无需手动更改任何东西,一直点下一步,证书颁发后下载Nginx版本即可,本步骤到此即可结束。

另外也可选择手动DNS验证,手动为域名添加一条解析记录,操作如下:

在 “证书列表” 页面,选择待查看证书详情的域名型证书 ID,进入 “证书详情” 页面。如下图所示:

按操作 去DNSpod那里添加一条TXT类型的解析即可 最终结果可以看上上面的解析图

只要上面的域名解析没问题 这里也没问题 直接等待CA扫描然后颁发证书即可

至此,准备工作结束。


搭建服务端

准备服务器一台,提前重置你钟爱的系统!(CentOS/Debian 都可以,但是今天教程做的是 Debian 的,我会把 CentOS 的代码一并贴上)

等待SSL证书生效

安装服务端环境

  1. 更新
    1
    2
    apt-get update  #Debian 更新
    yum update #CentOS 更新
  2. 安装 wget
    1
    2
    apt-get install wget   ##Debian/Ubuntu 安装 wget
    yum -y install wget ##CentOS Yum 安装 wget
  3. 安装curl
    1
    2
    apt-get update -y && apt-get install curl -y    ##Ubuntu/Debian 系统安装 Curl 方法
    yum update -y && yum install curl -y ##CentOS 系统安装 Curl 方法
  4. 安装 XZ 压缩工具
    1
    2
    apt-get install xz-utils   #Debian/Ubuntu 安装 XZ 压缩工具命令
    yum install xz #CentOS 安装 XZ 压缩工具
  5. 感兴趣的先测一下网速(此步骤可跳过)

    综合测试

    1
    wget -qO- bench.sh | bash

    国内三网测速

    1
    bash <(curl -Lso- https://git.io/superspeed.sh)

    回程路由信息

    1
    wget -qO- git.io/autobesttrace | bash
  6. 安装 NGINX 并自启
    1
    2
    3
    4
    apt-get -y install  nginx wget unzip zip curl tar   #Debian 安装
    yum -y install nginx wget unzip zip curl tar #CentOS 安装

    systemctl enable nginx.service #设置 Nginx 开机启动
  7. 配置Nginx

    找到 路径/etc/nginx/nginx.conf替换原有代码,注意 server_name 字段换成你自己的域名

    能看懂的话可以不用替换 改一改配置项也行。看不懂请无脑复制

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;

    # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
    include /usr/share/nginx/modules/*.conf;

    events {
    worker_connections 1024;
    }
    http {
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log main;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
    server {
    listen 80;
    #不带www的入口
    server_name domain.com;
    return 301 http://www.domain.com$request_uri;

    location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
    }
    }
    server {
    listen 80;
    server_name www.domain.com;
    location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
    }
    location /m {
    alias /usr/share/nginx/reactapp;
    index index.html index.htm;
    }
    location /api {
    proxy_pass http://103.111.11.1:8081;
    }
    }
    }
  8. 设置常规站点

    也可以先用自己的网站文件,不用他们官方的。

    1
    2
    3
    4
    5
    rm -rf /usr/share/nginx/html/*   #删除目录原有文件
    cd /usr/share/nginx/html/ #进入站点根目录
    wget https://github.com/V2RaySSR/Trojan/raw/master/web.zip #下载官方站点
    unzip web.zip
    systemctl restart nginx.service #重启nginx

    到这里,你访问 http://你的域名 ,应该可以打开网站了,如果没打开接着往下设置。(不是 https://

  9. 问题排查

    如果域名和IP地址都打不开,可能是防火墙的原因,首先查看防火墙状态

    1
    systemctl status firewalld

    如果有绿色证明开启了防火墙,然后查看已经开放的端口

    1
    firewall-cmd --list-ports

    启动防火墙后默认是不开启任何端口的,所以查到的应该是空

    然后打开80端口

    1
    firewall-cmd --zone=public --add-port=80/tcp --permanent

    顺便443也打开

    1
    firewall-cmd --zone=public --add-port=443/tcp --permanent

    其中命令含义:

    • --zone #作用域
    • --add-port=80/tcp #添加端口,格式为:端口/通讯协议
    • --permanent #永久生效,没有此参数重启后失效

    开放后重启防火墙生效

    1
    firewall-cmd --reload

    成功后再往下一步走,此处没成功则排查问题。

  10. 下载Trojan服务器

    下载地址:https://github.com/trojan-gfw/trojan/releases/download/v1.16.0/trojan-1.16.0-linux-amd64.tar.xz

    既可以在github下载后拖入服务器,也可在服务器上下载。都一样。

    1
    2
    3
    cd /usr/src  #进入该目录
    wget https://github.com/trojan-gfw/trojan/releases/download/v1.16.0/trojan-1.16.0-linux-amd64.tar.xz #下载官方 Trojan 服务器
    tar xf trojan-1.* #解压该文件

    国内备份:trojan-1.16.0-linux-amd64.tar.xz

  11. 创建 Trojan 服务器配置文件

    找到 /usr/src/trojan/ 目录,创建并打开server.conf文件

    ubuntu下创建命令为:touch server.conf

    创建后,写入以下内容。 注意! 下图中的配置项 password 字段记得改了 其他配置项如果能看懂 也可以改

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    {
    "run_type": "server",
    "local_addr": "0.0.0.0",
    "local_port": 443,
    "remote_addr": "127.0.0.1",
    "remote_port": 80,
    "password": [
    "00000000"
    ],
    "log_level": 1,
    "ssl": {
    "cert": "/usr/src/trojan-cert/fullchain.crt",
    "key": "/usr/src/trojan-cert/private.key",
    "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"
    ],
    "alpn_port_override": {
    "h2": 81
    },
    "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,
    "server_addr": "127.0.0.1",
    "server_port": 3306,
    "database": "trojan",
    "username": "trojan",
    "password": "",
    "key": "",
    "cert": "",
    "ca": ""
    }
    }
  12. 创建 Trojan 自启服务

    Debian 系统找到 /lib/systemd/system/ 目录,并创建 trojan.service 文件
    CentOS 系统找到 /usr/lib/systemd/system/ 目录,并创建 trojan.service 文件
    打开 trojan.service 文件,并写入以下代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [Unit]  
    Description=trojan
    After=network.target

    [Service]
    Type=simple
    PIDFile=/usr/src/trojan/trojan/trojan.pid
    ExecStart=/usr/src/trojan/trojan -c "/usr/src/trojan/server.conf"
    ExecReload=
    ExecStop=/usr/src/trojan/trojan
    PrivateTmp=true

    [Install]
    WantedBy=multi-user.target
  13. 下载并解压证书

    下载后解压,然后打开 nginx目录,里面有俩文件

    • 一个是 xxx.xxx.xxx_chain.crt 文件
    • 一个是 xxx.xxx.xxx_key.key 文件

    xxx.xxx.xxx_chain.crt 改名为 fullchain.crt 备用
    xxx.xxx.xxx_key.key 改名为 private.key 备用

  14. 移动证书文件

    创建存放证书的文件夹trojan-cert 完整路径为 /usr/src/trojan-cert
    把刚才改名的 2 个文件( fullchain.crtprivate.key )放到服务器 /usr/src/trojan-cert 目录下面

启动Trojan服务

1
2
systemctl start trojan.service  #启动 Trojan
systemctl enable trojan.service #设置 Trojan 服务开机自启

验证 SSL 证书

访问 https://你的域名 ,检查证书和 Trojan 是否正常运行(有小锁成功)。

记得是访问 https:// 。不是 http://

至此,服务端搭建结束。


Trojan 客户端下载

现在的客户端大多是订阅模式,直接使用代理的反而比较少。建议学习各平台的订阅配置文件规则集。

  • Windows客户端

    • V2rayN

      新手推荐V2rayN ,是一个基于 V2RayXray 内核的 Windows 客户端。缺点就是只支持Windows系统。

      目前只建议新手使用这一个客户端。

      使用方式:

      1. 下载后解压,打开程序。点击左上角服务器,添加[Trojan]服务器。
      2. 别名填Trojan,地址输入Trojan服务器的域名,如 www.domain.com
      3. 端口443,密码填Trojan 服务器配置文件中的密码。点击确定。
      4. 选中刚添加的服务器,右键,设为活动服务器。
      5. 软件下方系统代理选择自动配置系统代理,路由选择V3-全局(Global),即可打开谷歌。
    • Clash Verge

      点击访问 官方网站,客户端 下载地址。别忘了 下载使用说明书 。Trojan类型的Clash订阅文件格式如下:

      1
      2
      3
      4
      5
      6
      proxies:
      - name: 美国节点
      server: www.domain.com
      port: 443
      type: trojan
      password: 00000000
    • GUI.for.SingBox

      Sing–Box支持众多协议,需要自己配置订阅链接。

      下载地址:GUI.for.SingBox

    • 西部世界

      一个机场整理的客户端:西部世界官网,进网站后点击客户端下载。

      国内备份:西部世界官网
      如果进不去,可以发送任意内容至邮箱 info@westworldss.com 即可获取最新地址

    • 其他

      其他的好用客户端,都在 这里

  • macOS客户端

    • Clash Verge

      在Mac上运行的clash Verge,使用说明以及下载地址请参考官网,也是需要配置订阅文件。

    • Qv2ray

      可用但不推荐,Qv2ray的复杂配置在Mac端有些不方便。适合熟悉Qv2ray的配置方式或者用惯Qv2ray的人使用。

  • 安卓客户端

    • igniter

    这个是官方的原版安卓客户端 igniter,可放心使用。

    国内备份:igniter

    • Clash Meta

    需要先把配置文件弄好,手机下载 Clash Meta,然后导入URL或者文件即可使用。

  • IOS客户端

    • William VPN

    用美区Apple ID登录AppStore,搜索 William VPN。

    本人未尝试过,无教程,盲猜和安卓差不多

  • Linux客户端

    • Qv2ray

    支持Linux的客户端不多,Qv2ray算是最好用的之一,具体配置方式同Windows。

  • 路由器

    • 梅林路由器

    支持RT-AC86U 官改固件,Trojan 暂时没有可用的路由器插件。

    • OpenWRT路由器

    支持NanoPi R2S 软路由,刷入固件FriendlyWrt_20200616_NanoPi-R2S_arm64_sd.img。

由于很多客户端更新频繁,跑路的跑路,喝茶的喝茶,故本文客户端不做可用性保证,建议上网查询更好用的客户端。很多链接不存在国内备份,而国外链接在国内又打不开。故建议先搭建Windows环境客户端,成功后再访问其他链接。

至此,客户端搭建完毕,开始你的表演。


开启BBR加速服务(选修)

大家都知道国外的服务器远离我们,在国内连接速度并不是很好,尤其是在晚高峰期体验效果明显有所下降,此时我们需要安装一些脚本进行加速。

前段时间 Google 开源了 TCP BBR 拥塞控制算法,根据用户使用体验的效果来看在 服务器上开启了 TCP BBR 后网速最高可达到 10 几倍的提升。

关于 Google BBR 拥塞控制算法目前有很多个版本,一个原版,另一个为魔改版,还有加强版的 BBRPLUS 版本。魔改版 Google BBR 和 PLUS 版本的 BBR 是在原版的基础上调整了一些参数,加速效果更胜一筹。

原版的 BBR 稳定,和系统兼容性好,长期运行不容易出现错误。但是其他衍生来的一些 BBR 加速版本,是经过原版的优化和改动,所以我们都不能说他是 100%的。所以这边我们建议大家不要在你的生产系统上面折腾第三方的加速软件。

Google 原版 BBR 安装

1
2
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
chmod 755 bbr.sh && ./bbr.sh

接下来 BBR 会自动开始安装,中间提示的什么 就按默认选择就好。

安装完成后会英文提示是否重启,输入 y 回车重启。

等待大概一分钟,系统重启成功后,重新用连接工具连接服务器,输入以下命令验证 BBR 是否安装成功:

1
sysctl net.ipv4.tcp_congestion_control

如果得到如下结果则代表 BBR 安装成功:

1
net.ipv4.tcp_congestion_control = bbr

安装成功后,不需要启动什么。这就完事儿了。

(全文完)

————————————————