V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
uil330
V2EX  ›  问与答

如何在不确定某个网卡 A 对应的网关的情况下,指定访问指定 IP 的流量都走网卡 A?

  •  
  •   uil330 · 2020-03-11 16:58:04 +08:00 · 1240 次点击
    这是一个创建于 1718 天前的主题,其中的信息可能已经有所发展或是发生改变。
    4 条回复    2021-04-04 13:31:06 +08:00
    uil330
        1
    uil330  
    OP
       2020-03-11 17:09:53 +08:00
    工作需求,要树莓派装上 4G 模块,然后把程序 A 的数据通过 4G 模块传到某个指定的服务器。

    而其他程序还有系统本身的数据都要通过 LAN 传到本地的服务器。LAN 无法访问互联网。

    类似于这种构造:

    远程服务器
    |
    | 本地服务器
    | |
    4G 模块 LAN
    | |
    |-------|-----------|
    树莓派


    但是如果一开 LAN 的话程序 A 的数据默认通过 LAN 传输,导致无法连接上远程服务器。

    虽然知道 route 命令能指定 ip 走某个网卡,但是如果不设定网关的话结果还是传不出去:

    类似于:
    这个不行 sudo route delete -host 119.63.197.151 dev enp2s0
    但是这个行 sudo route delete -host 119.63.197.151 gw 172.16.6.5 dev enp2s0

    然而 4g 模块的网关是拨号后才定了,而且由于那个模块有问题经常重启,每次重启后虽然能自动获取 ip,但是网关就变了。

    请问有什么好的方法?
    ysc3839
        2
    ysc3839  
       2020-03-11 19:51:58 +08:00 via Android
    我只知道 OpenWrt 上面有个脚本叫 mwan3,可以配置不同目标 IP 走不同的接口,不需要手动指定网关地址,接口断开再连接也能工作。
    还有个办法是修改程序 A 的代码,绑定某个网络接口。
    SGTeam
        3
    SGTeam  
       2021-03-22 23:28:43 +08:00
    试试? ForceBindIP-将任何 Windows 应用程序绑定到特定界面

    ForceBindIP 是一个免费的 Windows 应用程序,它将自己注入到另一个应用程序中,并更改某些 Windows 套接字调用的方式,从而允许您强制另一个应用程序使用特定的网络接口 / IP 地址。如果您在具有多个接口的环境中,并且您的应用程序没有用于绑定到特定接口的此类选项,则此选项很有用。

    经过测试可与 ForceBindIP 配合使用的某些程序包括 DC ++,uTorrent,Quake II,Quake III,Diablo II,StarCraft,Internet Explorer,Mozilla Firefox,Google Earth,步兵,Real Player,Unreal Tournament 2004 (需要-i ),Outlook 2000 (需要-i )。无效的程序包括 GetRight (反调试器 /分叉技术),WinCVS (分叉 cvs.exe )

    您可以简单地创建快捷方式,使用 IP 地址和程序作为参数,使用 ForceBindIP 启动应用程序:
    uil330
        4
    uil330  
    OP
       2021-04-04 13:31:06 +08:00
    解决了,给大家一个思路:

    我是写了一个脚本,检测网卡是否有网线插入,如果插入后根据当前网段,在路由表里面添加指定 ip 走指定网卡的命令

    虽然不是最优解,但是因为够用了所以就这样子了

    如果有更好的方法欢迎共享
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2505 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 15:45 · PVG 23:45 · LAX 07:45 · JFK 10:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.