Trojan 是一种无法识别的可绕过GFW的机制。配合 Nginx可以做到伪装域名流量,降低被GFW检测的风险。本手记面向已拥有一定经验的操作人员。
部署环境:
- 腾讯云 CentOS 8.2
准备工作:
- 已解析到服务器的域名
- 绑定到域名的SSL证书
方案分析
Trojan 默认监控443端口(伪装https),其能识别访问该端口的正常流量和代理流量,将正常流量转发到Nginx的80端口处理,代理流量走代理。
Nginx 只负责80端口,网页托管在该端口。
缺点:网站https访问会经过一次转发,访问速度可能下降
优点:便于部署,技术力低,时间成本低,代理速度更快
配置文件
/etc/nginx/conf.d/default.conf
1
2
3
4
5
6
7
8
server {
listen 0.0.0.0:80;
server_name domian;
location / {
root /usr/share/www;
index index.html;
}
}
/usr/local/etc/trojan/config.json
1
2
3
4
5
6
7
8
9
10
11
12
{
"password": [
"password"
],
...
"ssl": {
"cert": "/pathTo/domian.crt",
"key": "/pathTo/domian.key",
...
}
...
}
流程手记
Trojan安装与指令
trojan官方提供的一键部署脚本。
1
bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"
Trojan相关命令
查看trojan版本
1
trojan -v
查看trojan运行状态
1
ss -lp | grep trojan
操作trojan服务
1
2
3
systemctl stop trojan
systemctl start trojan
systemctl restart trojan
Nginx安装与指令
CentOS 8 預設 AppStream 軟體倉庫 (repo,repository) 提供的 NGINX 版本為 1.14.1,本章透過 NGINX 官方軟體倉庫,即可使用 yum/dnf 指令來安裝 NGINX 穩定或最新版本,参考nginx官方文档。
安裝能夠選擇指定 yum 的套件:
1
yum install yum-utils -y
设置yum安装nginx的仓库源
1
vim /etc/yum.repos.d/nginx.repo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
--enable
1
yum-config-manager --enable nginx-mainline
nginx-stablenginx-mainline
安装nginx
1
yum install nginx
查看nginx版本信息
1
yum info nginx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Last metadata expiration check: 0:00:48 ago on Fri 11 Jun 2021 04:08:38 PM CST.
Installed Packages
Name : nginx
Epoch : 1
Version : 1.21.0
Release : 1.el8.ngx
Architecture : x86_64
Size : 2.8 M
Source : nginx-1.21.0-1.el8.ngx.src.rpm
Repository : @System
From repo : nginx-mainline
Summary : High performance web server
URL : https://nginx.org/
License : 2-clause BSD-like license
Description : nginx [engine x] is an HTTP and reverse proxy server, as well as
: a mail proxy server.
查看nginx版本
1
nginx -v
1
nginx version: nginx/1.21.0
Nginx命令参数
优雅退出nginx服务
1
nginx -s quit
退出nginx服务
1
nginx -s stop
重启nginx服务
1
nginx -s reload
检验配置文件语法
1
nginx -t
载入配置文件
1
nginx -c /etc/nginx/nginx.conf
BBR加速代理
BBR 是 Google 提出的一种新型拥塞控制算法,可以使 Linux 服务器显著地提高吞吐量和减少 TCP 连接的延迟。
开启 BBR 要求 4.10 以上版本 Linux 内核,可使用如下命令查看当前内核版本
1
uname -r
开启BBR
使用官方
1
2
3
echo 'net.core.default_qdisc=fq' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' >> /etc/sysctl.conf
sysctl -p
使用自动脚本
1
curl -O https://raw.githubusercontent.com/teddysun/across/master/bbr.sh && sh bbr.sh
验证BBR
查看可以用的拥塞控制算法
1
sysctl net.ipv4.tcp_available_congestion_control
查看现在使用的拥塞控制算法
1
sysctl net.ipv4.tcp_congestion_control
检查BBR是否正常运行
1
lsmod | grep tcp_bbr