防失联之自建trojan节点【科学上网系列第1集】
今天,我要和大家分享如何自己搭建 Trojan 节点,轻松绕过网络的GWF(长城 )的各种限制,自由畅游互联网!这是【科学上网系列】的第一集,接下来几期,我会继续深入探讨‘科学上网’的相关知识,一起了解更多有趣又实用的内容!
原理讲解
- 什么是科学上网
科学上网就像你有一把特殊的钥匙,能绕过一些地方的围墙(比如中国的“长城防火墙”GFW),进入你需要的信息世界。比如,当你想访问某个网站时,墙把你挡住了,但使用“科学上网”就能找到一条秘密通道,轻松穿越这道墙,直接访问那个网站。
这个“秘密通道”就像是通过一个可靠的桥梁或隧道,不会被墙堵住,确保你顺利到达目的地。这个桥梁或隧道,我们叫它“网络协议”,常见的有 Shadowsocks (ss)、ShadowsocksR (SSR)、VLESS、VMess、Xray、Trojan,以及最新的 Hysteria(歇斯底里)协议。
- 为什么(使用流密码的)Shadowsocks容易遭到封锁
早期 GFW 通过被动检测拦截流量,Shadowsocks 随机化的数据包设计能有效躲避。但如今 GFW 增加了主动探测,会模拟流量重放,触发 Shadowsocks 断开连接的特征,从而将服务器列入封锁名单。
打个比方,就像你在机场安检时,使用一个没有明显标志的包裹(Shadowsocks),安检人员很难辨认出它是特殊的,能顺利通过。然而,随着安检人员提高警觉,他们开始用扫描仪检查所有包裹。当他们发现一个看似普通却有不寻常重量或形状的包裹时(主动探测),他们会主动打开并检查。这个包裹如果被打开且没有异常就会被怀疑是危险物品,最终可能被封锁(列入黑名单)。
- Trojan如何绕过GFW
Trojan 使用标准 TLS 协议(如 HTTPS),流量与普通 HTTPS 一致,避免被动检测。对于主动探测,Trojan 会将异常连接代理到正常网站,表现得像普通 HTTPS 服务器。此外,合法域名和权威证书进一步增强伪装。要封锁 Trojan,GFW 只能采取全面封锁或复杂的中间人攻击,而 Trojan 的双重 TLS 可有效应对。
打个同样比方,就像你在机场安检时,使用一个没有明显标志的包裹(Shadowsocks),安检人员很难辨认出它是特殊的,能顺利通过。然而,随着安检人员提高警觉,他们开始用扫描仪检查所有包裹。当他们发现一个看似普通却有不寻常重量或形状的包裹时(主动探测),他们会主动打开并检查。这个包裹如果被打开且没有异常就会被怀疑是危险物品,最终可能被封锁(列入黑名单)。
看到这里,如果‘科学上网’的概念还有让你不太明白的地方,别忘了在评论区留言,我会尽量为大家解答!如果你已经尝试过其他协议,也欢迎分享你的经验,我们一起交流、一起进步!
-
不被封锁的两个核心
-
伪装成正常网站
-
使用动态ip(如采用clouadfare动态代理)
-
为保持视频的精简而通俗易懂,采用clouadfare动态代理办法,我们再下一个视频来讲。这一节主要负责tranjan节点的搭建
下载trojan项目
- 项目地址: 前往下载
上传云服务器
- 购买云服务器
关于服务器购买,我会再另外的视频中讲解,假定我们手上有一个闲置的服务器。
- ssh客户端登陆
FinalShell下载地址:前往下载
启动前准备
- 修改配置文件
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 2087,
"log_level": 1,
"log_file": "trojan_log.txt",
"remote_addr": "hk1.littlelit.top",
"remote_port": 80,
"password": [
"pwd01",
"pwd02"
],
"ssl": {
"cert": "/etc/nginx/certs/littlelit.crt",
"key": "/etc/nginx/certs/littlelit.key",
"fallback_port": 443,
"session_ticket": true,
"reuse_session": true,
"plain_http_response": "",
"fingerprint": "firefox",
"serve_plain_text": false
},
"websocket": {
"enabled": true,
"path": "/ws",
"Host": "hk1.littlelit.top",
"obfuscation_password": "",
"double_tls": true,
"ssl": {
"verify": true,
"verify_hostname": true,
"cert": "/etc/nginx/certs/littlelit.crt",
"key": "/etc/nginx/certs/littlelit.key",
"prefer_server_cipher": false,
"sni": "hk1.littlelit.top",
"session_ticket": true,
"reuse_session": true,
"plain_http_response": ""
}
}
}
如上只是最基础配置。 - 完整配置说明 前往查看
配置文件是不是看起来有点复杂?别担心!跟着我的步骤一步一步来,肯定不会出错。如果过程中遇到问题,千万别慌!弹幕和评论区就是你的求助站,我会尽快回复大家。
- 防火墙开放trojan端口
- 开放2096端口:
firewall-cmd --zone=public --add-port=2087/tcp --permanent
- 重载防火墙配置:
firewall-cmd --reload
- 启动命令
./trojan-go -config server.json
有可能找不到trojan-go程序,那就改成全路径运行:
/qbox/trojan/trojan-go -config /qbox/trojan/server.json
路径需要开放权限:
chmod +x /qbox/trojan/trojan-go
客户端配置
除了自建节点,为了确保后续能够使用免费节点,实现多重保障,达到永不失联的目标,我们选择了支持多种协议且配置灵活的客户端软件——Clash。正因为这些特点,我们最终决定采用它。
在博客中找到对应的下载链接,根据自己的操作系统选择相应版本进行下载即可。以我的情况为例,使用的是 Windows 系统,直接选择 Windows 版本下载即可。
-
clash下载地址: 前往下载
-
配置代码
mixed-port: 7890
allow-lan: false
mode: Rule
log-level: error
external-controller: 127.0.0.1:60000
http-opts:
timeout: 30000
proxies:
- {'name': 'hongkong香港HK', 'server': 'hk1.littlelit.top', 'type': 'trojan', 'port': 2087, 'password': 'pwd01', 'sni': 'hk1.littlelit.top', 'network': 'ws', 'ws-opts': {'path': '/ws', 'headers': {'Hostname': 'hk1.littlelit.top'}}}
配置开机启动
- 写入启动脚本
vi /etc/systemd/system/trojan-go.service
将下面代码贴入,修改和启动路径和项目根目录,并保存。
```
[Unit]
Description=trojan-go
After=network.target
[Service]
ExecStart=trojan项目根目录/trojan-go -config server.json
WorkingDirectory=换成trojan项目根目录
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=trojan_go
[Install]
WantedBy=multi-user.target
```
- 常见命令
- 启动:
systemctl start trojan-go
- 停止:
systemctl stop trojan-go
- 状态:
systemctl status trojan-go
- 重启:
systemctl restart trojan-go
- 启动:
如果被墙(封锁)怎么办
-
换端口
-
优点:延时低,速度快
-
缺点:繁琐
-
-
采用下一个视频要讲的套用cloudfare代理进行自救
-
优点:几乎不可能失联
-
缺点:延迟较高,解锁chatgpt等不太稳定
-
好了,今天的内容就到这里啦!如果这期视频对你有帮助,记得点个赞,订阅我的频道,还要打开小铃铛哦,这样就不会错过后续更新!下一期,我们会讲解如何用 Cloudflare 提高节点的稳定性,防止被封锁。如果还有其他想了解的内容,记得在评论区告诉我!那我们下期见吧。