从源头绕过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
下载对应客户端,并按照以下教程使用