在Linux系统中查看网卡配置,最直接有效的命令是ip addr,搭配ip link查看物理状态,而永久配置则写在/etc/sysconfig/network-scripts/目录下的ifcfg文件中。

linux查看网卡配置命令有哪些
很多人刚接触Linux时,第一反应是敲ifconfig,这个命令确实经典,但近年来多数主流发行版(如CentOS 8+、Ubuntu 18.04+)默认不再预装它,需要手动安装net-tools工具包,更推荐直接用ip命令,它是内核自带的网络管理工具,功能更全,输出也更清晰。
用ip命令快速查看网卡信息
ip addr是查看网卡配置的核心命令,它一次能告诉你网卡名称、MAC地址、IPv4/IPv6地址、子网掩码、广播地址以及网卡启停状态,输入后你会看到类似下面的输出:
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:7a:3b:4d brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe7a:3b4d/64 scope link
注意看state UP,这表示网卡处于激活状态,如果你看到state DOWN,说明网卡没启用,IP地址就在inet那一行,/24代表子网掩码是255.255.255.0。
用ifconfig命令查看(老牌工具)
如果你所在的环境是老系统,或者已经装了net-tools,那ifconfig -a也能查看所有网卡信息,包括未激活的网卡,它的输出格式更接近人类阅读习惯,比如inet addr、Bcast、Mask这些字段一目了然,但要注意,ifconfig对IP地址的显示在某些新版本里改成了和ip addr一样的格式,别认错了。
查看网卡速率和连接状态
ip addr只显示配置层面的信息,想知道网卡实际协商速率(比如是不是跑在千兆),得用ethtool命令:
ethtool ens33
输出结果里的Speed: 1000Mb/s就是当前速率,如果显示Speed: Unknown!,多半是网卡没插网线或者驱动有问题。ethtool -i ens33可以查看驱动版本和固件版本,排查兼容性问题时很管用。
linux怎么查看网卡配置信息
如果你想知道更细节的配置,比如网卡是否支持巨型帧、环回缓冲区大小、队列数量这些,光靠ip addr就不够了,这时候需要结合多个命令交叉验证。
查看所有网卡名称和类型
ls /sys/class/net/这个路径下,每个目录名就是一个网卡名,你可以通过cat /sys/class/net/ens33/type查看网卡类型(1代表以太网),还有一种常见做法是dmesg | grep eth,能看到内核启动时识别到的网卡型号和驱动加载日志。
查看路由表确认默认网关
网卡配置不只是IP地址,默认网关也是核心内容,用ip route show查看路由表,默认网关会以default via 192.168.1.1 dev ens33的形式出现,如果你改了IP忘了改网关,数据包就出不了内网,这里有个小技巧:当电脑上有多块网卡时,ip route get 8.8.8.8能直接告诉你访问外网走的哪块网卡,排查双网卡路由混乱很好用。

查看DNS配置
DNS不属于网卡配置文件,但在排查“能ping通IP但打不开网页”的问题时,必须检查/etc/resolv.conf,里面的nameserver字段就是当前生效的DNS服务器,如果你用的是NetworkManager管理网络,它会自动覆盖这个文件,手动修改前最好先确认网络管理工具的类型。
linux查看网卡配置文件的详细方法
前面讲的是实时配置,重启网络服务或重启系统后就失效了。要想永久生效,必须改配置文件,不同Linux发行版的配置文件路径差异较大,别搞混了。
RedHat系列:/etc/sysconfig/network-scripts/
CentOS、Rocky Linux、Fedora这类系统的网卡配置文件叫ifcfg-网卡名,比如ifcfg-ens33,用cat /etc/sysconfig/network-scripts/ifcfg-ens33类似这样:
TYPE=Ethernet BOOTPROTO=static NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=223.5.5.5
关键字段解释一下:BOOTPROTO=static表示静态IP,如果是dhcp则自动获取地址。ONBOOT=yes决定网卡是否随系统启动,这是新手最容易翻车的地方配置写对了但忘了改ONBOOT,重启后网卡还是不工作。
Debian/Ubuntu系列:/etc/network/interfaces
Debian系的配置逻辑不一样,所有网卡都写在同一个文件里,查看方式:
cat /etc/network/interfaces
新版Ubuntu(18.04以后)默认用Netplan,配置文件在/etc/netplan/.yaml,这个格式用缩进表示层级,看的时候注意别漏了冒号,如果改了Netplan配置,必须执行sudo netplan apply才生效,这是很多人会忘记的一步。
用nmcli查看网络管理器配置
如果你的系统装了NetworkManager,nmcli connection show能列出所有连接配置,nmcli device status则显示设备状态,这套工具的好处是图形化的NetworkManager和命令行操作是联动的,你在桌面环境改的网络设置,用nmcli能查得明明白白。
实战场景:网卡配置查不出问题怎么办
光会读命令还不够,得会分析输出,这里说几个高频故障场景,对号入座就能省不少时间。
网卡明明配置了IP却ping不通
先确认IP有没有生效:ip addr看有没有inet字段,如果有IP但ping不通网关,多半是路由表的问题,检查ip route,还有一种情况,网卡配置文件里写了IPADDR,但NetworkManager接管了网络,导致静态配置没被加载,这时候要么停用NetworkManager,要么把配置迁移到nmcli里。

ifconfig显示网卡没有UP
输出里看到state DOWN,使用sudo ip link set ens33 up启用它,如果执行完还是DOWN,那就要检查物理连接了网线没插好、交换机端口关闭、网卡硬件故障都可能,行业内比较常用的排查顺序是:先看网卡灯亮不亮,再ethtool ens33看有没有连接到链路。
配置文件改了不生效
改完ifcfg-ens33后,运行systemctl restart network重启网络服务(CentOS/RHEL系统),或者systemctl restart NetworkManager(如果用的是NetworkManager),推荐用nmcli connection reload再nmcli connection up ens33,这比暴力重启整个服务更优雅,也不会让SSH连接突然断开,如果重启后配置被还原,大概率是有其他服务(比如cloud-init)在启动时覆盖了配置文件。
掌握查看逻辑比记住命令更重要
linux查看网卡配置的思路总结起来就三步:先用ip addr看实时状态,再用cat看配置文件确认永久设置,最后用ethtool和ip route验证硬件层和路由层,这套组合拳打下来,绝大多数网络配置问题都能定位到原因。
相关Q&A:linux查看网卡配置常见问题解答
问:为什么我用了ifconfig提示找不到命令?
如果系统提示command not found,说明没装net-tools包,CentOS/RHEL系统执行yum install net-tools -y,Ubuntu/Debian系统执行apt install net-tools -y,装了之后就能用了,不过在2026年的当下,还是建议直接适应ip命令的语法,毕竟现在主流发行版都在弱化ifconfig的存在感。
问:请问查看网卡配置需要root权限吗?
ip addr和ifconfig查看信息不需要root权限,普通用户就能跑,但如果想查看某些网卡的详细驱动信息,比如ethtool -i ens33,在某些系统上需要sudo权限,最简单的方式是直接加sudo跑命令,报错概率低,省得来回切换用户。
问:虚拟机和物理机的网卡配置查看方式有区别吗?
没有本质区别,虚拟机里的网卡(比如ens33、eth0)对系统来说就是一块虚拟设备,所有查看命令完全通用,唯一需要注意的是云服务器(比如简米云ECS、酷番云CVM)可能默认不显示/etc/sysconfig/network-scripts/目录,因为云平台用自研的网卡配置机制管理网络,这种情况下优先用nmcli或查云平台控制台的网卡信息。
