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

服务器多网口路由配置的核心在于拆分策略路由表,用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://test.idctop.com/article/584328.html

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

相关推荐

  • ios开发复制怎么实现?ios复制功能代码示例

    在iOS应用开发中,实现数据复制与粘贴功能看似简单,实则关乎用户体验的流畅度与数据的安全性,核心结论在于:构建一个健壮的复制粘贴机制,必须脱离简单的控件依赖,转而采用UIPasteboard为核心,配合通用类型标识符(UTI)与异步编程模式,才能确保数据在不同应用间无缝流转且不阻塞主线程, 这不仅是功能实现的要……

    2026年3月6日
    13400
  • 广州移动开发人员待遇好吗?广州移动程序员薪资福利揭秘

    2026年广州移动开发人员整体待遇处于华南通信及科技行业第一梯队,应届生起薪突破12K,3-5年经验者年薪普遍在25W-45W之间,核心技术专家及架构师年薪可超60W,且伴随完善的国企福利与职业双通道保障,薪酬全景:2026年广州移动开发岗真实收入结构基础薪资与职级映射依据2026年通信与互联网融合领域的最新薪……

    2026年4月29日
    6100
  • 香港VPS测评,实测体验与数据对比,香港VPS哪家好,香港VPS推荐

    2026 年香港 VPS 测评结论:对于追求低延迟与高合规性的跨境电商及游戏业务,推荐选择具备独立 IP 且承诺 99.9% SLA 的 CN2 GIA 线路方案,其综合性价比在香港 VPS 价格区间内处于最优梯队,2026 年香港节点网络架构与性能实测2026 年,随着 5G-A 商用普及及海底光缆带宽扩容……

    2026年5月11日
    5200
  • 中小企业云会计数据库如何选型?云会计数据库选型指南

    在数字化转型的浪潮中,中小企业对财务数据的安全性、实时性与成本控制的敏感度达到了前所未有的高度,云会计数据库不再仅仅是存储凭证的电子账本,而是企业核心资产的管理中枢,针对这一痛点,我们选取了市场上具有代表性的三款主流云数据库解决方案(涵盖公有云厂商基础版、垂直领域SaaS数据库及混合云架构方案)进行深度实测,本……

    程序开发 2026年6月12日
    3400
  • UQIDC月付25元VPS好用吗?香港直连美国三网AS9929评测

    UQIDC凭借25元/月的超低门槛、香港直连与美三网AS9929线路优势,成为个人开发者及小型企业构建低成本、高稳定海外节点的首选方案,在云计算市场日益内卷的当下,寻找一款既便宜又稳定的VPS并非易事,许多用户常被“低价陷阱”困扰,要么带宽虚标,要么线路延迟极高,UQIDC推出的这款配置,恰好切中了中小规模业务……

    2026年6月29日
    2400
  • ajax动态加载数据库报错怎么解决?前端ajax请求数据库接口

    `;container.appendChild(div);});currentPage++;}).catch(error => console.error(‘加载失败:’, error));<h3>后端接口设计规范</h3>后端接口是数据源,其设计质量直接决定了前端的加载效率,&l……

    2026年6月3日
    4300
  • Android如何进行纯C开发,Android NDK开发实战教程

    Android 纯C/C++开发代表了移动应用工程中追求极致性能与底层硬件控制力的最高阶技术路径,通过利用Android NDK(Native Development Kit),开发者能够绕过Java/Kotlin运行时的抽象层,直接编译为机器码运行,从而显著提升计算密集型任务的执行效率,并为核心算法提供更高的……

    2026年2月23日
    13300
  • AI大数据深度学习钱景如何?AI大数据深度学习就业薪资高吗?

    AI大数据深度学习已从单纯的技术概念演变为推动全球经济增长的核心引擎,其商业价值正处于爆发式增长的前夜,核心结论在于:这一领域的“钱景”不再局限于算法模型的售卖,而是转向了与传统产业深度融合所带来的全链路价值重塑, 企业若想在这一波浪潮中获利,必须跨越技术落地的鸿沟,构建数据闭环,实现从“单点突破”到“系统赋能……

    2026年3月2日
    14000
  • ASP.NET三层架构如何实现多条件检索? | 搜索功能开发教程

    <p>ASP.NET三层架构通过清晰分离表示层、业务逻辑层和数据访问层,高效实现多条件检索,核心在于动态构建查询条件并安全传递至数据库,避免SQL注入,同时保证性能,以下是具体实现方案:</p><h3>一、架构分层与职责</h3><p><stro……

    2026年2月8日
    11400
  • 个人网站转广告费怎么操作?网站广告收益怎么提现

    在数字化转型的浪潮中,服务器不仅是承载网站运行的物理基础,更是决定用户体验、搜索引擎排名以及业务稳定性的核心命脉,对于个人站长、中小企业及独立开发者而言,如何在有限的预算内获取高性能、高稳定性的服务器资源,是每一位技术决策者必须直面的挑战,本次测评将基于实际部署场景,深入剖析当前主流云服务商的产品特性,并结合2……

    2026年7月5日
    3200

发表回复

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