从源头绕过GFW,利用Trojan在Debian系统上搭建科学上网服务器

一般的科学上网采用强加密和随机混淆来欺骗GFW的过滤机制。然而,Trojan采用最常见的协议HTTPS,以诱骗GFW认为它是HTTPS。当Trojan客户端连接到服务器时,它首先执行真正的 TLS握手。如果握手成功,则所有后续流量都将受到保护TLS; 否则,服务器将立即关闭连接,就像任何HTTPS服务器一样。Trojan反侦查采用主动检测与被动检测,主动检测:没有正确结构和密码的所有连接将被重定向到预设端点,因此HTTP如果可疑探针连接(或者只是您连接到博客XD的粉丝),则特洛伊木马服务器的行为与该端点完全相同(默认情况下)。被动检测:由于流量受到保护TLS(用户有责任使用有效证书),如果您正在访问某个HTTP站点,则流量看起来与HTTPS(握手RTT后只有一个TLS)相同; 如果您没有访问某个HTTP站点,那么流量看起来就像HTTPS保持活动一样WebSocket。因此,木马也可以绕过ISP QoS限制。
理论上来说,Trojan可以永久地穿越Great FireWall,而不会被识别出来。
Trojan 的 GitHub地址

Trojan服务器部署(Debian)

在部署之前,你需要把你的域名解析到你的VPS,域名推荐使用免费顶级域名,注册网址www.freenom.com。

1、安装BBR加速

一键安装脚本

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/bbr.sh && chmod +x bbr.sh && bash bbr.sh

2、安装依赖

需要安装CMake >= 3.7.2,Boost >= 1.54.0,OpenSSL >= 1.0.2,libmysqlclient,安装命令:

sudo apt -y install build-essential cmake libboost-system-dev libboost-program-options-dev libssl-dev default-libmysqlclient-dev

3、安装Git

这一步不一定是必须的,如果提示没有安装Git就得安装

sudo apt-get install git

4、克隆

git clone https://github.com/trojan-gfw/trojan.git
cd trojan/

5、构建和安装

mkdir build
cd build/
cmake .. -DENABLE_MYSQL=OFF -DENABLE_SSL_KEYLOG=ON -DFORCE_TCP_FASTOPEN=ON -DSYSTEMD_SERVICE=AUTO
make
ctest
sudo make install

当使用ctest测试时,必须显示100% tests passed才能进行下一步操作,否则要检查之前的操作。

6、申请letsencrypt证书

在根目录下执行,把电子邮件及域名更改为你自己的,域名解析时不要使用第三方的DNS及国内的DNS,电子邮件也不要使用国内的。

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./certbot-auto --help all
./letsencrypt-auto certonly --standalone --email oneleaf520@gmail.com -d mfzy.gq -d www.mfzy.gq

安装过程有两个地方需要进行交互:

如果一切正常,安装完成后以下信息,两个红色框的信息下一步会用到。

7、编辑配置文件

vi /usr/local/etc/trojan/config.json

8、试运行

cd /root/trojan/build
./trojan -c /usr/local/etc/trojan/config.json

9、把命令运行为server

因为命令./trojan -c /usr/local/etc/trojan/config.json是运行在前台的,我们需要利用systemd来把该命令运行为service,运行下面命令

vi /etc/systemd/system/trojan.service

其内容为:

[Unit]
After=network.target 

[Service]
ExecStart=/root/trojan/build/trojan -c /usr/local/etc/trojan/config.json
Restart=always

[Install]
WantedBy=multi-user.target

10、运行

启动Trojan:

systemctl start trojan

设置开机启动:

systemctl enable trojan

查看运行状态:

systemctl status trojan

使用 Trojan

下载对应客户端,并按照以下教程使用