在Unix-like系统中,网卡管理是系统管理员日常运维的重要工作之一,掌握相关的命令能够有效监控、配置和排查网络问题,以下将详细介绍常用的Unix网卡命令,涵盖状态查看、配置管理、流量统计、故障排查等多个维度,并结合实际场景说明其使用方法。

网卡状态查看命令
-
ifconfig
ifconfig是传统的网络接口配置工具,可用于查看和配置网卡的IP地址、子网掩码、MAC地址等信息,在较新的Linux发行版中,ifconfig已被ip命令取代,但在部分Unix系统(如FreeBSD、Solaris)中仍广泛使用。- 查看所有网卡状态:
ifconfig -a
显示系统中所有网络接口(包括已禁用的)的详细信息,如接口类型(如eth0、lo)、IPv4地址、MAC地址、MTU值等。 - 查看指定网卡:
ifconfig eth0
仅显示eth0接口的配置,包括IP地址、广播地址、子网掩码等。 - 启用/禁用网卡:
ifconfig eth0 up
或ifconfig eth0 down
用于临时激活或关闭网卡,操作后立即生效,但重启系统后会恢复原配置。
- 查看所有网卡状态:
-
ip命令
ip命令是Linux系统中ifconfig的替代品,功能更强大,支持IPv4和IPv6,可查看和路由表、ARP表等。- 查看所有接口:
ip addr show
输出信息包括接口的IP地址、MAC地址、状态(UP/DOWN)、MTU等,比ifconfig更详细。 - 查看接口统计信息:
ip -s link show eth0
显示eth0的接收(RX)和发送(TX)数据包数量、错误数、丢包数等统计信息,便于分析网络性能。 - 临时修改IP地址:
ip addr add 192.168.1.100/24 dev eth0
为eth0添加一个IPv4地址,添加后需执行ip link set eth0 up
激活接口。
- 查看所有接口:
网络配置管理命令
-
nmcli
nmcli是NetworkManager的命令行工具,适用于动态网络管理,尤其在桌面版Linux和云环境中常用。- 查看连接状态:
nmcli connection show
列出所有网络连接的名称、类型、状态(如活跃/未激活)。 - 修改静态IP:
nmcli connection modify "eth0" ipv4.addresses 192.168.1.100/24 nmcli connection modify "eth0" ipv4.method manual nmcli connection up "eth0"
通过修改连接配置并重新激活,实现IP地址的持久化配置。
(图片来源网络,侵删) - 配置DHCP:
nmcli connection modify "eth0" ipv4.method auto
- 查看连接状态:
-
netstat
netstat用于查看网络连接、路由表、接口统计等信息,在排查端口占用和服务连接问题时常用。- 查看活跃连接:
netstat -tuln
显示所有TCP(-t)、UDP(-u)监听(-l)端口,并以数字形式(-n)展示地址和端口号,避免DNS解析延迟。 - 查看进程对应的连接:
netstat -tulnp
加上-p参数可显示占用端口的进程ID(PID)和名称,便于定位问题进程。
- 查看活跃连接:
-
ss命令
ss是netstat的替代工具,速度更快,支持显示更多TCP状态信息。- 查看所有TCP连接:
ss -t
-a
:显示所有连接(包括监听和非监听);-n
:以数字形式显示地址和端口;-p
:显示进程信息。
- 查看所有TCP连接:
网络流量与性能监控命令
-
iftop
iftop以实时流量图的形式显示网络接口的带宽使用情况,按源和目标IP排序,适用于监控异常流量。- 安装与使用:
在Debian/Ubuntu中安装:apt install iftop
运行:iftop -i eth0
界面中会显示实时上传(↑)和下载(↓)流量,以及每个IP的连接数和带宽占比。
- 安装与使用:
-
nload
nload以双柱状图形式显示总带宽和单个连接的实时流量,界面简洁直观。(图片来源网络,侵删)- 使用方法:
nload -i eth0
左侧柱状图表示入站流量,右侧表示出站流量,底部显示平均和峰值速率。
- 使用方法:
-
tcpdump
tcpdump是强大的网络抓包工具,用于分析底层网络数据包,适用于协议分析和故障排查。- 抓取eth0的所有流量:
tcpdump -i eth0
- 抓取特定IP的流量:
tcpdump -i eth0 host 192.168.1.100
- 抓取HTTP流量:
tcpdump -i eth0 port 80
抓取的数据包可保存到文件(-w
选项)并使用Wireshark分析。
- 抓取eth0的所有流量:
路由与DNS配置命令
-
route命令
route用于查看和操作IP路由表,在较旧系统中仍常用,但新版本推荐使用ip route
。- 查看路由表:
route -n
- 添加静态路由:
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1
- 查看路由表:
-
nslookup
nslookup用于查询DNS记录,可测试域名解析是否正常。- 查询A记录:
nslookup www.example.com
- 指定DNS服务器:
nslookup www.example.com 8.8.8.8
- 查询A记录:
常见问题排查流程
-
无法连接网络
- 检查网卡状态:
ip link show
,确认接口是否为UP状态。 - 检查IP配置:
ip addr show
,确认IP、子网掩码是否正确。 - 检查网关:
ip route show
,确认默认路由是否存在。 - 检查DNS:
ping 8.8.8.8
测试外网连通性,再用nslookup
测试域名解析。
- 检查网卡状态:
-
网络卡顿或丢包
- 查看网卡错误包:
ip -s link show eth0
,检查RX/TX错误数和丢包数。 - 使用
iftop
或nload
监控流量,确认是否存在带宽瓶颈。 - 抓包分析:
tcpdump -i eth0 -c 100
抓取100个数据包,检查异常包。
- 查看网卡错误包:
相关问答FAQs
Q1: ifconfig和ip命令的主要区别是什么?
A1: ifconfig是传统工具,功能单一,仅支持IPv4/IPv6地址和MAC地址的简单配置,且在Linux新版本中已被弃用,ip命令功能更全面,支持路由管理、隧道配置、ARP表操作等,且性能更优,是现代Linux系统推荐的网络管理工具。
Q2: 如何在Unix系统中永久修改网卡的IP地址?
A2: 永久修改IP地址的方法因系统而异:
- 在使用NetworkManager的系统(如Ubuntu)中,可通过
nmcli connection modify
命令修改配置,并激活连接; - 在使用传统ifcfg配置的系统(如CentOS 7)中,需编辑
/etc/sysconfig/network-scripts/ifcfg-eth0
文件,修改IPADDR、NETMASK、GATEWAY等参数后重启网络服务(systemctl restart network
); - 在FreeBSD中,需编辑
/etc/rc.conf
文件中的ifconfig_eth0配置。