OpenWrt 下配置 Trojan 客户端实现全局代理:让所有设备科学上网

作为一名长期折腾软路由的玩家,我最近终于把家里的 OpenWrt 路由器配置好了 Trojan 全局代理。整个过程踩了不少坑,但也积累了不少实战经验。今天就把这个完整的配置过程分享给大家,希望能帮助到同样想要实现全家设备科学上网的朋友们。
准备工作与环境检查
在开始配置之前,我们需要确保 OpenWrt 系统满足基本要求。我的设备是 x86 软路由,系统版本是 OpenWrt 21.02.3。首先通过 SSH 登录路由器,检查系统架构和剩余空间:
# 查看系统信息
cat /etc/openwrt_release
# 检查架构
opkg print-architecture
# 查看磁盘空间
df -h
确保有足够的空间安装 Trojan 客户端及相关依赖包,建议至少保留 10MB 可用空间。
安装 Trojan 客户端
Trojan 在 OpenWrt 上的安装相对简单,但需要注意依赖关系。我使用的是官方软件源安装:
# 更新软件包列表
opkg update
# 安装 Trojan 客户端
opkg install trojan
# 安装 luci-app-trojan(如果有的话)
# opkg install luci-app-trojan
如果官方源没有 Trojan,可以尝试添加第三方源,或者从 GitHub 下载编译好的 ipk 文件手动安装。
配置 Trojan 客户端
安装完成后,需要创建配置文件。我习惯在 /etc/trojan/ 目录下创建 config.json:
{
"run_type": "client",
"local_addr": "0.0.0.0",
"local_port": 1080,
"remote_addr": "your-trojan-server.com",
"remote_port": 443,
"password": [
"your-password"
],
"ssl": {
"verify": true,
"verify_hostname": true,
"cert": "",
"cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:...",
"cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:...",
"sni": "",
"alpn": [
"h2",
"http/1.1"
],
"reuse_session": true,
"session_ticket": false,
"curves": ""
},
"tcp": {
"no_delay": true,
"keep_alive": true,
"reuse_port": false,
"fast_open": false,
"fast_open_qlen": 20
}
}
记得将 your-trojan-server.com 和 your-password 替换成你自己的服务器地址和密码。
配置防火墙和透明代理
为了让所有设备都能通过 Trojan 上网,我们需要配置防火墙规则。编辑 /etc/config/firewall,在文件末尾添加:
config redirect
option name 'Trojan-Proxy'
option src 'lan'
option dest 'lan'
option src_dport '53'
option dest_port '5353'
option proto 'tcp udp'
option target 'DNAT'
config redirect
option name 'Trojan-TCP'
option src 'lan'
option src_dip '!192.168.1.0/24'
option proto 'tcp'
option target 'DNAT'
option dest 'lan'
option dest_ip '192.168.1.1'
option dest_port '1080'
这里有个坑需要注意:如果你的局域网网段不是 192.168.1.0/24,记得修改成你自己的网段。
配置 DNS 解析
DNS 污染是常见问题,我选择使用 ChinaDNS 和 dnsmasq 配合:
# 安装 ChinaDNS
opkg install chinadns
# 配置 dnsmasq
echo "server=127.0.0.1#5353" >> /etc/dnsmasq.conf
echo "all-servers" >> /etc/dnsmasq.conf
echo "no-poll" >> /etc/dnsmasq.conf
启动服务和测试
一切配置完成后,启动服务并测试:
# 启动 Trojan 服务
/etc/init.d/trojan start
/etc/init.d/trojan enable
# 重启防火墙和 dnsmasq
/etc/init.d/firewall restart
/etc/init.d/dnsmasq restart
# 测试连接
curl -x socks5://127.0.0.1:1080 https://www.google.com
如果看到返回的 HTML 内容,说明配置成功!现在你的所有连接路由器的设备都应该能够科学上网了。
常见问题排查
在实际使用过程中,我遇到几个典型问题:
1. Trojan 连接失败:检查服务器配置、密码和端口是否正确,确保服务器防火墙放行了相应端口。
2. DNS 解析异常:确认 ChinaDNS 和 dnsmasq 配置正确,可以尝试使用 tcpdump 抓包分析。
3. 性能问题:如果感觉网速慢,可以尝试调整 Trojan 的 TCP 参数,或者检查服务器负载。
经过这样的配置,我的家庭网络终于实现了真正的全局代理,所有设备无需单独配置就能科学上网,体验非常棒!希望这篇教程也能帮助到你。


终于找到靠谱的Trojan全局代理教程了!感谢分享~