一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

如何配置 Linux 本地路由表:达成内外网流量分流处理

时间:2026-07-26 08:38:54 编辑:袖梨 来源:一聚教程网

配置Linux内外网分流需仅设一个外网默认网关,内网流量通过静态或策略路由明确指定出口;双网卡中仅eth0配GATEWAY,eth1不配;内网段如10.0.0.0/8须用ip route或配置文件添加直连路由;验证时应仅有一条default路由且分测通断;进阶可用策略路由按源IP分流。

配置 Linux 本地路由表实现内外网分流,关键不是堆叠多条默认路由,而是让“外网走外网、内网走内网”各司其职。核心是:只设一个默认网关(给外网),内网流量通过静态路由或策略路由明确指定出口,避免冲突。

✅ 基础双网卡分工:网关只配一个

外网网卡(如 eth0):配置 IP、子网掩码、默认网关 和 DNS。这是唯一能访问互联网的出口。

内网网卡(如 eth1):仅配置 IP 和子网掩码,不填 gateway 字段。若误配内网网关,系统会生成第二条默认路由,导致外网失联。

示例(CentOS):

/etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=192.168.1.1

/etc/sysconfig/network-scripts/ifcfg-eth1
# 不写 GATEWAY 行

✅ 内网流量定向:用静态路由或策略路由

内网网段(如 10.0.0.0/8)不能靠默认网关转发,需显式告诉系统“该走哪张网卡”:

  • 临时生效:运行 ip route add 10.0.0.0/8 dev eth1
  • 永久生效(CentOS):在 /etc/sysconfig/network-scripts/route-eth1 中写入:
    10.0.0.0/8 dev eth1
  • 永久生效(Ubuntu/Debian):在 Netplan 配置中添加 routes 条目,或通过 systemd-networkd 的 [Route] 段定义

✅ 验证与排障要点

执行 ip route show,应看到:

  • 一条 default via 192.168.1.1 dev eth0(外网出口)
  • 一条 10.0.0.0/8 dev eth1 scope link(内网直连)
  • 没有第二条 default 路由

再分别测试:

  • ping -I eth0 8.8.8.8(确认外网通)
  • ping -I eth1 10.0.0.1(确认内网通)
  • 检查防火墙:若用 firewalld,将 eth1 加入 trusted 区域,或放行对应端口

✅ 进阶需求:按源IP或业务分流(策略路由)

当需要更精细控制(如某服务固定走内网、某用户走专线),就需策略路由:

  • 编辑 /etc/iproute2/rt_tables,添加自定义表名,如:
    200 intranet
  • 为该表添加路由:
    ip route add 10.0.0.0/8 dev eth1 table intranet
    ip route add default via 10.0.0.1 table intranet
  • 添加规则,让特定源IP查此表:
    ip rule add from 192.168.10.100/32 table intranet

注意:策略路由需提前启用 IP 转发并关闭反向路径过滤(net.ipv4.ip_forward = 1rp_filter = 0)。

热门栏目