在Linux系统中,默认网卡是指系统用于访问外部网络(非本地局域网)的主要网络接口,其与默认网关直接关联——当目标地址不在直连网络范围内时,数据包会被自动发往默认网关,再由网关进行转发,正确指定默认网卡对多网卡环境(如服务器双网卡、双WAN口路由、虚拟机多网卡)至关重要,可确保网络流量按预期路径传输,避免路由冲突或网络中断,本文将结合不同Linux发行版和配置工具,详细说明指定默认网卡的方法。

默认网卡与默认网关的关系
默认网卡的实质是“关联默认路由的网卡”,Linux系统的路由表中,默认路由(0.0.0/0或:/0)指向网关IP,而该网关IP必须位于某个网卡的直连网络中,指定默认网卡”即通过配置使系统将默认路由与目标网卡绑定,常见场景包括:
- 服务器通过内网网卡管理、外网网卡通信,需指定外网为默认网卡;
- 虚拟机通过NAT网卡和桥接网卡共存,需指定桥接网卡为默认网卡以访问外部网络;
- 双WAN口路由需手动指定主用WAN口为默认网卡。
指定默认网卡的方法
不同Linux发行版使用不同的网络管理工具(如传统的ifcfg、netplan、NetworkManager等),配置方式略有差异,但核心逻辑均为“配置默认路由到目标网卡”,以下是主流方法的详细步骤:
传统ifcfg文件方式(RHEL/CentOS 7及之前版本)
在基于Red Hat的系统中,网络接口配置文件位于/etc/sysconfig/network-scripts/,文件名格式为ifcfg-<网卡名>(如ifcfg-eth0)。
关键参数说明:
GATEWAY:默认网关IP(必须与网卡IP在同一网段);DEFROUTE:是否将该网卡设为默认路由(yes为是,no为否,默认yes);PEERDNS:是否将GATEWAY作为DNS服务器(需配合/etc/resolv.conf使用)。
操作步骤:
(1)编辑目标网卡配置文件,例如设置eth0为默认网卡:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
(2)添加或修改以下参数:
TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 # 默认网关IP DEFROUTE=yes # 关键:启用默认路由 ONBOOT=yes
(3)若存在其他网卡(如eth1),需将其DEFROUTE设为no,避免多默认路由冲突:
vim /etc/sysconfig/network-scripts/ifcfg-eth1 DEFROUTE=no
(4)重启网络服务使配置生效:
systemctl restart network
netplan配置方式(Ubuntu 18.04+及Debian 10+)
Ubuntu 18.04及后续版本默认使用netplan,通过YAML配置文件管理网络,配置文件通常位于/etc/netplan/(如01-netcfg.yaml或50-cloud-init.yaml)。
关键参数说明:

routes:定义静态路由,to: 0.0.0.0/0表示默认路由;gateway4/gateway6:IPv4/IPv6网关IP;set-name:网卡名称(可选,通常通过match自动识别)。
操作步骤:
(1)编辑netplan配置文件,例如设置enp0s3为默认网卡:
vim /etc/netplan/01-netcfg.yaml
(2)添加以下配置(示例为静态IP场景):
network:
version: 2
ethernets:
enp0s3: # 目标网卡名
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1 # 默认网关
routes:
- to: 0.0.0.0/0 # 默认路由
via: 192.168.1.1
metric: 100 # 路由优先级(值越小优先级越高)
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
(3)应用配置(无需重启,即时生效):
netplan apply
NetworkManager命令行工具(nmcli)
NetworkManager是Fedora、Ubuntu Desktop等发行版的默认网络管理工具,可通过nmcli命令行快速配置默认路由。
关键参数说明:
ipv4.gateway/ipv6.gateway:设置网关;ipv4.never-default:若设为yes,则该网卡不参与默认路由(多网卡时避免冲突);connection.autoconnect:是否自动连接(默认yes)。
操作步骤:
(1)查看当前网络连接名称(如Wired connection 1):
nmcli connection show
(2)修改目标连接的网关和默认路由设置(示例为有线连接eth0):
nmcli connection modify "Wired connection 1" ipv4.gateway 192.168.1.1 ipv4.never-default no # 关键:允许默认路由
(3)若存在其他连接,需将其ipv4.never-default设为yes(避免多默认路由):
nmcli connection modify "Wired connection 2" ipv4.never-default yes
(4)激活连接使配置生效:
nmcli connection up "Wired connection 1"
iproute2临时配置(无需重启,重启后失效)
若仅需临时指定默认网卡(如测试场景),可使用iproute2工具的ip route命令,此方法不会修改配置文件,重启系统后失效。

操作步骤:
(1)添加默认路由到目标网卡(示例:网关168.1.1,网卡eth0):
sudo ip route add default via 192.168.1.1 dev eth0
(2)验证默认路由是否生效:
ip route | grep default # 输出示例:default via 192.168.1.1 dev eth0
(3)若需删除临时默认路由:
sudo ip route del default via 192.168.1.1 dev eth0
不同配置方式对比
| 配置方式 | 适用发行版 | 配置文件/命令 | 重启要求 | 永久性 |
|---|---|---|---|---|
ifcfg文件 |
RHEL/CentOS 7及之前 | /etc/sysconfig/network-scripts/ifcfg-* |
需重启网络服务 | 是 |
netplan |
Ubuntu 18.04+、Debian 10+ | /etc/netplan/*.yaml |
无(netplan apply) |
是 |
nmcli命令 |
Fedora、Ubuntu Desktop等 | nmcli connection modify |
需激活连接 | 是 |
iproute2临时配置 |
所有Linux发行版 | ip route add/del default |
无(重启失效) | 否 |
注意事项
- 避免多默认路由冲突:系统仅支持一个
0.0.0/0默认路由,若多个网卡均配置DEFROUTE=yes或网关,会导致路由冲突,引发网络中断。 - 网关可达性验证:配置后需使用
ping <网关IP>验证网关是否可达(如ping 192.168.1.1),若不可达,默认路由将失效。 - DNS配置关联:默认网卡的DNS服务器通常通过
PEERDNS(ifcfg)或nameservers(netplan)配置,若无法解析域名,需检查/etc/resolv.conf是否正确生成。
相关问答FAQs
Q1:修改默认网关后无法上网,如何排查?
A:排查步骤如下:
(1)检查默认路由是否存在:ip route | grep default,确认目标网关和网卡;
(2)验证网关可达性:ping <网关IP>(如ping 192.168.1.1),若不通,检查网关设备或网线;
(3)检查网卡状态:ip link show <网卡名>,确认UP状态;
(4)检查防火墙规则:sudo firewall-cmd --list-all,若阻止ICMP或出站流量,需放行;
(5)检查DNS解析:ping 8.8.8.8(测试IP连通性),若通但无法解析域名,检查/etc/resolv.conf中的DNS服务器配置。
Q2:如何查看当前系统的默认网卡和路由信息?
A:可通过以下命令查看:
(1)默认网关及对应网卡:
ip route show default # 输出示例:default via 192.168.1.1 dev eth0 proto dhcp metric 100 # quot;dev eth0"即为默认网卡
(2)所有路由表信息:
ip route show # 查看直连路由、默认路由、静态路由等
(3)活跃网络连接及默认路由状态(NetworkManager环境):
nmcli connection show --active | grep -E "eth|ens|enp" | awk '{print $1, $4}'
# 结合`nmcli connection show <连接名> | grep "ipv4.gateway"`确认网关配置
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/30839.html