V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
azure2023us
V2EX  ›  WireGuard

使用 ipset, 配合 fwmark, 实现 wg 分流

  •  
  •   azure2023us · 2023-01-26 21:20:27 +08:00 · 1008 次点击
    这是一个创建于 691 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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
    
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5772 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 01:49 · PVG 09:49 · LAX 17:49 · JFK 20:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.