[Linux]双网卡 CentOS 系统中指定网络请求走特定网卡的配置方法

发布于:2025-08-20 ⋅ 阅读:(21) ⋅ 点赞:(0)

前言

在实际的服务器运维工作中,经常会遇到双网卡的 CentOS 系统需要指定某个域名或 IP 通过特定网卡进行网络请求的情况。本文将详细介绍这一过程的具体操作步骤,包括相关配置、问题排查及注意事项。

一、核心配置思路

当需要让某个特定域名(如example.domain.com)的网络请求通过指定网卡传输时,核心思路是将该域名解析后的 IP 地址与目标网卡进行绑定,通过配置路由规则实现流量的定向传输。这一过程主要涉及目标网卡信息确认、域名 IP 解析、路由规则配置及验证等环节。

二、具体操作步骤

(一)前提准备工作

  1. 确认目标网卡信息

首先需要明确系统中各网卡的名称及对应 IP 信息,可通过以下命令查看:

ip addr

假设通过该命令查找到目标网卡为eth1,其 IP 地址为192.168.3.10/24(虚构 IP)。

同时,查看系统现有路由情况(包含默认网关信息):

ip route show
  1. 获取域名对应的 IP 地址

使用nslookupdig命令解析目标域名的 IP 地址,例如:

nslookup example.domain.com

假设解析结果为10.20.30.40(虚构 IP),若有多个 IP 地址,需全部记录。

(二)临时路由配置

通过ip route命令为域名解析出的 IP 地址添加临时路由,指定通过目标网卡eth1访问,命令格式如下:

ip route add 10.20.30.40/32 via 192.168.3.1 dev eth1

其中,10.20.30.40/32表示仅针对该单个 IP;via 192.168.3.1指定目标网卡的网关;dev eth1强制通过eth1网卡发送流量。

若域名对应多个 IP,需逐一添加路由,例如:

ip route add 10.20.30.41/32 via 192.168.3.1 dev eth1

ip route add 10.20.30.42/32 via 192.168.3.1 dev eth1

需要注意的是,临时路由在系统重启后会失效。

(三)持久化路由配置

为确保路由配置在系统重启后仍能生效,需进行持久化配置。在 CentOS 系统中,可通过网卡的路由配置文件实现。

  1. 创建或编辑目标网卡的路由文件,文件名格式为route-[网卡名称],例如eth1的路由文件为/etc/sysconfig/network-scripts/route-eth1,命令如下:
vi /etc/sysconfig/network-scripts/route-eth1
  1. 在该文件中添加与临时路由对应的路由规则,格式如下:
10.20.30.40/32 via 192.168.3.1 dev eth1

10.20.30.41/32 via 192.168.3.1 dev eth1
  1. 保存文件后,重启网络服务使配置生效。在 CentOS 7 及更早版本中,可使用:
systemctl restart network

而在 CentOS 8 及以上版本,network.service已被废弃,需使用NetworkManager服务:

systemctl restart NetworkManager

也可重启特定网卡:

ifdown eth1 && ifup eth1

(四)配置验证

  1. 查看路由是否添加成功,使用命令:
ip route show | grep 10.20.30.40

若输出包含via 192.168.3.1 dev eth1,则说明路由配置成功。

  1. 测试流量是否通过目标网卡,可使用curltraceroute命令:
curl -v example.domain.com 2>&1 | grep "Connected to"

traceroute example.domain.com

Connected to后的 IP 对应目标网卡的网段,或traceroute首跳为目标网卡网关,则配置生效。

三、相关问题及解决方法

(一)查看指定网卡网关

若不确定目标网卡的网关信息,可通过以下方法查看:

  1. 使用ip route命令,先找到目标网卡名称,再查看对应网关:
ip route show | grep "dev eth1"

若输出类似default via 192.168.3.1 dev eth1,则192.168.3.1即为该网卡的网关。

  1. 查看网卡配置文件,进入网络配置文件目录:
cd /etc/sysconfig/network-scripts/

找到对应网卡的配置文件(如ifcfg-eth1),查看其中的网关配置:

cat ifcfg-eth1

若文件中存在GATEWAY=192.168.3.1,则等号后的值即为网关。

(二)删除路由配置

若需要删除已添加的路由,可使用ip route del命令:

ip route del 10.20.30.40/32 via 192.168.3.1 dev eth1

同时,若该路由已写入持久化配置文件,需手动编辑文件删除对应的行,并重启网络服务。

(三)路由配置文件相关

/etc/sysconfig/network-scripts目录下的route-<网卡名>文件是手动创建的持久化路由配置文件,系统默认不会自动生成。只有当为某块网卡配置过持久化路由时,对应的文件才会存在。若需要为eth1配置持久化路由,可手动创建route-eth1文件并添加相应规则。


原创内容,转发请注明。


网站公告

今日签到

点亮在社区的每一天
去签到