一种基于抄袭配置文件的透明代理配置方式 & 近况汇报
1. 《一种基于照搬配置文件的透明代理配置方式》

最近几个月在玩 Steam 平台的碧蓝档案,一开始用传统的 *_proxy 环境变量是可以正常运行的,但最近登陆越来越卡,最近几天要重试好几次才能登陆进去,我怀疑是(最后也确实是)一些组件封装了自己的网络层,没有读环境变量,所以没走代理。我寻思透明代理这一块是绕不过去了。
1.1. 背景
之前用透明代理是 Shadowsocks 时代给树莓派刷了 OpenWRT ,里面有开箱即用的透明代理,确实方便,后来自己用 ArchLinux DIY 路由器就没搞过透明代理,因为我完全不了解 iptables 啥的,看别人的博客都是需要一大堆 iptables 指令,每一条我都不知道什么意思,所以没敢搞,但现在不一样了, AI 太好用了你们知道吗, ChatGPT 能帮我给每一行指令写出注释,所以我大胆地抄了 XTLS 的教程,最终是 works 的,所以想分享一下
我家里的网络大概是这样的:
1.2. Xray 客户端配置
Xray 服务端不需要变动,新增一份用于透明代理的客户端配置:
1 | { |
保存到 xray 配置目录,比如我保存到了 /etc/xray/tproxy.json
1.3. 路由配置
1 | # 给路由表 100 添加一条默认本地路由,所有目标地址都走本地回环 |
现在所有打上标记 1 的数据包都会走本地回环,而不是外部网关,以便后续 Xray 接收。
1.4. 配置 Netfilter
配置 Netfilter ,我用 nftables :
注意:我家路由用的是 192.168.1.0/24 子网,所以下面 nftables 配置 24-25, 33-34 行写了 192.168.0.0/16 是可以正常工作的,如果你的路由使用其他子网,就可能需要改一下
1 | #!/usr/bin/nft -f |
1.5. 透明代理客户端
这样就完成了透明代理配置,需要科学上网的设备只需要配置这台机器为网关 & DNS即可,如我的台式机用 netctl ,我的 NAS 使用 192.168.1.222 :
1 | # ... |
1.6. 持久化
把上面的 nftable 保存成一个文件,比如我保存到了 xray 配置目录里 /etc/xray/nft.conf ,然后搞一个 systemd unit
1 | [Unit] |
设置成自动运行
1 | systemctl enable xray@tproxy |
2. 近况汇报
变身 995 社畜快一年了
TODO