服务器多网口路由配置文件怎么设置?,网络配置怎么设置

服务器多网口路由配置的核心在于拆分策略路由表,用ip rule控制流量走向,而不是只改默认网关否则多网口同时在线必然打架。

很多运维第一次接触多网口服务器时,都以为把IP配上、网关填好就完事了,结果发现SSH连不上、内网通外网断、或者两个网口只有一个能干活,问题根源出在Linux默认只有一张main路由表,多网口都往里面写默认路由,内核不知道该把包交给谁,今天这篇文章就把配置文件怎么改、为什么这么改、踩坑点在哪一次说透。

教你用电脑设置双IP地址和静态路由,实现同时上外网和集团内网
加载中
教你用电脑设置双IP地址和静态路由,实现同时上外网和集团内网

服务器多网口路由配置文件怎么配

路由配置不是改/etc/network/interfaces或者NetworkManager里的IP就完事,核心在策略路由,策略路由让内核根据“来源IP”或“目标端口”等条件,选择不同的路由表,这套机制依赖三个配置文件:

  • /etc/iproute2/rt_tables:定义路由表编号和名称
  • /etc/network/interfaces(Debian/Ubuntu)或/etc/sysconfig/network-scripts/route-ethX(CentOS/RHEL)接口配置
  • 启动脚本或/etc/rc.local,负责把ip ruleip route命令在开机时执行

以双网口服务器为例,业务网口eth0接公网,eth1接内网,默认路由走eth0,内网段走eth1,理想状态下,从eth1进来的包必须从eth1回去,否则回包走了eth0,内网设备就收不到响应,这叫反向路径过滤问题,也是大多数多网口故障的元凶。

解决思路很简单:给每个网口建一张独立路由表,流量从哪个口进就从哪个口出,先把/etc/iproute2/rt_tables打开,自定义两张表:

100 eth0_table
200 eth1_table

然后给每张表填充路由条目:

ip route add default via 203.0.113.1 dev eth0 table eth0_table
ip route add 192.168.10.0/24 dev eth1 src 192.168.10.10 table eth1_table
ip route add default via 192.168.10.1 dev eth1 table eth1_table

接着添加策略规则:

ip rule add from 203.0.113.10 lookup eth0_table
ip rule add from 192.168.10.10 lookup eth1_table

最后刷新生效:

ip route flush cache

这套配置在命令行能跑通,但重启就丢了,后面细说持久化方案。

多网口服务器路由表配置步骤

搞清楚原理后,实操时按以下步骤走。

第一步:确认网卡命名和当前路由状态

ip addrip route show

服务器多网口路由配置文件怎么设置?,网络配置怎么设置

查看当前地址和路由表,注意看清网卡名,云服务器上通常是eth0eth1,物理机可能是enp3s0这种Predictable Network Interface命名,记住网卡名、IP、网关,接下来都用变量代入。

第二步:编辑rt_tables文件规划路由表

/etc/iproute2/rt_tables本身就是路由表的编号映射,系统预置了255(local)、254(main)、253(default),我们自定义从100以后开始加,这个文件全局生效,所有脚本都能引用表格名,比每次写裸编号可读性强很多。

第三步:卸载默认路由,避免路由冲突

这一步最常见的坑是:配好策略路由后发现不生效,原因是main表里的默认路由还在,策略路由的优先级低于main表,要把接口配置里的默认网关删掉,或者在使用NetworkManager时,把“自动连接”和“使用此连接作为默认路由”选项分开设置,在命令行中,先临时删除冲突路由:

ip route del default

然后按上文命令添加自定义路由并绑定规则。

第四步:持久化配置

Debian/Ubuntu系,/etc/network/interfaces里可以直接嵌套命令:

auto eth0
iface eth0 inet static
    address 203.0.113.10
    netmask 255.255.255.0
    gateway 203.0.113.1
    up ip route add default via 203.0.113.1 dev eth0 table eth0_table
    up ip rule add from 203.0.113.10 lookup eth0_table

如果使用Netplan(Ubuntu 18.04+),在/etc/netplan/xxx.yaml的对应接口下加routesrouting-policy段落:

network:
  ethernets:
    eth0:
      addresses: [203.0.113.10/24]
      routes:
        - to: default
          via: 203.0.113.1
          table: 100
      routing-policy:
        - from: 203.0.113.10
          table: 100

RHEL/CentOS系,/etc/sysconfig/network-scripts/route-eth0里写:

default via 203.0.113.1 dev eth0 table eth0_table

还需要在/etc/sysconfig/network-scripts/ifcfg-eth0里加一行DEFROUTE=no,防止NetworkManager自动在main表里写默认路由,然后把ip rule命令放到/etc/rc.d/rc.local并赋予执行权限。

第五步:验证策略是否生效

ip rule show查看规则,用ip route show table eth1_table,再test一下:

ping -I 192.168.10.10 192.168.10.1

加上-I参数指定源IP,能通就说明策略路由在起作用。

多网口配置常见故障排查

服务器多网口路由配置文件怎么设置?,网络配置怎么设置

配置完成后,业务侧连不通是常有的事,按以下顺序排查比瞎猜高效。

抓包看流量走向

在服务器上用tcpdump -i eth1 host 192.168.10.5确认请求是否到达eth1,如果arp能通但TCP握手没反应,八成是回包走了eth0,此时检查ip rule里from规则是否漏配了源地址,以及内核参数rp_filter是否开启并拦截了不对称路由。

sysctl -w net.ipv4.conf.all.rp_filter=0
sysctl -w net.ipv4.conf.eth0.rp_filter=0
sysctl -w net.ipv4.conf.eth1.rp_filter=0

检查默认路由优先级

多网口配置中最容易出问题的就是把业务网口和存储网口的默认路由混在一起,行业共识认为,存储网口和备份网口绝不应该配置默认网关,只配内网静态路由即可,如果两条默认路由同时存在于不同路由表,策略规则又覆盖不全,流量就会“迷路”。

防火墙与反向路径过滤

firewalldufw开启后,会iptables的rpfilter模块也可能拦包,遇到诡异问题可以临时iptables -t mangle -F清掉规则再测,生产环境别这么干,但排查时可以快速定位。

多网口配置与单网口区别

单网口简单是因为所有流量走同一张main表,默认路由只有一条,不存在选择问题,服务器多网卡路由配置的复杂度在于多一张表,多一套规则,多一层过滤,下面用表格说清楚:

对比维度 单网口 多网口
路由表数量 只有main表 需自定义2张以上表
默认路由 1条,全局唯一 每个网口可各1条,互不干扰
回包路径 天然对称 必须手动保证对称
故障域 网口挂了全断 可做冗余,但配置不当会脑裂
排查复杂度 低,route -n够用 高,需结合ip rule和rt_tables

多网口服务器怎么配置路由,本质上是在回答一个问题:数据包到达后,内核依据什么决定走哪张路由表,单网口不需要回答,多网口必须句句有回音。

服务器静态路由配置最佳实践

核心思路:按流量类型分表,按业务优先级排队,以下几条经验来自真实项目踩坑总结。

  • 管理口(带外网口)和业务口必须物理隔离,管理口路由不参与业务流量,用单独一张表如

    服务器多网口路由配置文件怎么设置?,网络配置怎么设置

    mgmt,只放管理网段路由,避免管理流量跟业务流量抢带宽。

  • 多网口做bond(链路聚合)时,不需要策略路由,bond接口对上层是单一逻辑网口,但如果bond下的物理网口连不同交换机,要确保swtich侧配置了对应聚合模式。
  • 如果服务器要同时访问多个内网网段,写明细路由比写default更安全。
ip route add 10.1.0.0/16 via 192.168.10.1 dev eth1 table eth1_tableip route add 10.2.0.0/16 via 192.168.20.1 dev eth2 table eth2_table

这样各网段互不干扰,流量完全隔离。

多网口路由性能调优

开启ip_forward并配合策略路由,可以让多网口服务器兼职软路由,但这要求路由表足够精确,否则容易把核心交换机该做的事揽到自己身上,导致CPU软中断飙升,多数情况下,网卡多队列(RSS)和CPU亲和性比路由表本身对转发性能影响更大,配置irqbalance服务,让每个网卡中断绑定不同CPU核心,转发吞吐能上涨相当一部分。

Q&A:服务器多网口路由配置常见问题

问题1:为什么配置了多网口后,内网和外网同时只能通一个?

因为两个网口的默认路由都写入了main表,后写入的会覆盖先前的,解决方案是用策略路由把两个网口拆到不同路由表,并分别添加ip rule指定来源IP的查询表。

问题2:用NetworkManager管理的系统,如何防止默认路由冲突?

nmcli connection show里查看连接名,对非主用网口执行nmcli connection modify "连接名" ipv4.never-default yes,这个配置让该网口不参与默认路由竞争,只保留显式添加的静态路由。

问题3:重启后ip rule配置丢失如何处理?

检查是否使用了netplan或NetworkManager的脚本钩子,Netplan直接声明routing-policy能在netplan apply时自动生效,传统ifupdown系统则在接口的up指令里写规则,最稳妥的兜底方案是把所有配置命令写入/etc/rc.local,确保在所有网络服务启动后执行,并在文件头部加#!/bin/bashexit 0

多网口静态路由配置不像加IP那样简单粗暴,但掌握策略路由后,网口再多也只是规则的叠加,生产环境变更前先在测试机跑一遍命令,路径通了再上生产,是运维最省钱的动作。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/584328.html

(0)
fms5.0服务器怎么配置?,服务器配置参数大全
上一篇 2026年8月20日 01:09
佛山建设网站公司哪家好,网站建设多少钱?
下一篇 2026年8月20日 01:10

相关推荐

  • 公司的网页创建

    在数字化营销日益精细化的今天,公司的网页创建已不再仅仅是展示品牌形象的静态窗口,而是企业获取流量、转化客户的核心枢纽,一个设计精美的网站若缺乏高性能的服务器支撑,其加载速度缓慢、并发处理能力差等问题将直接导致用户流失和搜索引擎排名下降,在构建企业官网时,选择合适的服务器方案是决定网站生死的关键一步,本文将基于真……

    2026年6月23日
    2200
  • Java技术书籍推荐有哪些?java入门到精通书籍推荐

    关于java技术的书在云计算与微服务架构日益普及的今天,Java 依然稳居企业级后端开发的首选语言,对于许多开发者而言,市面上浩如烟海的 Java 书籍往往存在“理论过剩、实战脱节”或“版本滞后”的问题,为了帮助读者在 2026 年构建真正具备生产环境竞争力的技术体系,我们选取了三本在业界口碑极佳、且紧密贴合当……

    2026年6月15日
    3100
  • 云计算数据库技术论文怎么写?数据库技术发展趋势

    2026年云计算数据库技术深度测评:高并发场景下的性能极限与成本优化在数字化转型的深水区,数据库不仅是数据的存储容器,更是业务逻辑的核心引擎,随着2026年云原生技术的成熟,传统的IaaS层数据库服务已无法满足微服务架构下对低延迟、高可用及弹性伸缩的极致追求,本文基于真实生产环境的压测数据,对当前主流的三款云数……

    2026年6月5日
    3900
  • Java和MySQL分库分表迁移到DDM怎么做?,有哪些坑?

    将MySQL分库分表迁移到DDM,核心采用全量加增量同步方案,通过DDM的自动分片、读写分离和全局序列功能替换传统手工分库分表架构,迁移过程分为评估、全量迁移、增量同步、切换四个阶段,可做到分钟级停机,为什么要将MySQL分库分表迁移到DDM传统分库分表方案在业务初期有效解决了单库瓶颈,但数据量增长后暴露出一系……

    2026年7月30日
    200
  • asp.net服务器控件怎么开发,asp.net服务器控件开发教程

    ASP.NET服务器控件开发的核心价值在于封装复杂的用户界面逻辑与交互行为,实现代码的高复用性与模块化,这是构建企业级Web应用的高效途径,通过将HTML标记、JavaScript脚本以及服务器端事件处理逻辑封装成一个独立的类库,开发者能够像使用标准HTML标签一样,通过简单的声明式代码调用复杂功能,极大降低了……

    2026年3月8日
    11400
  • Java和C开发效率哪个高?Java开发效率为何比C高

    在软件工程领域,编程语言的选择直接决定了项目的交付周期与维护成本,关于C语言与Java的开发效率对比,核心结论十分明确:Java在绝大多数企业级应用开发中,开发效率显著高于C语言,其优势主要体现在自动化内存管理、丰富的生态体系以及跨平台特性上;而C语言虽然在开发速度上不占优势,但在运行效率与底层控制力上拥有绝对……

    2026年3月14日
    11100
  • 公司建设网站流程是怎样的?企业建站需要哪些步骤

    在数字化转型的浪潮中,网站不仅是企业的数字名片,更是业务增长的核心引擎,许多企业在建设网站时往往重前端设计而轻后端架构,导致上线后出现加载缓慢、数据丢失或遭受攻击等严重问题,服务器的稳定性、安全性及扩展性直接决定了网站的生死存亡,为了帮助企业在2026年构建更稳健的数字基础设施,我们对市面上主流的云服务器产品进……

    2026年6月26日
    2500
  • asp.net的api接口开发怎么操作?asp.net api接口开发教程

    在当前数字化转型的浪潮中,构建高性能、安全且易于扩展的Web API是企业级应用开发的核心诉求,ASP.NET的API接口开发凭借其成熟的生态系统、卓越的性能表现以及跨平台能力,已成为构建现代RESTful服务的首选技术栈之一,核心结论在于:要构建一个专业的API接口,开发者不能仅停留在业务逻辑的实现上,更必须……

    2026年3月9日
    11900
  • 京东软件开发面试会问什么?求职必看真题解析

    京东软件开发的核心竞争力在于其应对超大规模电商场景的技术深度、工程化实践以及对业务高速迭代的支撑能力,这不仅仅是写代码,更是构建一个稳定、高效、可扩展、能支撑亿级用户并发访问的数字商业基础设施,要深入理解并实践京东级别的软件开发,需关注以下关键领域: 技术栈选型:稳健与创新的平衡京东技术栈以Java生态为主导……

    2026年2月11日
    14400
  • 如何实现基于随机游走的图匹配算法?,实时推荐算法有哪些?

    基于随机游走的图匹配算法通过模拟用户在关系图上的兴趣扩散路径,能够在数十毫秒内完成实时推荐匹配,成为当前推荐系统兼顾精准度与响应速度的核心方案,图匹配算法原理是什么?随机游走让推荐更实时图匹配算法本质是在用户和物品构成的二部图上寻找节点间的关联强度,随机游走作为其中一类方法,从指定用户节点出发,按转移概率随机选……

    2026年8月4日
    200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注