ip+nmcli 网络命令实操指南

Linux必学命令!ip+nmcli 网络命令实操指南

用过Linux的朋友都知道,网络配置是日常操作的核心——不管是服务器运维、虚拟机调试,还是开发环境搭建,都离不开网络命令。

图片

但如果你还在依赖 ifconfig、route这些老命令,就会发现:在CentOS 8+、Ubuntu 20.04+ 等新版本Linux中,这些命令要么被标记为“已废弃”,要么直接不预装。

一、先搞懂:为什么要放弃老命令?

老命令(ifconfig、route等)属于net-tools工具集,2001年起基本停止维护,仅支持简单配置,无法适配现代Linux内核的高级网络特性(如策略路由)。

而ip(来自iproute2)和nmcli(NetworkManager命令行工具)是官方推荐,功能更强、语法统一,支持IPv6,能大幅提升操作效率。

二、核心命令1:ip 命令(替代ifconfig/route,全能网络管理)

ip命令可查看网卡、配置IP、管理路由等,核心语法:ip (选项) 对象 {命令 | help}。

ip (选项) 对象 {命令 | help}

常用对象有4个:link(网卡)、addr(IP)、route(路由)、neigh(ARP缓存),以下实操需sudo权限,新手建议测试机操作。

1. 基础查看:快速掌握网络状态

常用查看命令,快速获取关键信息:

  • ip link show(缩写 ip l show):查看所有网卡的基本信息(名称、MAC地址、状态,比如ens33、lo),能快速判断网卡是否启用(UP/DOWN)。
  • ip addr show(缩写 ip a show):查看所有网卡的IP地址(IPv4/IPv6)、子网掩码,替代老命令 ifconfig,信息更全面。
  • ip route show(缩写 ip r show):查看系统路由表,能看到默认网关、目标网络的路由路径,替代老命令 route -n。
  • ip neigh show(缩写 ip n show):查看ARP缓存表,能看到局域网内其他设备的IP和MAC对应关系,排查局域网连通性很有用。

小技巧:加-s可查看网卡统计信息(发包/收包、错误数),如ip -s l show dev ens33,便于排查故障。

2. 实操配置:临时修改网络(重启失效)

临时测试可用以下命令,重启后自动恢复默认:

  • 启用/禁用网卡:sudo ip link set ens33 up(启用ens33网卡)、sudo ip link set ens33 down(禁用网卡,慎用!会断网)。
  • 添加IP地址:sudo ip addr add 192.168.1.100/24 dev ens33,给ens33网卡添加一个静态IP(192.168.1.100,子网掩码255.255.255.0),支持同时添加多个IP。
  • 删除IP地址:sudo ip addr del 192.168.1.100/24 dev ens33,删除指定IP,避免IP冲突。
  • 添加默认网关:sudo ip route add default via 192.168.1.1 dev ens33,设置默认网关(192.168.1.1),让服务器能访问外网。
  • 删除路由:sudo ip route del 192.168.2.0/24,删除指定目标网络的路由条目,排查路由故障时常用。

三、核心命令2:nmcli 命令

nmcli适合“永久配置”,可直接修改配置文件,重启不失效,适配长期运维,与图形化界面同步。

使用前需确保NetworkManager服务运行(新版本默认启用),核心控制命令:

  • 查看状态:systemctl status NetworkManager
  • 启动/重启:sudo systemctl start NetworkManager、sudo systemctl restart NetworkManager

1. 基础查看:网络连接与设备状态

  • nmcli general status(缩写 nmcli g s):查看系统整体网络状态,包括网络连接状态、WIFI开关、WWAN开关等,一眼掌握全局。
  • nmcli connection show(缩写 nmcli c s):查看所有网络连接(相当于“网络配置文件”),能看到连接名称、网卡、IP获取方式(dhcp/manual)等。
  • nmcli device show(缩写 nmcli d s):查看所有网卡设备的详细信息,包括MAC地址、IP地址、网卡类型等,比ip link更详细。
  • nmcli networking connectivity(缩写nmcli n c):查看网络连通性,返回5种状态(full=正常联网、limited=能联网但不能上网、portal=需登录认证、none=没网、unknown=未知),快速排查联网问题。

2. 实操配置:永久修改网络(重启生效)

以下是运维常用的永久配置案例,配置后重启不失效:

案例1:配置静态IP(永久生效)

假设网卡为ens33,配置静态IP(192.168.1.100/24)、网关(192.168.1.1)、DNS(223.5.5.5、8.8.8.8),步骤如下:

  1. 查看现有网络连接名称:nmcli c s,通常默认连接名为“ens33”或“Wired connection 1”。
  2. 修改连接配置(核心命令):

sudo nmcli c modify ens33 ipv4.method manual \

ipv4.address 192.168.1.100/24 \

ipv4.gateway 192.168.1.1 \

ipv4.dns “223.5.5.5 8.8.8.8” \

connection.autoconnect yes

  1. 重启网络连接,使配置生效:sudo nmcli c up ens33

说明:ipv4.method manual为静态IP;autoconnect yes设为开机自动连接。

案例2:配置DHCP自动获取IP(永久生效)

无需固定IP时,可配置DHCP自动获取:

sudo nmcli c modify ens33 ipv4.method auto connection.autoconnect yes

重启连接:sudo nmcli c up ens33,即可自动获取IP、网关、DNS。

案例3:新增/删除网络连接

  • 新增连接(比如新增一个静态IP连接):sudo nmcli c add type ethernet con-name my-net ifname ens33 ipv4.method manual ipv4.address 192.168.1.101/24 ipv4.gateway 192.168.1.1,其中“my-net”是自定义连接名,可随意修改。

  • 删除连接:sudo nmcli c delete my-net,删除不需要的网络连接,避免配置混乱。