nmcli connection modify 可以修改现有连接
con
可以写成c
到connection
之间的字段mod
可以写成m
到modify
之间的字段nmcli connection modify nmcli connec modify nmcli conne modif nmcii conn modi nmcli con mod nmcli co mo nmcli c m nmcli c modify nmcli connection m
modify
后接连接名或UUID, 可用nmcli c
=nmcli c s
=nmcli c show
=nmcli connection show
查看有哪些连接及其名称和UUIDnmcli c nmcli c s nmcli c show nmcli connection show nmcli co sho
ipv4.
可以接 [method, dns, dns-search, dns-options, dns-priority, addresses, gateway, routes, route-metric, route-table, routing-rules, ignore-auto-routes, ignore-auto-dns, dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-send-hostname, dhcp-hostname, dhcp-fqdn, dhcp-hostname-flags, never-default, may-fail, required-timeout, dad-timeout, dhcp-vendor-class-identifier, dhcp-reject-servers] 。-
ipv4.method
的可选]值有 [auto, link-local, manual, shared, disabled] ,ipv4.method
最简可写成ipv.me
-
ipv4.addresses
设置IP地址, 最简可写成ipv4.a
, 可设置多个地址,以逗号分隔, 也可多次用+ipv4.a
ipv4.a
(ipv4.addresses)可以设置多个(,逗号分隔,可以有空格),但只能出现一次,+ipv4.a
(+ipv4.addresses)可以设置多个(,逗号分隔)可以出现多次
-
- 网关
ipv4.g
(ipv4.gateway)只能有一个, (在图形界面也只能设置一个), 如果没设置网关就不能上网,但只要有ip地址,就能让网段内其它主机访问,比如ssh连接,没有网关就是能进不能出
- 网关
-
ipv4.dns
不能简写,可一次设置多个,+ipv4.dns
可多次设置多个
-
ipv4.dns-search
可简写为ipv4.dns-s
, 搜索域
-
ipv4.ignore-auto-dns
取值true
|fasle
是否跳过自动域名 , 最简只能写成ipv4.ignore-auto-d
对应图形界面
ipv4.x
前面可以加(加号或减号±),ipv4.x
表示设置+ipv4.x
表示新增,-ipv4.x
表示移除
一句中只能出现一次ipv4.x
,后面的ipv4.x
会覆盖前面的ipv4.x
一句中可以出现多次+ipv4.x
和-ipv4.x
sudo nmcli c m "netplan-ens33" ipv4.method manual ipv4.addr 192.168.168.224/24 ipv4.gateway 192.168.168.2 ipv4.dns 192.168.168.2
最好加上单引号或双引号
sudo nmcli connection modify "有线连接 1" ipv4.method 'manual' ipv4.addr "192.168.168.225/24" ipv4.gateway "192.168.168.2" ipv4.dns '192.168.168.2'
也可以分成多句
sudo nmcli c m "有线连接 1" ipv4.addr "192.168.168.224/24"
sudo nmcli connection modify "有线连接 1" ipv4.gateway "192.168.168.2"
sudo nmcli co mo "有线连接 1" ipv4.method 'manual'
自动获取ip
sudo nmcli co mo "有线连接 1" ipv4.method 'auto'
手动指定ip地址和网关,静态IP
sudo nmcli co mo "有线连接 1" ipv4.method 'manual' ipv4.addresses "192.168.168.224/24" ipv4.gateway "192.168.168.2"
手动指定的dns, 跳过自动获取dns
sudo nmcli co mo "有线连接 1" ipv4.ignore-auto-d 'true'
设置dns , 相同的dns不会重复
sudo nmcli co mo "有线连接 1" ipv4.dns "192.168.168.2 , 8.8.4.4 , 223.6.6.6 , 180.76.76.76"
sudo nmcli co mo "有线连接 1" +ipv4.dns "123.125.81.6 ,1.1.1.1,8.8.8.8,114.114.114.114"
sudo nmcli co mo "有线连接 1" +ipv4.dns "192.168.168.2 , 6.6.6.6" # 不会重复
sudo nmcli co mo "有线连接 1" -ipv4.dns "6.6.6.6"
设置搜索域
sudo nmcli co mo "有线连接 1" ipv4.dns-search 'baidu.com , google.cn , qq.com'
一句设置 method
, addresses
, gateway
, dns
, 跳过自动DNS , search
sudo nmcli connection modify "有线连接 1" ipv4.method 'manual' ipv4.addresses "192.168.168.224/24" ipv4.gateway "192.168.168.2" ipv4.dns "180.76.76.76 , 223.6.6.6 , 119.29.29.29 , 223.5.5.5,123.125.81.6, 1.1.1.1,8.8.8.8,114.114.114.114" ipv4.ignore-auto-dns 'true' ipv4.dns-search 'baidu.com' ; sudo systemctl restart NetworkManager
简写
sudo nmcli co mo "有线连接 1" ipv4.method 'manual' ipv4.addresses "192.168.168.224/24" ipv4.gateway "192.168.168.2" ipv4.dns "180.76.76.76 , 223.6.6.6 , 119.29.29.29 , 223.5.5.5,123.125.81.6, 1.1.1.1,8.8.8.8,114.114.114.114" ipv4.ignore-auto-dns 'true' ipv4.dns-search 'baidu.com' ; sudo systemctl restart NetworkManager
sudo nmcli c m "有线连接 1" ipv4.method 'manual' ipv4.addresses "192.168.168.224/24" ipv4.gateway "192.168.168.2" ipv4.dns "180.76.76.76 , 223.6.6.6 , 119.29.29.29 , 223.5.5.5,123.125.81.6, 1.1.1.1,8.8.8.8,114.114.114.114" ipv4.ignore-auto-dns 'true' ipv4.dns-search 'baidu.com' ; sudo systemctl restart NetworkManager
method可写成me , addresses可写成a , gateway可写成g , dns不能简写 , dns-serarch可写成dns-s
sudo nmcli c m "有线连接 1" ipv4.me manual ipv4.a "192.168.168.224/24" ipv4.g "192.168.168.1" ipv4.dns "192.168.168.2 , 223.6.6.6 , 180.76.76.76, 123.125.81.6, 1.1.1.1,8.8.8.8,114.114.114.114,8.8.4.4" ipv4.ignore-auto-d 'true' ipv4.dns-s 'baidu.com' ; sudo systemctl restart NetworkManager
没有空格等一些特殊字符的话, 也可以不加引号, 点号不影响
sudo nmcli c m "有线连接 1" ipv4.me manual ipv4.a 192.168.168.224/24 ipv4.g 192.168.168.2 ipv4.dns 192.168.168.2,223.6.6.6,180.76.76.76,123.125.81.6,1.1.1.1,8.8.8.8,114.114.114.114,8.8.4.4 ipv4.ignore-auto-d true ipv4.dns-s baidu.com ; sudo systemctl restart NetworkManager
modify
后接连接名或UUID, 可用 nmcli c
=nmcli c s
=nmcli c show
=nmcli connection show
查看有哪些连接及其名称和UUID
nmcli c
nmcli c s
nmcli c show
nmcli connection show
nmcli co sho
240612实测
root@localhost-live:/home/z# nmcli c
NAME UUID TYPE DEVICE
有线连接 1 f960ada4-137a-345d-872e-1de2b90a327a ethernet ens160
有线连接 2 c3066ca7-9a5f-3a11-aebf-076405441d7e ethernet ens192
lo 7109a275-956e-479a-ae06-011de15ee247 loopback lo
root@localhost-live:/home/z# nmcli co sho
NAME UUID TYPE DEVICE
有线连接 1 f960ada4-137a-345d-872e-1de2b90a327a ethernet ens160
有线连接 2 c3066ca7-9a5f-3a11-aebf-076405441d7e ethernet ens192
lo 7109a275-956e-479a-ae06-011de15ee247 loopback lo
root@localhost-live:/home/z# nmcli connection show
NAME UUID TYPE DEVICE
有线连接 1 f960ada4-137a-345d-872e-1de2b90a327a ethernet ens160
有线连接 2 c3066ca7-9a5f-3a11-aebf-076405441d7e ethernet ens192
lo 7109a275-956e-479a-ae06-011de15ee247 loopback lo
root@localhost-live:/home/z# nmcli c s
NAME UUID TYPE DEVICE
有线连接 1 f960ada4-137a-345d-872e-1de2b90a327a ethernet ens160
有线连接 2 c3066ca7-9a5f-3a11-aebf-076405441d7e ethernet ens192
lo 7109a275-956e-479a-ae06-011de15ee247 loopback lo
对于使用 NetworkManager
的系统, 一般用GNOME桌面图形界面的系统都默认用NetworkManager, 如 CentOS7,8,9 , Fedora36 等 都可以使用nmcli
和 nmtui
命令来配置网络
可以用 nmcli help
, nmcli c help
和 nmcli c m help
查看对应的帮助
$ nmcli help
用法:nmcli [选项] 对象 { 命令 | help }
选项
-a, --ask 询问缺少的参数
-c, --colors auto|yes|no 是否在输出中使用颜色
-e, --escape yes|no 转义值中的列分隔符
-f, --fields <字段,...>|all|common 指定要输出的字段
-g, --get-values <字段,...>|all|common -m tabular -t -f 的快捷方式
-h, --help 打印此帮助
-m, --mode tabular|multiline 输出模式
-o, --overview 概览模式
-p, --pretty 美化输出
-s, --show-secrets 允许显示密码
-t, --terse 简介输出
-v, --version 显示程序版本
-w, --wait <秒数> 设定操作完成的等待超时
对象
g[eneral] NetworkManager 的常规状态和操作
n[etworking] 整体网络控制
r[adio] NetworkManager 无线电开关
c[onnection] NetworkManager 的连接
d[evice] NetworkManager 管理的设备
a[gent] NetworkManager 机密(secret)或 polkit 代理
m[onitor] 监视 NetworkManager 更改
$ nmcli connection help
用法:nmcli connection { 命令 | help }
命令 := { show | up | down | add | modify | clone | edit | delete | monitor | reload | load | import | export }
show [--active] [--order <排序规则>]
show [--active] [id | uuid | path | apath] <ID> ...
up [[id | uuid | path] <ID>] [ifname <接口名称>] [ap <BSSID>] [passwd-file <密码文件>]
down [id | uuid | path | apath] <ID> ...
add 常用选项 类型特定选项 从选项 IP_选项 [-- ([+|-]<设置>.<属性> <值>)+]
modify [--temporary] [id | uuid | path] <ID> ([+|-]<设置>.<属性> <值>)+
clone [--temporary] [id | uuid | path ] <ID> <新名称>
edit [id | uuid | path] <ID>
edit [type <新连接类型>] [con-name <新连接名称>]
delete [id | uuid | path] <ID>
monitor [id | uuid | path] <ID> ...
reload
load <文件名> [ <文件名>... ]
import [--temporary] type <类型> file <要导入的文件>
$ nmcli connection modify help
用法:nmcli connection modify { 参数 | help }
参数 := [id | uuid | path] <ID> ([+|-]<设置>.<属性> <值>)+
修改连接配置集的一个或多个属性。
配置集由它的名称、UUID 或 D-Bus 路径代表。对于有多个值
的属性,可以使用 "+" 或 "-" 为属性名加前缀。
"+" 代表附加项而不是覆盖整个值。
"-"代表删除选项的项而不是整个值。
参数 := remove <设置>
从连接配置集中删除一个设置。
示例:
nmcli con mod home-wifi wifi.ssid rakosnicek
nmcli con mod em1-1 ipv4.method manual ipv4.addr "192.168.1.2/24, 10.10.1.5/8"
nmcli con mod em1-1 +ipv4.dns 8.8.4.4
nmcli con mod em1-1 -ipv4.dns 1
nmcli con mod em1-1 -ipv6.addr "abbe::cafe/56"
nmcli con mod bond0 +bond.options mii=500
nmcli con mod bond0 -bond.options downdelay
nmcli con mod em1-1 remove sriov
NetworkManager官网
NetworkManager官网—man pages
Archlinux的nmcli用例—nmcli-examples - usage examples of nmcli
Archlinux的NMCLI(1)—nmcli - command-line tool for controlling NetworkManager