准备工作
域名购买
购买域名选择namesilo 账号 diaoqi 密码 d-
ps: 这有个免费申请域名的网站 没试过好用否 贴在这
购买支付以后,切换域名的DNS服务器
首先左侧勾选域名,然后点击上面的 Change Nameservers
按钮。
切换域名服务器至DNSpod:melon.dnspod.net
和 clam.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
2apt-get update #Debian 更新
yum update #CentOS 更新安装 wget
1
2apt-get install wget ##Debian/Ubuntu 安装 wget
yum -y install wget ##CentOS Yum 安装 wget安装curl
1
2apt-get update -y && apt-get install curl -y ##Ubuntu/Debian 系统安装 Curl 方法
yum update -y && yum install curl -y ##CentOS 系统安装 Curl 方法安装 XZ 压缩工具
1
2apt-get install xz-utils #Debian/Ubuntu 安装 XZ 压缩工具命令
yum install xz #CentOS 安装 XZ 压缩工具感兴趣的先测一下网速(此步骤可跳过)
综合测试
1
wget -qO- bench.sh | bash
国内三网测速
1
bash <(curl -Lso- https://git.io/superspeed.sh)
回程路由信息
1
wget -qO- git.io/autobesttrace | bash
安装 NGINX 并自启
1
2
3
4apt-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 开机启动配置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
58user 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;
}
}
}设置常规站点
也可以先用自己的网站文件,不用他们官方的。
1
2
3
4
5rm -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://
)问题排查
如果域名和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
成功后再往下一步走,此处没成功则排查问题。
下载Trojan服务器
下载地址:https://github.com/trojan-gfw/trojan/releases/download/v1.16.0/trojan-1.16.0-linux-amd64.tar.xz
既可以在github下载后拖入服务器,也可在服务器上下载。都一样。
1
2
3cd /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 服务器配置文件
找到
/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": ""
}
}创建 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下载并解压证书
下载后解压,然后打开 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
备用- 一个是
移动证书文件
创建存放证书的文件夹
trojan-cert
完整路径为/usr/src/trojan-cert
把刚才改名的 2 个文件(fullchain.crt
和private.key
)放到服务器/usr/src/trojan-cert
目录下面
启动Trojan服务
1 | systemctl start trojan.service #启动 Trojan |
验证 SSL 证书
访问 https://你的域名
,检查证书和 Trojan 是否正常运行(有小锁成功)。
记得是访问 https://
。不是 http://
至此,服务端搭建结束。
Trojan 客户端下载
现在的客户端大多是订阅模式,直接使用代理的反而比较少。建议学习各平台的订阅配置文件规则集。
Windows客户端
V2rayN
新手推荐V2rayN ,是一个基于
V2Ray
及Xray
内核的 Windows 客户端。缺点就是只支持Windows系统。目前只建议新手使用这一个客户端。
使用方式:
- 下载后解压,打开程序。点击左上角服务器,添加[Trojan]服务器。
- 别名填Trojan,地址输入Trojan服务器的域名,如
www.domain.com
。 - 端口443,密码填Trojan 服务器配置文件中的密码。点击确定。
- 选中刚添加的服务器,右键,设为活动服务器。
- 软件下方系统代理选择
自动配置系统代理
,路由选择V3-全局(Global)
,即可打开谷歌。
Clash Verge
点击访问 官方网站,客户端 下载地址。别忘了 下载使用说明书 。Trojan类型的Clash订阅文件格式如下:
1
2
3
4
5
6proxies:
- name: 美国节点
server: www.domain.com
port: 443
type: trojan
password: 00000000GUI.for.SingBox
Sing–Box支持众多协议,需要自己配置订阅链接。
下载地址:GUI.for.SingBox
西部世界
一个机场整理的客户端:西部世界官网,进网站后点击客户端下载。
国内备份:西部世界官网
如果进不去,可以发送任意内容至邮箱 info@westworldss.com 即可获取最新地址其他
其他的好用客户端,都在 这里。
macOS客户端
安卓客户端
这个是官方的原版安卓客户端 igniter,可放心使用。
国内备份:igniter
需要先把配置文件弄好,手机下载 Clash Meta,然后导入URL或者文件即可使用。
IOS客户端
用美区Apple ID登录AppStore,搜索 William VPN。
本人未尝试过,无教程,盲猜和安卓差不多
Linux客户端
支持Linux的客户端不多,Qv2ray算是最好用的之一,具体配置方式同Windows。
路由器
支持RT-AC86U 官改固件,Trojan 暂时没有可用的路由器插件。
支持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 | wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh |
接下来 BBR 会自动开始安装,中间提示的什么 就按默认选择就好。
安装完成后会英文提示是否重启,输入 y 回车重启。
等待大概一分钟,系统重启成功后,重新用连接工具连接服务器,输入以下命令验证 BBR 是否安装成功:
1 | sysctl net.ipv4.tcp_congestion_control |
如果得到如下结果则代表 BBR 安装成功:
1 | net.ipv4.tcp_congestion_control = bbr |
安装成功后,不需要启动什么。这就完事儿了。
(全文完)
————————————————