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}。常用对象有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”。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 yes3. 重启网络连接,使配置生效:sudo nmcli c up ens33说明:ipv4.method manual为静态IP;autoconnect yes设为开机自动连接。案例2:配置DHCP自动获取IP(永久生效)
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,删除不需要的网络连接,避免配置混乱。
有用请点赞收藏,转发给身边的运维、开发朋友,高效告别老命令!