Linux 网络接口配置命令完整使用指南
目录
二、现代 Linux 标准首选:ip 命令(iproute2 套件)
示例 2:给 bond0 配置 IP + 子网掩码(替代 ifconfig bond0 IP netmask)
示例 3:激活 / 关闭 bond0 接口(替代 ifconfig bond0 up/down)
示例 4:配置路由(替代 route 命令,适配 GIS 跨网段访问)
3.1 nmcli 命令(NetworkManager 命令行工具)
示例 2:给 bond0 配置固定 IP + 子网掩码 + 网关 + DNS(永久生效)
示例 4:配置 bonding 网卡绑定(主备模式,高可用首选)
3.2 nmtui 命令(NetworkManager 文本图形界面工具)
3.3 networkctl 命令(systemd-networkd 工具)
四、传统兼容类工具(和 ifconfig 同属 net-tools 套件)
Linux 网络接口配置命令完整使用指南
结合你之前的 Linux 嵌入式、bonding 网卡绑定、Qt/GIS 开发 场景,本文按「现代首选→系统级永久配置→传统兼容→硬件调优→辅助配套」的优先级,完整梳理所有可配置网络接口的命令,每个命令都标注核心定位、与 ifconfig 的对应关系、安装方式、可复制的实战示例(含 bond0 适配)、优势劣势、适用场景,同时讲清「临时生效 / 永久生效」「发行版差异」「常见坑点」等核心知识点,新手可直接落地,开发 / 运维可直接当手册用。
一、核心前置说明(先搞懂这些,命令不会用错)
1.1 两大配置体系(最核心的区分)
Linux 网络接口配置分为临时生效和永久生效两大体系,所有命令都归属于这两类,避免配置后重启丢失的问题:
表格
| 体系 | 核心特点 | 代表命令 | 适用场景 |
|---|---|---|---|
| 临时生效 | 配置后立即生效,重启系统 / 网络服务后直接丢失 | ifconfig、ip addr/ip link、route |
临时调试、快速验证、故障排查、一次性配置 |
| 永久生效 | 配置写入系统配置文件,重启后不丢失 | nmcli、nmtui、手动修改系统配置文件、networkctl |
服务器、嵌入式设备、生产环境、长期稳定的网络配置 |
1.2 与 ifconfig 的功能对应关系
你之前熟悉的 ifconfig,核心功能可拆解为 4 类,所有替代命令都对应这 4 类能力:
- 查看网络接口信息(
ifconfig无参) - 配置接口 IP 地址 / 子网掩码(
ifconfig eth0 IP netmask) - 激活 / 关闭网络接口(
ifconfig eth0 up/down) - 修改接口 MAC 地址 / MTU 等参数
1.3 通用前置要求
- 所有网络接口配置命令必须使用 root 权限,普通用户执行会报错
Operation not permitted,需加sudo或切换到 root 用户。 - 现代 Linux 发行版(CentOS7+/Ubuntu16.04+)默认已淘汰
net-tools套件(ifconfig/route/arp),推荐优先使用ip命令,无需额外安装。
二、现代 Linux 标准首选:ip 命令(iproute2 套件)
2.1 核心定位
ip 是 Linux 内核官方维护的新一代网络管理工具集,属于 iproute2 套件,所有现代 Linux 发行版默认自带,无需额外安装,100% 完全替代 ifconfig/route/arp 等传统工具,功能覆盖「接口配置、IP 地址、路由、ARP、隧道、bonding、VLAN」全场景,是当前 Linux 网络配置的唯一行业标准工具。
2.2 核心子命令(对应 ifconfig 全功能)
ip 采用「主命令 + 子命令」的结构化设计,和网络接口配置相关的核心子命令如下:
表格
| 子命令 | 核心作用 | 对应 ifconfig 的功能 |
|---|---|---|
ip link |
管理接口链路层状态:激活 / 关闭接口、修改 MAC/MTU、bonding 配置 | ifconfig up/down、修改 MAC/MTU |
ip addr |
管理接口IP 地址 / 子网掩码 | ifconfig 配置 IP/netmask |
ip route |
管理系统路由表 | route 命令 |
ip neigh |
管理 ARP 表 | arp 命令 |
2.3 可直接复制的实战示例(适配你的 bond0 场景)
示例 1:查看网络接口信息(替代 ifconfig 无参)
bash
运行
# 完整查看所有接口的链路、IP、状态信息
ip addr show
# 简写(最常用)
ip a
# 仅查看 bond0 接口的详细信息
ip a s bond0
# 仅查看所有接口的链路状态(速率、双工、MAC)
ip link show
# 查看 bond0 接口的详细链路属性
ip -d link show bond0
示例 2:给 bond0 配置 IP + 子网掩码(替代 ifconfig bond0 IP netmask)
bash
运行
# 给 bond0 配置主 IP:192.168.1.100/24(对应子网掩码 255.255.255.0)
ip addr add 192.168.1.100/24 dev bond0
# 给 bond0 配置第二个辅助 IP(别名)
ip addr add 10.0.0.100/24 dev bond0 label bond0:0
# 删除 bond0 的指定 IP 地址
ip addr del 192.168.1.100/24 dev bond0
# 清空 bond0 接口的所有 IP 地址
ip addr flush dev bond0
注意:
ip命令使用 CIDR 格式 表示子网掩码,比如/24对应255.255.255.0,/16对应255.255.0.0,主机 IP 用/32,无需单独写netmask参数。
示例 3:激活 / 关闭 bond0 接口(替代 ifconfig bond0 up/down)
bash
运行
# 激活 bond0 接口
ip link set bond0 up
# 关闭 bond0 接口
ip link set bond0 down
# 同时修改 bond0 的 MTU 为 1500(以太网标准值)
ip link set bond0 mtu 1500
# 修改 bond0 的 MAC 地址
ip link set bond0 address 00:11:22:33:44:55
# 给 bond0 接口设置别名
ip link set bond0 alias gis-bond0
示例 4:配置路由(替代 route 命令,适配 GIS 跨网段访问)
bash
运行
# 查看系统路由表
ip route show
# 简写
ip r
# 添加默认路由(兜底规则,解决上不了网)
ip route add default via 192.168.1.1 dev bond0
# 添加静态路由(访问 10.0.0.0/24 网段的 GIS 服务器)
ip route add 10.0.0.0/24 via 192.168.1.254 dev bond0 metric 50
# 删除默认路由
ip route del default
# 删除静态路由
ip route del 10.0.0.0/24
# 排错专用:查看访问 10.0.0.100 的数据包路由走向
ip route get 10.0.0.100
2.4 优势与劣势
✅ 优势:
- 官方标准,所有现代 Linux 发行版默认自带,无需额外安装
- 功能全覆盖,一个命令替代
ifconfig/route/arp多个工具 - 输出更规范、更易读,支持 JSON 格式输出,适合脚本自动化
- 性能更好,直接和内核 netlink 通信,无中间层
- 完美支持 bonding、VLAN、隧道、网桥等高级网络功能
❌ 劣势:
- 老系统(CentOS6/Ubuntu14.04 及更早)默认未安装,需手动装
iproute2包 - 命令结构比
ifconfig稍复杂,有轻微学习成本
三、系统级永久配置工具(重启不丢失,生产环境首选)
这类工具直接操作系统的网络管理服务,配置的网络参数永久生效,重启系统 / 网络服务不会丢失,无需手动修改 /etc/ 下的配置文件,是服务器、嵌入式设备、生产环境的首选。
3.1 nmcli 命令(NetworkManager 命令行工具)
3.1.1 核心定位
nmcli 是 Linux 主流网络管理服务 NetworkManager 的命令行工具,所有带图形界面的 Linux 发行版(Ubuntu、CentOS Stream、Fedora)默认自带并启用 NetworkManager,nmcli 可以完全替代 ifconfig,实现「接口配置、IP 地址、路由、DNS、bonding、VLAN」全功能管理,配置的参数直接写入系统配置文件,永久生效。
3.1.2 安装方式
大部分发行版默认自带,未安装的话执行:
bash
运行
# CentOS/RHEL/Rocky 系列
yum install NetworkManager -y
systemctl enable --now NetworkManager
# Debian/Ubuntu/Linux Mint 系列
apt install network-manager -y
systemctl enable --now NetworkManager
3.1.3 可直接复制的实战示例(适配 bond0 场景)
示例 1:查看网络接口信息(替代 ifconfig)
bash
运行
# 查看所有接口的详细信息
nmcli device show
# 仅查看 bond0 接口
nmcli device show bond0
# 查看所有接口的连接状态
nmcli connection show
# 查看 bond0 接口的实时状态
nmcli device status bond0
示例 2:给 bond0 配置固定 IP + 子网掩码 + 网关 + DNS(永久生效)
bash
运行
# 给 bond0 配置固定 IP,配置名 bond0-conn
nmcli connection add type ethernet ifname bond0 con-name bond0-conn \
ip4 192.168.1.100/24 \
gw4 192.168.1.1 \
dns4 8.8.8.8,114.114.114.114 \
autoconnect yes
# 激活配置,立即生效
nmcli connection up bond0-conn
# 修改 bond0 的 IP 地址
nmcli connection modify bond0-conn ip4 192.168.1.200/24
# 重新加载配置,立即生效
nmcli connection reload bond0-conn
# 禁用 bond0 接口的自动连接
nmcli connection modify bond0-conn autoconnect no
示例 3:激活 / 关闭 bond0 接口
bash
运行
# 激活 bond0 接口
nmcli device connect bond0
# 关闭 bond0 接口
nmcli device disconnect bond0
# 重新加载所有网络配置
nmcli connection reload
示例 4:配置 bonding 网卡绑定(主备模式,高可用首选)
bash
运行
# 1. 创建 bond0 主接口,主备模式,100ms 检测一次链路状态
nmcli connection add type bond ifname bond0 con-name bond0-conn \
bond.options "mode=active-backup,miimon=100" \
ip4 192.168.1.100/24 gw4 192.168.1.1
# 2. 把 eth0、eth1 加入 bond0 作为从接口
nmcli connection add type ethernet ifname eth0 con-name bond0-slave-eth0 master bond0-conn
nmcli connection add type ethernet ifname eth1 con-name bond0-slave-eth1 master bond0-conn
# 3. 激活所有配置,立即生效
nmcli connection up bond0-conn
nmcli connection up bond0-slave-eth0
nmcli connection up bond0-slave-eth1
# 4. 查看 bonding 状态
cat /proc/net/bonding/bond0
3.1.4 优势与劣势
✅ 优势:
- 配置永久生效,直接写入系统配置文件,重启不丢失
- 功能全覆盖,支持所有高级网络功能(bonding、VLAN、网桥、VPN)
- 命令结构清晰,支持 tab 补全,学习成本低
- 所有现代桌面 / 服务器发行版默认自带,兼容性拉满
- 支持批量配置、脚本自动化,适合大规模服务器管理
❌ 劣势:
- 必须启用 NetworkManager 服务,部分极简嵌入式系统未安装
- 老系统(CentOS6 及更早)默认未安装,需手动配置
3.2 nmtui 命令(NetworkManager 文本图形界面工具)
3.2.1 核心定位
nmtui 是 NetworkManager 的文本图形界面工具,和 nmcli 功能完全一致,但是采用菜单式图形界面,无需记忆复杂命令,新手也能快速配置网络,是 ifconfig 最友好的图形化替代方案。
3.2.2 安装方式
和 nmcli 一致,默认自带,未安装的话执行:
bash
运行
# CentOS/RHEL 系列
yum install NetworkManager-tui -y
# Debian/Ubuntu 系列
apt install network-manager -y
3.2.3 使用方法
直接在终端执行 nmtui,会弹出文本图形界面,通过方向键、回车、空格操作,核心支持 3 大功能:
- 编辑连接:配置 IP、子网掩码、网关、DNS、bonding、VLAN 等所有参数
- 激活连接:启用 / 关闭网络接口
- 设置系统主机名
全程可视化操作,无需记忆任何命令,新手也能 1 分钟完成网络配置。
3.3 networkctl 命令(systemd-networkd 工具)
3.3.1 核心定位
networkctl 是 systemd 自带的网络管理服务 systemd-networkd 的命令行工具,是极简 Linux 系统、嵌入式系统、服务器的轻量网络管理工具,无需安装额外包,systemd 自带,配置的网络参数永久生效,适合无图形界面的极简环境。
3.3.2 安装方式
所有带 systemd 的 Linux 发行版默认自带,无需额外安装。
3.3.3 核心示例
bash
运行
# 查看所有网络接口状态
networkctl list
# 查看 bond0 接口的详细信息
networkctl status bond0
# 重新加载所有网络配置
networkctl reload
# 重新配置 bond0 接口
networkctl reconfigure bond0
# 查看系统网络状态
networkctl status
注意:
networkctl仅用于管理和查看网络状态,配置网络接口需要手动编写 systemd-networkd 的.network配置文件,适合高级用户、嵌入式系统定制。
四、传统兼容类工具(和 ifconfig 同属 net-tools 套件)
这类工具和 ifconfig 是同一时代的产物,都属于 net-tools 套件,现在已基本被 ip 命令淘汰,仅在老系统、嵌入式轻量系统中还有少量使用,和 ifconfig 兼容性拉满,学习成本极低。
4.1 ifup / ifdown 命令
4.1.1 核心定位
专门用于激活 / 关闭系统已配置的网络接口,是 ifconfig up/down 的简化版,会自动读取系统的网络接口配置文件(/etc/network/interfaces 或 /etc/sysconfig/network-scripts/),无需手动指定 IP / 子网掩码,是老系统中管理网络接口的常用工具。
4.1.2 安装方式
bash
运行
# CentOS/RHEL 系列
yum install net-tools -y
# Debian/Ubuntu 系列
apt install net-tools -y
4.1.3 示例(适配 bond0)
bash
运行
# 激活系统已配置的 bond0 接口
ifup bond0
# 关闭 bond0 接口
ifdown bond0
# 重新加载 bond0 接口配置(先关后开)
ifdown bond0 && ifup bond0
# 激活所有已配置的网络接口
ifup -a
# 关闭所有网络接口
ifdown -a
4.1.4 优势与劣势
✅ 优势:
- 命令极简,一键激活 / 关闭接口,无需手动配置参数
- 自动读取系统配置文件,避免手动配置错误
- 和
ifconfig完全兼容,老系统中稳定性拉满
❌ 劣势:
- 仅能激活 / 关闭接口,无法配置 IP / 子网掩码 / MTU 等参数
- 依赖系统的网络配置文件,无配置文件的接口无法使用
- 已被淘汰,新系统中默认不自带
4.2 route 命令
4.2.1 核心定位
专门用于管理系统路由表,是 ifconfig 配套的路由管理工具,现在已被 ip route 命令完全替代,核心作用是配置静态路由、默认路由,解决跨网段访问问题(比如你的 GIS 服务器跨网段访问)。
4.2.2 安装方式
和 ifconfig 一致,需安装 net-tools 套件。
4.2.3 示例
bash
运行
# 查看路由表(替代 `netstat -r`)
route -n
# 添加默认路由(网关 192.168.1.1,从 bond0 发出)
route add default gw 192.168.1.1 dev bond0
# 添加静态路由(访问 10.0.0.0/24 网段,网关 192.168.1.254)
route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.254 dev bond0
# 添加主机路由(仅访问 172.16.1.100 这台服务器)
route add -host 172.16.1.100 gw 192.168.1.254 dev bond0
# 删除默认路由
route del default
# 删除静态路由
route del -net 10.0.0.0 netmask 255.255.255.0
4.3 arp 命令
4.3.1 核心定位
管理系统的 ARP 表,用于查看、添加、删除 IP 地址和 MAC 地址的映射关系,是 ifconfig 配套的二层网络管理工具,现在已被 ip neigh 命令替代。
4.3.2 示例
bash
运行
# 查看 ARP 表
arp -n
# 给 192.168.1.1 绑定静态 MAC 地址
arp -s 192.168.1.1 00:11:22:33:44:55
# 删除 ARP 表项
arp -d 192.168.1.1
# 清空 ARP 表
arp -d -a
五、网卡硬件级配置工具(嵌入式 / 服务器调优专用)
这类工具用于配置网卡的硬件级参数,比如速率、双工模式、自动协商、驱动参数、寄存器读写,是 ifconfig 不具备的功能,嵌入式开发、服务器网络调优、故障排查必备。
5.1 ethtool 命令
5.1.1 核心定位
ethtool 是 Linux 下最主流的网卡硬件配置工具,几乎所有网卡驱动都支持,用于查看和修改网卡的速率、双工模式、自动协商、流控、驱动参数、寄存器、固件版本等,是嵌入式开发、网络故障排查的核心工具。
5.1.2 安装方式
bash
运行
# CentOS/RHEL 系列
yum install ethtool -y
# Debian/Ubuntu 系列
apt install ethtool -y
5.1.3 核心示例(适配 bond0)
bash
运行
# 查看 bond0 网卡的所有硬件信息(速率、双工、驱动、固件)
ethtool bond0
# 查看 bond0 网卡的驱动信息
ethtool -i bond0
# 查看 bond0 网卡的寄存器信息
ethtool -d bond0
# 查看 bond0 网卡的统计信息(收发包、错误包、丢包)
ethtool -S bond0
# 配置 bond0 网卡为 1000M 全双工,关闭自动协商
ethtool -s bond0 speed 1000 duplex full autoneg off
# 配置 bond0 网卡的流控(接收/发送都开启)
ethtool -A bond0 rx on tx on
# 配置 bond0 网卡的 DMA 环大小
ethtool -G bond0 rx 4096 tx 4096
5.1.4 优势与劣势
✅ 优势:
- 功能极强,覆盖网卡硬件的所有可配置参数
- 几乎所有网卡驱动都支持,兼容性拉满
- 是网络故障排查、硬件调优的必备工具
- 支持脚本自动化,可批量配置多网卡
❌ 劣势:
- 仅能配置网卡硬件参数,无法配置 IP 地址、路由等三层参数
- 部分参数需要网卡驱动支持,不是所有网卡都能修改
- 错误的配置可能导致网卡掉线、无法通信
5.2 mii-tool 命令
5.2.1 核心定位
mii-tool 是 ethtool 的简化版,专门用于查看和配置网卡的 MII 接口参数,核心功能是查看网卡的速率、双工模式、链路状态,是老系统、嵌入式轻量系统的常用工具,现在已基本被 ethtool 替代。
5.2.2 安装方式
bash
运行
yum install net-tools -y
5.2.3 示例
bash
运行
# 查看所有网卡的链路状态
mii-tool
# 查看 bond0 网卡的详细状态
mii-tool -v bond0
# 配置 bond0 为 100M 全双工
mii-tool -F 100baseTx-FD bond0
# 恢复自动协商
mii-tool -r bond0
六、辅助配套工具(和接口配置配套使用)
这类工具用于配置和网络接口配套的系统参数,是 ifconfig 配置网络后的配套工具,日常开发 / 运维必备。
表格
| 工具 | 核心作用 | 示例 | |
|---|---|---|---|
hostname / hostnamectl |
配置系统主机名 | hostnamectl set-hostname gis-server(永久生效)、hostname gis-server(临时生效) |
|
resolvectl / resolvconf |
配置系统 DNS 服务器 | resolvectl dns bond0 8.8.8.8 114.114.114.114 |
|
ss |
查看系统套接字、端口监听状态(替代 netstat) |
ss -tuln、`ss -tuln |
grep 8080` |
ping / traceroute / mtr |
网络连通性、路由路径排查 | ping 192.168.1.1、traceroute 10.0.0.100、mtr 10.0.0.100 |
|
tcpdump / wireshark |
网络抓包、故障排查 | tcpdump -i bond0 host 10.0.0.100 and port 8080 |
|
iptables / firewalld |
防火墙规则配置 | iptables -A INPUT -p tcp --dport 8080 -j ACCEPT、firewall-cmd --add-port=8080/tcp --permanent |
七、关键知识点与常见坑点
7.1 临时生效 vs 永久生效
- 所有
ifconfig、ip addr/ip link、route命令配置的参数都是临时生效,重启系统 / 网络服务后会直接丢失。 - 要永久生效,必须使用
nmcli/nmtui写入系统配置文件,或手动修改/etc/network/interfaces(Debian/Ubuntu)、/etc/sysconfig/network-scripts/(CentOS/RHEL)下的配置文件。
7.2 发行版差异
- Debian/Ubuntu/Linux Mint 系列:网络配置文件默认在
/etc/network/interfaces,新系统默认使用 NetworkManager。 - CentOS/RHEL/Rocky/AlmaLinux 系列:网络配置文件默认在
/etc/sysconfig/network-scripts/ifcfg-xxx,新系统默认使用 NetworkManager。 - 嵌入式系统(OpenWrt / 树莓派):网络配置文件通常在
/etc/config/network,使用uci命令管理。
7.3 常见坑点
- 权限问题:所有网络配置命令必须用 root 权限,普通用户执行会报错,需加
sudo。 - 子网掩码 / CIDR 错误:
ip命令的 CIDR 后缀不能写错,主机 IP 必须用/32,C 类网段用/24,否则会导致路由错误。 - bonding 配置坑:配置 bonding 必须先加载
bonding内核模块(modprobe bonding),从网卡必须配置为slave模式,不能有独立 IP,否则 bonding 无法正常工作。 - 防火墙拦截:网络配置正确但无法通信,大概率是
iptables/firewalld防火墙拦截了数据包,需临时关闭防火墙测试,再配置对应的放行规则。 - 网关和接口不在同一网段:网关 IP 必须和本机接口的 IP 在同一个子网,否则路由无效,系统会提示「网关不可达」。
八、工具选型总结(按你的场景推荐)
结合你之前的 Linux 嵌入式、bonding 网卡绑定、Qt/GIS 开发 场景,我给你整理了优先级最高的工具选型,避免学习冗余内容:
表格
| 场景 | 首选工具 | 备选工具 |
|---|---|---|
| 日常临时配置 IP / 激活接口、快速调试 | ip addr / ip link |
ifconfig(老系统兼容) |
| 生产环境 / 服务器 / 嵌入式设备永久网络配置 | nmcli / nmtui |
手动修改系统配置文件 |
| 网卡硬件调优、网络故障排查 | ethtool |
mii-tool |
| 跨网段访问、路由配置 | ip route |
route 命令 |
| 网络连通性、故障排查 | ping / traceroute / tcpdump |
mtr / wireshark |
九、最终总结
ifconfig是传统 Linux 网络配置工具,现在已被官方淘汰,现代 Linux 系统推荐优先使用ip命令,完全替代ifconfig所有功能,且更强大、更规范。- 生产环境、嵌入式设备需要永久生效的网络配置,优先使用
nmcli/nmtui,无需手动修改配置文件,稳定可靠。 - 网卡硬件级调优、故障排查,使用
ethtool命令,是嵌入式开发、服务器运维的必备工具。 - 所有网络配置命令都需要 root 权限,注意区分「临时生效」和「永久生效」,避免重启后配置丢失。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)