RT ,
测试环境 openwrt/centos
原理
- dnsmasq 解析 ipset list
- 通过 iptables 给 output 的 gfw 流量 添加 set mark
- 添加 fwmark ,基于策略的路由,让其走特定的 table
实现
接口 wg-client 是连接 wg server 的本地接口。 gfw 是 ipset list
dnsmasq.conf
10.0.1.1 是 wg server ,listen 53
server=/google.com/10.0.1.1
ipset=/google.com/gfw
address=/google.com/::
gfw.sh
ipset create gfw hash:ip hashsize 4096
iptables -t mangle -A PREROUTING -m set --match-set gfw dst -j MARK --set-mark 0x400
sysctl -w net.ipv4.conf.wg-client.rp_filter=2
ip rule add fwmark 0x400 table 1000
ip route add 0.0.0.0/0 dev wg-client table 1000