Mac 上如何实现在使用 utun 时再绑定网络出口? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
8520ccc

Mac 上如何实现在使用 utun 时再绑定网络出口?

  •  
  •   8520ccc 2022 年 5 月 5 日 1644 次点击
    这是一个创建于 1450 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以 wireguard 假设现在使用 wireguard 绑定到 utun5

    再设定路由 0.0.0.0/1 128.0.0.0/1 再将服务端的 IP 路由指向 en0 此时可以正常使用,全局 IP 都变成了服务器的 IP

    我想在此时能够再指定网卡 en0 进行拨号

    先测试了(指定出口 IP ) dial, err := net.DialTCP("tcp", local, remote)

    失败,提示错误 no route to host

    然后测试了 (指定出口网卡)

     dialer := &net.Dialer{ Control: func(network, address string, conn syscall.RawConn) error { return conn.Control(func(fd uintptr) { switch network { case "tcp4", "udp4": unix.SetsockoptInt(int(fd), unix.IPPROTO_IP, unix.IP_BOUND_IF, bindIface.Index) case "tcp6", "udp6": unix.SetsockoptInt(int(fd), unix.IPPROTO_IPV6, unix.IPV6_BOUND_IF, bindIface.Index) } }) }, } 

    依旧无效 此时提示错误:dial tcp xxxx:xxx: connect: network is unreachable

    是不是没办法实现了。。。。。。

    PS:以上两种测试 在不开启 utun 时 测试 en0 是正常的 在开启 utun 时 测试 utun 也是正常的

    也就是同时只有一个出口可以正常得到响应

    2 条回复    2022-05-06 12:28:13 +08:00
    bugfan
        1
    bugfan  
       2022 年 5 月 5 日 via iPhone
    我感觉是路由的问题,你把 wireguard 的路由写成局域网,然后分别尝试局域网的地址和公网地址是否可以通过不同的网卡发出去。印象里,你在 wireguard 客户端里设置允许的 ip 段,写某一段和写 0.0.0.0/0某一段,会在影响虚拟网卡和物理网卡路由表顺序
    8520ccc
        2
    8520ccc  
    OP
       2022 年 5 月 6 日
    @bugfan 现在的情况是只要添加了路由走 utun5 的 IP 段 就没办法再使用 en0 发出去了 取消了自然可以的!或者说没有添加的部分就可以

    好像 mac 的路由这里不支持多出口

    对单个 IP 只能走物理网卡或者是虚拟网卡(根据路由确定)

    不支持自定义

    物理网卡的情况下没测试,或许有可能支持吧(同时连接 wifi + 网线)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     919 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 22:35 PVG 06:35 LAX 15:35 JFK 18:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86