Linux 作为服务器和开发环境的核心操作系统,其网络配置的灵活性和强大功能备受青睐,网卡工具作为 Linux 网络管理的基础,涵盖了从基础配置、性能监控到故障排查的全方位功能,本文将系统介绍 Linux 环境下主流的网卡工具,帮助用户高效管理网络接口。

基础配置工具:ifconfig 与 ip 命令
早期的网络配置主要依赖 ifconfig 命令(来自 net-tools 包),但近年来逐渐被 ip 命令(来自 iproute2 包)取代,后者功能更全面且符合现代 Linux 内核的发展方向。
ifconfig 命令
ifconfig 用于显示或配置网络接口的参数,基本语法为 ifconfig [接口名] [选项] [地址]。
- 查看所有网络接口:
ifconfig -a - 启用/禁用网卡:
ifconfig eth0 up或ifconfig eth0 down - 配置 IP 地址和子网掩码:
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
尽管 ifconfig 使用简单,但已不再推荐用于生产环境,因其缺乏对 VLAN、隧道等高级网络特性的支持。
ip 命令
ip 命令是当前 Linux 网络管理的核心工具,功能覆盖接口管理、路由配置、ARP 表操作等,常用子命令包括 link(接口)、addr(地址)、route(路由)等。
- 查看接口信息:
ip addr show或ip a,输出包括接口状态、IP 地址、MAC 地址等详细信息。 - 启用/禁用接口:
ip link set eth0 up或ip link set eth0 down - 添加 IP 地址:
ip addr add 192.168.1.100/24 dev eth0 - 删除 IP 地址:
ip addr del 192.168.1.100/24 dev eth0
ip 命令的优势在于支持更复杂的网络场景,例如配置 VLAN(ip link add link eth0 name eth0.0 type vlan id 10)或设置策略路由。
网络配置持久化:NetworkManager 与 ifcfg 文件
在 Linux 中,临时通过命令行修改的网络配置在重启后会丢失,因此需要持久化配置方案,主流方案包括传统 ifcfg 文件和现代的 NetworkManager。
ifcfg 文件(适用于 RHEL/CentOS)
网络接口的配置文件通常位于 /etc/sysconfig/network-scripts/ 目录下,文件名格式为 ifcfg-接口名,以 eth0 为例,关键配置项包括:
TYPE=Ethernet BOOTPROTO=static # 静态IP,或 dhcp 动态获取 IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DEVICE=eth0 ONBOOT=yes # 开机自启
配置完成后,需执行 ifdown eth0 && ifup eth0 或 systemctl restart network 重启网络服务。

NetworkManager(适用于 Ubuntu/ Fedora 等现代发行版)
NetworkManager 是动态网络管理工具,支持命令行(nmcli)和图形界面(nmtui)配置,尤其适合桌面环境和需要频繁切换网络的场景。
-
命令行配置:
- 查看连接状态:
nmcli connection show - 添加新连接:
nmcli connection add type ethernet con-name eth0-static ifname eth0 ip4 192.168.1.100/24 gw4 192.168.1.1 - 修改 DNS:
nmcli connection modify eth0 ipv4.dns "8.8.8.8 8.8.4.4" - 激活连接:
nmcli connection up eth0-static
- 查看连接状态:
-
交互式文本界面:
nmtui提供菜单式操作,可轻松配置 IP、DNS、主机名等,适合不熟悉命令行的用户。
网络诊断与监控工具
网络故障排查是系统运维的常见任务,Linux 提供了丰富的诊断工具,帮助定位问题根源。
ping:测试网络连通性
ping 通过发送 ICMP 回显请求测试与目标主机的连通性,常用选项包括:
-c指定发送包数量:ping -c 4 192.168.1.1-i设置间隔时间:ping -i 2 192.168.1.1
netstat 与 ss:查看网络连接状态
netstat 是传统工具,而 ss(来自 iproute2)是其替代品,性能更优,显示信息更全面。
- 查看所有 TCP 连接:
ss -t或netstat -t - 显示监听端口:
ss -tulnp或netstat -tulnp(-n避免域名解析,-p显示进程 ID) - 统计协议连接数:
ss -s或netstat -s
tcpdump:抓取网络数据包
tcpdump 是强大的协议分析工具,可实时捕获并解析网络数据包,常用于深度排查网络问题。
- 捕获 eth0 接口的所有数据包:
tcpdump -i eth0 - 捕获目标为 192.168.1.100 的 TCP 数据包:
tcpdump -i eth0 tcp dst 192.168.1.100 - 保存捕获结果到文件:
tcpdump -w capture.pcap -i eth0
ethtool:查看和修改网卡硬件参数
ethtool 用于查看网卡的速率、双工模式、驱动信息等硬件属性,

- 查看网卡状态:
ethtool eth0 - 修改速率和双工模式:
ethtool -s eth0 speed 1000 duplex full autoneg off
高级网络工具:网络命名空间与 bonding
在虚拟化和容器化场景中,Linux 提供了更高级的网络工具以满足复杂需求。
网络命名空间(Network Namespace)
网络命名空间可实现网络栈的隔离,每个命名空间拥有独立的接口、路由表和防火墙规则,常用于 Docker、Kubernetes 等容器技术。
- 创建命名空间:
ip netns add ns1 - 将接口加入命名空间:
ip link set eth0 netns ns1 - 在命名空间内执行命令:
ip netns exec ns1 bash
网卡绑定(Bonding)
网卡绑定将多个物理网卡绑定为一个逻辑接口,提供冗余和负载均衡,Linux 内核通过 bonding 模块实现,模式包括:
- mode=0(平衡轮询):按顺序将数据包分配给各网卡
- mode=1(主备):仅主网卡工作,备用网卡在主网卡故障时接管
- mode=4(LACP 动态聚合):通过 LACP 协议实现动态负载均衡
配置示例(编辑 /etc/modprobe.d/bonding.conf):
alias bond0 bonding options bond0 mode=4 miimon=100
然后配置 ifcfg-bond0 文件,并将物理网卡的 MASTER 和 SLAVE 参数分别设置为 bond0 和 yes。
Linux 网卡工具涵盖了从基础配置到高级功能的完整体系,用户可根据需求选择合适的工具:ip 命令适合日常网络管理,NetworkManager 提供便捷的持久化配置,而 tcpdump、ethtool 等工具则是故障排查的利器,对于虚拟化和容器化场景,网络命名空间和网卡绑定技术能够满足复杂的网络隔离与性能需求,熟练掌握这些工具,将极大提升 Linux 环境下的网络管理效率。
以下为常用网卡工具对比表:
| 工具名称 | 主要用途 | 适用场景 | 特点 |
|---|---|---|---|
ifconfig |
基础接口配置 | 传统系统(已不推荐) | 简单易用,功能有限 |
ip |
接口、路由、地址管理 | 所有 Linux 发行版 | 功能全面,支持高级网络特性 |
NetworkManager |
动态网络配置(图形/命令行) | 桌面系统、移动设备 | 自动化配置,支持热插拔 |
nmcli |
NetworkManager 命令行接口 | 批量配置、脚本化 | 与 NetworkManager 深度集成 |
tcpdump |
网络数据包抓取与分析 | 故障排查、协议分析 | 支持复杂过滤条件,输出详细 |
ethtool |
网卡硬件参数查看与修改 | 性能调优、硬件故障排查 | 可操作物理层属性 |
ip netns |
网络栈隔离 | 容器、虚拟化 | 实现多租户网络环境 |



















