您好,登录后才能下订单哦!
# Linux中nmcli命令怎么用
## 1. nmcli简介
`nmcli`是NetworkManager的命令行管理工具,用于在Linux系统中配置和管理网络连接。作为NetworkManager的组成部分,它提供了一种强大而灵活的方式来控制网络设置,无需依赖图形界面。
### 1.1 NetworkManager概述
NetworkManager是Linux系统中主流的网络配置守护进程,具有以下特点:
- 动态网络管理能力
- 支持有线、无线、VPN等多种连接类型
- 提供D-Bus接口供其他程序调用
- 自动处理网络切换和配置
### 1.2 nmcli的优势
相比传统的网络配置工具,nmcli具有明显优势:
- **统一管理**:整合多种网络类型的配置
- **脚本友好**:适合自动化部署和远程管理
- **实时生效**:修改配置无需重启服务
- **丰富功能**:支持连接、设备、DNS等全面管理
## 2. 基本命令结构
nmcli命令采用模块化设计,基本语法为:
```bash
nmcli [OPTIONS] OBJECT { COMMAND | help }
general
:NetworkManager常规状态和操作networking
:整体网络功能控制radio
:无线网络射频开关connection
:网络连接配置管理device
:物理网络设备管理monitor
:实时监控网络活动-t
:简洁输出(适合脚本处理)-p
:友好格式输出(带标题和分隔符)-h
:获取帮助信息-v
:显示命令版本显示所有配置的连接:
nmcli connection show
激活状态的连接会显示ACTIVE
标志,输出包含:
- 连接名称
- UUID(唯一标识符)
- 连接类型
- 关联设备
获取特定连接的详细信息:
nmcli connection show <连接名或UUID>
示例查看有线连接:
nmcli connection show 'Wired connection 1'
激活已有连接:
nmcli connection up <连接名>
停止活动连接:
nmcli connection down <连接名>
nmcli connection add type ethernet \
con-name "Office-LAN" \
ifname eth0 \
ipv4.method manual \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns "8.8.8.8 8.8.4.4"
nmcli device wifi connect <SSID> password <密码>
或创建持久化配置:
nmcli connection add type wifi \
con-name "Home-WiFi" \
ifname wlan0 \
ssid "Home-Network" \
wifi-sec.psk "mypassword" \
wifi-sec.key-mgmt wpa-psk
修改IP地址配置:
nmcli connection modify "Office-LAN" \
ipv4.addresses "192.168.1.150/24"
更改DNS服务器:
nmcli connection modify "Office-LAN" \
ipv4.dns "208.67.222.222 208.67.220.220"
删除不再需要的配置:
nmcli connection delete "Old-Connection"
列出所有网络设备:
nmcli device status
输出信息包括: - 设备名称 - 设备类型 - 状态(connected/disconnected) - 关联的连接
查看特定设备的详细信息:
nmcli device show eth0
将设备关联到已有连接:
nmcli device connect eth0
临时禁用网络设备:
nmcli device disconnect wlan0
扫描周围WiFi网络:
nmcli device wifi list
连接无需认证的WiFi:
nmcli device wifi connect <SSID>
连接WPA/WPA2加密网络:
nmcli device wifi connect <SSID> password <密码>
查看已保存的WiFi密码:
nmcli -s connection show "WiFi-Connection" | grep psk
查看无线射频状态:
nmcli radio wifi
禁用WiFi射频:
nmcli radio wifi off
监控网络状态变化:
nmcli monitor
按Ctrl+C退出监控模式
测试连接是否活跃:
nmcli networking connectivity check
返回结果包括:
- full
:完全联网
- limited
:受限连接
- none
:无连接
重载NetworkManager配置:
nmcli connection reload
配置VLAN虚拟接口:
nmcli connection add type vlan \
con-name "VLAN-10" \
ifname eth0.10 \
dev eth0 \
id 10 \
ipv4.method auto
创建网络绑定(bonding):
nmcli connection add type bond \
con-name "bond0" \
ifname bond0 \
mode active-backup
nmcli connection add type bond-slave \
ifname eth1 \
master bond0
nmcli connection add type bond-slave \
ifname eth2 \
master bond0
添加永久静态路由:
nmcli connection modify "Office-LAN" \
+ipv4.routes "10.0.0.0/8 192.168.1.254"
设置IPv6地址和网关:
nmcli connection modify "Office-LAN" \
ipv6.method manual \
ipv6.addresses "2001:db8::a/64" \
ipv6.gateway "2001:db8::1" \
ipv6.dns "2001:4860:4860::8888"
检查NetworkManager服务状态:
systemctl status NetworkManager
查看详细日志:
journalctl -u NetworkManager -n 50
删除所有自定义连接:
nmcli connection delete $(nmcli -t -f NAME connection)
重启NetworkManager:
systemctl restart NetworkManager
清空DNS缓存:
sudo systemd-resolve --flush-caches
临时覆盖系统DNS:
nmcli connection modify "Office-LAN" \
ipv4.ignore-auto-dns yes \
ipv4.dns "1.1.1.1 9.9.9.9"
典型办公室网络设置:
# 创建VLAN接口
nmcli connection add type vlan \
con-name "Corp-VLAN20" \
ifname eth0.20 \
dev eth0 \
id 20 \
ipv4.method manual \
ipv4.addresses "10.20.0.10/24" \
ipv4.gateway "10.20.0.1" \
ipv4.dns "10.10.0.53 10.10.0.54"
# 激活连接
nmcli connection up "Corp-VLAN20"
自动切换家庭和办公室网络:
#!/bin/bash
CURRENT_SSID=$(nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2)
if [[ "$CURRENT_SSID" == "Home-WiFi" ]]; then
nmcli connection up "Office-VPN"
elif [[ "$CURRENT_SSID" == "Office-WiFi" ]]; then
nmcli connection down "Office-VPN"
fi
nmcli作为NetworkManager的命令行界面,提供了强大而灵活的网络管理能力。通过本文的介绍,您应该已经掌握:
建议在实际环境中多加练习,结合man nmcli
查阅完整手册,逐步掌握这个现代化网络管理工具的全部功能。
注意:不同Linux发行版的NetworkManager版本可能略有差异,部分新功能需要较新版本支持。使用前请确认您的系统版本:
nmcli --version
“`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。