很多运维朋友,碰到CentOS、Ubuntu不同版本的网卡配置,总会混淆配置文件路径、命令和参数,甚至照搬旧版本方法踩坑。今天就把目前主流Linux操作系统各版本的网卡配置方法,一次性讲透、讲全,从基础配置到避坑技巧,新手也能直接照搬,老运维也能当作速查手册。
话不多说,干货直接上,建议收藏转发,避免后续配置网卡时手忙脚乱!
一、先明确2个核心前提(避免白忙活)
不管哪个Linux版本,配置网卡前,先做好这2步,能少踩很多坑,老运维都默认遵守这个习惯:
确认网卡名称:先用 ip link show 或 ip addr 命令查看系统识别的网卡(如eth0、ens33、enp0s3),后续所有配置都要和网卡名称一致,错一个字母都无效(新手最容易犯的错)。
备份原有配置:修改任何配置文件前,先备份(比如 cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak),一旦配置出错,能快速恢复,避免服务器失联。
补充:网卡配置分「临时配置」和「永久配置」,临时配置(如ip addr add)重启网卡/服务器后失效,适合测试;永久配置需修改对应配置文件,适合生产环境,下文重点讲永久配置。
二、主流Linux版本网卡配置方法
目前企业生产环境中,CentOS/RHEL系列(含Rocky Linux、AlmaLinux)和Ubuntu/Debian系列占比90%以上,其他版本暂不赘述,重点讲这两大系列的常用版本,步骤清晰,直接照搬即可。
(一)CentOS/RHEL系列(含Rocky Linux、AlmaLinux,最常用)
CentOS/RHEL系列是企业级服务器的首选,从CentOS 6到CentOS 8+,网卡配置有明显变化,尤其是CentOS 8取消了传统network服务,全面转向NetworkManager管理,新手容易混淆,逐一拆解:
- CentOS 6 / RHEL 6(老旧服务器常见,传统配置)
这个版本比较老旧,但很多机房的遗留服务器还在使用,配置逻辑简单,基于ifcfg配置文件,步骤如下:
找到配置文件(固定路径):/etc/sysconfig/network-scripts/ifcfg-网卡名(如ifcfg-eth0)。
编辑配置文件(用vi/vim编辑):vim /etc/sysconfig/network-scripts/ifcfg-eth0,添加/修改以下核心参数:
DEVICE=eth0 # 网卡名称,必须和ip addr查看的一致
BOOTPROTO=static # IP分配方式:static(静态IP)、dhcp(动态获取),生产环境优先静态
ONBOOT=yes # 开机自动激活网卡(最易忽略!设为no会导致开机网卡不启用,服务器失联)
IPADDR=10.0.0.100 # 静态IP地址,根据自己的网段设置
NETMASK=255.255.255.0 # 子网掩码,也可用PREFIX=24替代
GATEWAY=10.0.0.1 # 默认网关,和路由器/网关IP一致
DNS1=8.8.8.8 # 首选DNS,避免解析失败
DNS2=114.114.114.114 # 备用DNS,双重保障
重启网卡生效:service network restart(这是CentOS 6的专属重启命令)。
验证配置:用 ip addr 查看IP是否生效,用 ping 8.8.8.8 测试网络连通性。
避坑提醒:CentOS 6的网卡名称默认是eth0,若有多块网卡,会依次是eth1、eth2;若ONBOOT设为no,哪怕配置正确,重启服务器后网卡也会处于禁用状态,新手常踩这个坑!
CentOS 7是目前使用最广泛的版本,介于传统配置和新配置之间,支持两种配置方式,网卡命名改为ens33、enp0s3等可预测命名格式(不再是eth0),步骤如下:
找到配置文件(路径不变):/etc/sysconfig/network-scripts/ifcfg-网卡名(如ifcfg-ens33)。
TYPE=Ethernet # 网络类型,固定为Ethernet(以太网)
NAME=ens33 # 连接名称,可自定义,建议和网卡名一致
DEVICE=ens33 # 网卡名称,必须和实际一致
BOOTPROTO=static # IP分配方式,static/dhcp
ONBOOT=yes # 开机自动激活
IPADDR=192.168.1.100 # 静态IP
PREFIX=24 # 取代NETMASK的CIDR表示法,等价于255.255.255.0
GATEWAY=192.168.1.1 # 默认网关
DNS1=8.8.8.8
DNS2=114.114.114.114
IPV6_AUTOCONF=no # 关闭IPv6自动配置(无需IPv6可添加,减少干扰)
service network restart 或 systemctl restart network
- 补充:CentOS 7新增了两个实用工具,适合快速配置:
① nmcli(命令行神器):无需编辑配置文件,直接用命令配置,示例:
nmcli con add con-name static-ens33 ifname ens33 type ethernet \
ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 \
ipv4.dns "8.8.8.8 114.114.114.114" ipv4.method manual
② nmtui(文本图形化工具):输入 nmtui ,按提示用键盘操作,适合新手,无需记命令。
- CentOS 8 / RHEL 8+(新版本,NetworkManager统一管理)
CentOS 8及以上版本(含Rocky Linux、AlmaLinux),取消了传统network服务,全面转向nmcli命令配置,不再默认生成ifcfg配置文件,步骤如下(生产环境推荐):
查看网卡名称:ip addr(确认网卡名,如ens33)。
用nmcli命令三步配置(直接执行,无需编辑文件):
# 创建连接配置(con-name是连接名称,可自定义;ifname是网卡名)
nmcli con add con-name prod-ens33 ifname ens33 type ethernet
# 设置静态IP、网关、DNS(method manual表示静态配置)
nmcli con mod prod-ens33 ipv4.addresses '192.168.1.100/24'
nmcli con mod prod-ens33 ipv4.gateway '192.168.1.1'
nmcli con mod prod-ens33 ipv4.dns '8.8.8.8,114.114.114.114'
nmcli con mod prod-ens33 ipv4.method manual
# 激活配置(生效,无需重启服务器)
nmcli con up prod-ens33
验证配置:nmcli con show查看连接状态,ping 8.8.8.8 测试连通性。
紧急恢复技巧:若误操作导致断网,可直连服务器执行 nmcli con add type ethernet ifname ens33 ipv4.method auto,临时启用DHCP自动获取IP,快速恢复网络。
避坑提醒:CentOS 8不再支持service network restart命令,用该命令会报错,必须用nmcli命令操作;若需生成传统 ifcfg 文件,可手动创建,但不推荐。
注:国产系统麒麟V10,EulerOS,OpenEuler,龙蜥,凝思等都是基于Redhat系列开发,网卡配置与其对应版本配置方法大同小异。
(二)Ubuntu/Debian系列(云服务器、开发环境常用)
Ubuntu系列以简洁、易用著称,广泛用于云服务器(如阿里云、腾讯云)和开发环境,从Ubuntu 16.04到18.04+,配置文件和方式有颠覆性变化,重点讲常用版本:
- Ubuntu 16.04 / Debian 9及以前(老旧版本,interfaces配置)
这个版本的配置文件和CentOS 6差异较大,配置文件是interfaces,步骤如下:
找到配置文件(固定路径):/etc/network/interfaces。
编辑配置文件:vim /etc/network/interfaces,添加以下内容(原有内容可保留,新增网卡配置即可):
auto eth0 # 开机自动激活网卡
iface eth0 inet static # 静态IP配置(dhcp为动态获取)
address 192.168.1.100 # 静态IP
netmask 255.255.255.0 # 子网掩码
gateway 192.168.1.1 # 默认网关
dns-nameservers 8.8.8.8 114.114.114.114 # 多个DNS用空格分隔
重启网卡生效:sudo systemctl restart networking。
验证配置:ip addr 查看IP,ping www.baidu.com 测试解析和连通性。
- Ubuntu 18.04+ / Debian 10+(新版本,netplan 配置)
Ubuntu 18.04及以上版本(目前最常用,如Ubuntu 20.04、22.04 LTS),放弃了interfaces文件,采用netplan工具,配置文件为YAML格式,这是新手最容易踩坑的地方(YAML格式对缩进要求极高),步骤如下:
找到配置文件(路径固定,文件名可能不同):/etc/netplan/*.yaml(用 ls /etc/netplan/ 查看具体文件名)。
编辑配置文件(重点注意:缩进必须用空格,禁止用Tab键;冒号后必须有空格,否则配置无效):
network:
version: 2 # 固定版本号,必须是2,不能改
renderer: networkd # 后台服务,固定为networkd(云服务器默认)
ethernets:
ens33: # 网卡名称,和ip addr查看的一致
dhcp4: no # 关闭DHCPv4,启用静态IP
addresses: # 静态IP,CIDR格式(IP/子网掩码位数)
- 192.168.1.100/24
gateway4: 192.168.1.1 # IPv4网关
nameservers: # DNS配置
addresses:
- 8.8.8.8
- 114.114.114.114
应用配置生效(无需重启服务器,无中断服务,推荐):sudo netplan apply。
调试技巧:首次配置推荐用调试模式,避免格式错误导致配置失效,命令:sudo netplan --debug apply,若有错误,会提示具体问题(如缩进错误、参数错误)。
避坑提醒:YAML格式是Ubuntu 18.04+配置网卡的核心,曾见过某企业因缩进错误导致200台服务器断网,务必注意——缩进用2个或4个空格(统一即可),Tab键会直接导致配置失效;另外,version必须设为2,不能写成其他数字。
注:统信UOS,深度Deepin是基于debian系列开发,网卡配置与其对应版本配置方法大同小异。
三、运维实战必备:通用技巧+故障排查(重中之重)
不管哪个版本,配置网卡后难免会遇到网络不通的问题,分享几个实战中常用的通用技巧和故障排查方法,能快速定位问题、解决问题,老运维都靠这些技巧高效排障:
通用实用技巧(救急+常用场景)
- 临时配置(救急必备):若只是临时测试网络,无需修改配置文件,执行以下命令(重启网卡/服务器后失效):
# 设置临时IP/掩码
sudo ip addr add 192.168.1.100/24 dev ens33
# 启用网卡
sudo ip link set ens33 up
# 添加临时默认网关
sudo ip route add default via 192.168.1.1
# 临时设置DNS(重启失效)
echo"nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
- 多IP绑定(单网卡多地址):生产环境中常需要给单网卡绑定多个IP,两种系列的配置方法如下:
① CentOS系列:创建配置文件ifcfg-ens33:1(冒号后加数字,代表子接口),添加以下内容:
DEVICE=ens33:1
IPADDR=192.168.1.101
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=static
② Ubuntu系列(netplan配置):在addresses下直接追加IP,示例:
addresses:
- 192.168.1.100/24
- 192.168.1.101/24
网络连通性诊断黄金命令(排障必备)
配置完成后,若网络不通,按以下命令逐一排查,能快速定位问题(从底层到上层,逻辑清晰):
ping 8.8.8.8 -c 4:基础连通性测试,能ping通说明网络可达,ping不通则排查网关、路由。
ip route show:查看路由表,重点检查默认网关是否存在,缺失则重新配置网关。
nslookup www.baidu.com:DNS解析验证,若解析失败,检查DNS配置是否正确。
netstat -tuln:查看监听端口,确认网络服务是否正常启动。
traceroute 114.114.114.114:路由追踪,排查网络阻断点(如防火墙、交换机限制)。
四、总结
以上就是目前主流Linux操作系统各版本的网卡配置方法,涵盖了CentOS/RHEL系列(6/7/8+)、Ubuntu/Debian系列(16.04/18.04+)。
其实网卡配置不难,核心就是「找对配置文件/命令、写对参数、做好备份、注意版本差异」,多操作几次,就能熟练掌握。毕竟做运维,实战才是最好的老师,遇到问题不用慌,按文中的排障技巧逐一排查,基本都能解决。
最后,建议大家收藏这篇文章,后续配置网卡时,不用再到处找教程,直接打开就能用;也可以转发给身边的运维同事,一起少踩坑、提高工作效率~
关注我,后续分享更多运维干货、实战技巧,避开各种运维坑,高效干活~