You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将指定源IP的流量路由至跨子网的远程网关?

如何将指定源IP的流量路由至跨子网的远程网关?

没问题,这个需求完全可以通过策略路由来实现,结合你已经打通WireGuard站点到站点连接的现状,我给你分两种常见场景讲解操作步骤,你可以根据实际情况选择:

场景一:在本地网关(192.168.0.20)上配置(推荐)

这种方式不需要修改目标主机(192.168.0.4)的设置,所有规则都集中在网关上管理,更适合多设备统一管控的场景:

  1. 创建自定义路由表
    先在本地网关的路由表配置文件里新增一个专门的表,用来处理192.168.0.4的流量:

    echo "100 remotegw" >> /etc/iproute2/rt_tables
    

    这里100是路由表的编号(只要不冲突就行),remotegw是自定义的表名,方便识别。

  2. 给自定义表添加默认路由
    让这个路由表的所有默认流量都指向远程网关192.168.2.254,因为你的WireGuard已经打通,所以这个地址是可达的:

    ip route add default via 192.168.2.254 table remotegw
    
  3. 添加策略路由规则
    指定源IP为192.168.0.4的流量,优先使用我们刚创建的remotegw路由表:

    ip rule add from 192.168.0.4 lookup remotegw priority 100
    

    priority 100表示这条规则的优先级较高(数值越小优先级越高),会先于默认路由规则生效。

  4. 确保远程网关的返回流量可达
    因为你已经确认两边LAN能互访,远程网关(192.168.2.254)应该已经有到192.168.0.0/24的路由了,如果没有的话,需要在远程网关添加:

    ip route add 192.168.0.0/24 via <WireGuard接口的本地IP>
    

    比如WireGuard接口在远程侧的IP是10.0.0.2,就填这个地址。

  5. 远程网关的SNAT配置(可选但必要)
    如果要让192.168.0.4能通过远程网关访问互联网,需要在远程网关配置SNAT,把源IP转换成远程网关的公网IP:

    iptables -t nat -A POSTROUTING -s 192.168.0.4 -o <远程网关的互联网接口> -j MASQUERADE
    

    把<远程网关的互联网接口>换成实际的接口名,比如eth0、ppp0等。

场景二:直接在目标主机(192.168.0.4)上配置

如果你的目标主机是Linux系统,也可以直接在它上面做配置,不需要动网关:

  1. 创建自定义路由表
    和网关操作一样,先新增路由表:

    echo "100 remotegw" >> /etc/iproute2/rt_tables
    
  2. 添加到远程网关的路由
    确保主机能先到达192.168.2.254(如果已经能互访,这一步可能已经存在):

    ip route add 192.168.2.0/24 via 192.168.0.20
    
  3. 给自定义表添加默认路由

    ip route add default via 192.168.2.254 table remotegw
    
  4. 添加策略路由规则

    ip rule add from 192.168.0.4 lookup remotegw priority 100
    

永久化配置(重要)

上面的命令都是临时生效的,重启后会丢失,需要根据你的系统类型保存配置:

  • Debian/Ubuntu:可以把路由和规则写到/etc/network/interfaces里,或者用netplan配置;
  • RHEL/CentOS:在/etc/sysconfig/network-scripts/目录下创建route-<接口名>和rule-<接口名>文件,写入对应的规则。

备注:内容来源于stack exchange,提问作者sndrvanes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 11:20:29