简述

语法

nmcli [OPTIONS...] { help | general | networking | radio | connection | device | agent | monitor } [COMMAND] [ARGUMENTS...]
上面的语法就是: nmcli [选项...] 对象 [命令] [参数...]
对象 = help | general | networking | radio | connection | device | agent | monitor 提示: 1-输入命令的时候请善用tab补全,少打很多单词!
2-支持简写,例如connection可以简写成con或c, modify可以简写成mod或m

比较有用的选项(OPTION)

-a | --ask  提示输入缺少的参数,而不是报错。例如连接wifi的时候,没有提供password参数,那么如果有-a选项就会提示输入密码
-p | --pretty 显示的时候会更加易于人类阅读,尤其是多行显示的时候,可以分块显示
-m | --mode { tabular | multiline } tabular显示的时候是表格式(有表头)的,不易阅,multiline是多行类似key:value形式。如果省略,大多数命令默认使用tabular。 nmcli connection show ID和nmcli device show这两命令因为结构化信息不好单行显示,如果省略,默认使用multiline
-f | --fields { field1,field2... | all | common } 默认使用common(命令公共字段)。也可以指定特定字段,比如nmcli -f GENERAL.DEVICE,IP4.ADDRESS device show 显示网卡名和ip地址(善用tab补全)。查看可用字段的方法:1-通过对应对象的show来找到字段.对于connection对象,可以使用man 5 nm-settings查看, 或者输入错误字段,让报错来提示可字段,比如输入nmcli -f xxx connection show myAP 就会报错,提示可用字段

对象

general对象(常规信息)

用途

  • 常规信息,个人感觉本对象用途不大,稍微有用一点的就是status了,例如:显示NetworkManager的状和操作权限,获取和修改系统主机名,NetworkManager的日志级别和域

语法

nmcli general { status | hostname | permissions | logging } [ARGUMENTS...]

networking对象(整个网络)

用途

  • 查询NetworkManager状态,启用禁用网络

语法

nmcli networking { on | off | connectivity } [ARGUMENTS...]

命令示例

nmcli networking off #禁用所有被NetworkManager托管的网络接口的网络连接(修改配置文件可以启用或禁止NetworkManager托管,可以自行百度)
nmcli networking connectivity check # 参数check表示重新检查连接状态。连接状态full表示具有完全的internet访问能力,limited表示连接到一个网络,但是internet未接入

radio对象(无线开关)

用途

  • 显示无线电开关状态,启用、禁用无线电

语法

nmcli radio { all | wifi | wwan } [ARGUMENTS...]

命令示例

nmcli radio wifi      # 打印wifi开关状态
nmcli radio wifi off # 表示关闭wifi

connection对象(连接的配置)

用途

  • NetworkManager会把网络配置保存为connections配置信息,比如保存二层网络信息,ip信息等。NetworkManger会根据这些信息知道怎么去连接一个网络。在一个特定设备,可以有多个连接配置(比如一个是dhcp的,一个是静态ip地址的),但是只有一个配置是“活动“的配置。connection对象就是用来管理这些连接配置的。

语法

nmcli connection { show | up | down | modify | add | edit | clone | delete | monitor | reload | load | import | export } [ARGUMENTS...]
  • 激活连接的语法详述

    语法: nmcli connection up [ id | uuid | path ] ID [ifname ifname] [ap BSSID] [passwd-file file]

    解释:一个连接由其name(名称),uuid或path(就是D-Bus路径)所标识。如果ID不明确,则可以使用关键字id,uuid或path来指明这个ID是什么。当需要特定设备激活连接时,应提供带有接口名称的ifname选项。如果未提供ID,则需要一个ifname,NetworkManager将为给定的ifname激活最佳的可用连接。如果是VPN连接,则ifname选项指定基本连接的设备。ap选项指定在Wi-Fi连接的情况下应使用哪个特定的AP。passwd-file:某些网络在激活期间可能需要凭据。您可以使用此选项提供这些凭据。文件的每一行应包含一个密码。文件内容格式为setting_name.property_name:the password。例如WPA-PSK连接的格式为802-11-wireless-security.psk:secret12345。nmcli还接受wifi-sec和wifi字符串,而不是802-11-wireless-security。当NetworkManager需要密码但未提供密码时,nmcli在使用--ask运行时会要求输入密码。如果未传递--ask,则NetworkManager可以询问可能正在运行的另一个秘密代理(通常是GUI秘密代理,例如nm-applet或gnome-shell)。

  • 停用连接的语法详述

    语法: nmcli connection down [ id | uuid | path | apath ] ID... #注意这里的ID可指定多个

    解释: 请注意,该命令将停用指定的活动连接,但是该连接处于活动状态的设备仍可以连接,并且将通过查找设置了“自动连接”标志的合适连接来执行自动激活。 请注意,停用的连接配置文件在内部被阻止再次自动连接。 因此,它不会自动连接,直到重新启动或直到用户执行取消自动连接的操作为止,例如修改配置文件或显式激活它。在大多数情况下,您可能想使用device disconnect命令。

    该连接由其名称,UUID或D-Bus路径标识。 如果ID不明确,则可以使用关键字id,uuid,path或apath。

  • 修改连接的语法详述

    语法 : modify [--temporary] [ id | uuid | path ] ID { option value | [+|-]setting.property value } ...

    解释: 在连接配置文件中添加,修改或删除属性。要设置属性,只需指定属性名称后跟值即可。空值(“”)将属性值重置为默认值。除了属性外,您还可以对某些属性使用简称。有关详细信息,请参阅“属性别名”部分。如果要将项目或标志附加到现有值,请使用+前缀作为属性名称或别名。如果要从容器类型或标志属性中删除项目,请使用-前缀。对于某些属性,您还可以通过指定从零开始的索引来删除元素。 +和-修饰符仅对支持它们的属性有效。例如,这些是多值(容器)属性或标志,例如ipv4.dns,ip4,ipv4.addresses,bond.options,802-1x.phase1-auth-flag等。有关设置和属性名称,其描述和默认值的完整参考,请参见nm-settings(5)。如果设置和属性是唯一的,则可以缩写。该连接由其名称,UUID或D-Bus路径标识。如果ID不明确,则可以使用关键字id,uuid或path。

  • add edit clone export import reload等命令这里省略, 参考文章头部给的url

命令示例:

nmcli connection show  # 列出网络连接的配置(存放于内存和硬盘的配置,nmcli -f active connection show 表示显示存储于内存配置, -f profile表示存放于硬盘的配置)
nmcli connection show --active # 仅列出处于活动状态的网络配置
nmcli --show-secrets -f 802-11-wireless-security.psk connection show myAP001 # 显示myAP001密码,加了--show-secrets或-s才能显示密码明文
nmcli connection show --order name # 按配置名排序,可选排序有type、active、name、path(d-bus路径),+号和-号表示升序和降序,未指定,则默认使用升序。默认排序是:--order active:name:path
nmcli connection show uuid 38781e62-4bab-4ba8-a086-bfaece222794 # 按指定关键字显示,关键字有id,uuid、path、apath。 用途是不能使用常规的nmcli connection show <配置名> 来显示的时候,这种显示方法就可以派上用场了。 nmcli connection up prof1 # 激活一个连接。
nmcli connection down prof1 # 停用一个连接 nmcli connection delete prof1 #删除一个配置, delete [ id | uuid | path ] ID... nmcli connection add type ethernet ifname enp5s0 # 创建一个连接。这里没有指定method,则默认使用auto,也就是自动配置。类型是以太网,类型有以太网、wifi,adsl等,具体参考文章头部给的url
nmcli connection add ifname enp5s0 autoconnect yes type ethernet ip4 10.1.1.1/8 gw4 10.1.0.1 # 创建一个静态ip的以太网连接 nmcli connection modify myEth +ipv4.dns 8.8.8.8 # 给myEth的配置添加dns
nmcli connection modify myEth ipv4.method manual ipv4.addresses "192.168.43.64/24,10.0.0.23/8" #修改myEth连接为手动,ip地址设置为两个
nmcli con mod myEth autoconnect no # 设置myEth连接配置为不自动连接(重启操作系统或从起NetworkManager就能看到不会自动连接了)
nmcli -f name,autoconnect-priority connection # 查看网络优先级,数字大的优先级高
nmcli con modify mySSID connection.autoconnect-priority 9 # 调整wifi名为mySSID的无线网络的自动连接优先级为9

device对象(网络接口)

用途

  • 显示或管理网络接口

语法

nmcli device { status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp } [ARGUMENTS...]

子命令详细解释(这里不全部翻译,理解了上面connection,这里也是差不多的):

set [ifname] ifname [ autoconnect { yes | no } ] [ managed { yes | no } ]

Set device properties. connect ifname Connect the device. NetworkManager will try to find a suitable connection that will be activated. It will also consider connections that are not set to auto connect.If no compatible connection exists, a new profile with default settings will be created and activated. This differentiates nmcli connection up ifname "$DEVICE" from nmcli device connect "$DEVICE" If --wait option is not specified, the default timeout will be 90 seconds.

reapply ifname

Attempt to update device with changes to the currently active connection made since it was last applied.

modify ifname { option value | [+|-]setting.property value } ...

Modify the settings currently active on the device.

This command lets you do temporary changes to a configuration active on a particular device. The changes are not preserved in the connection profile.See nm-settings(5) for the list of available properties. Please note that some properties can't be changed on an already connected device.You can also use the aliases described in Property Aliases section. The syntax is the same as of the nmcli connection modify command.

disconnect ifname...

Disconnect a device and prevent the device from automatically activating further connections without user/manual intervention. Note that disconnecting software devices may mean that the devices will disappear.(这段翻译一下:断开设备连接,并防止设备自动激活。 断开软设备的连接可能会让这些设备消失)

If --wait option is not specified, the default timeout will be 10 seconds.

delete ifname...

Delete a device. The command removes the interface from the system. Note that this only works for software devices like bonds, bridges, teams, etc(仅能删除软设备,例如bond、桥等). Hardware devices (like Ethernet) cannot be deleted by the command.(硬设备无法删除)

wifi [ list [--rescan | auto | no | yes ] [ifname ifname] [bssid BSSID] ]

列出wifi热点,可以指定无线网卡接口名和热点BSSID。列出的热点列表不会超过30秒,必要时会重新扫描(通过--rescan控制重新扫描:取值auto yes no)

wifi connect (B)SSID [password password] [ifname ifname] [bssid BSSID] [name name] [ private { yes | no } ] [ hidden { yes | no } ]

连接到由SSID或BSSID指定的wifi网络。该命令找到匹配的连接或创建一个连接,然后在设备上激活它。如果已经存在配置文件,可以直接使用nmcli connection up <配置文件名>。private表示该连接是否对其他用户可见。hidden用于连接隐藏ssid的wifi。

wifi hotspot [ifname IFNAME] [con-name NAME] [ssid SSID] [ band { a | bg } ] [channel channel] [password password]

创建一个热点,con-name是配置名。

wifi rescan [ifname IFNAME] [ssid SSID...]

重新扫描wifi接入点,可以指定多个SSID。对于隐藏ssid的网络,务必要指定ssid。命令不显示接入点列表。显示接入点列表请使用nmcli device wifi list命令

命令示例:

nmcli dev wifi list    # 列出可用的wifi接入点, list可以省略
nmcli device wifi connect mySSID password '12345678' # 连接热点mySSID, 连接成功后,就会自动生成配置文件,以后要再连接,可以使用nmcli connectio up mySSID命令了
nmcli device wifi hotspot con-name ap001 ifname wlp3s0 ssid myAP001 password 12345678 # 创建热点。以后如果要使用,可以直接nmcli connection up ap001
附:nmcli建热点成功,但是手机连接不上,可以这样解决(假设热点名是Raspi):
root@pi:# nmcli connection add type wifi ifname wlan0 con-name raspAP autoconnect yes ssid Raspi
root@pi:# nmcli connection modify raspAP 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared wifi-sec.key-mgmt wpa-psk wifi-sec.psk '1234568'
root@pi:~# nmcli connection up raspAP # 重点:如果up不起来,可以停掉dhcpcd服务

常用属性缩写

  • con-name = connection.id
  • autoconnect = connection.autoconnect
  • ifname = connection.interface-name
  • mtu = 不同类型下的.mtu属性
  • ssid = wireless.ssid
  • mode = wireless.mode(网卡为wifi时)
  • ip4 = 作用于ipv4.addresses(并且设置ipv4.method为manual) ,同理可知ip6
  • gw4 = ipv4.gateway(同理可知gw6)

属性取值参考

参考 https://developer.gnome.org/NetworkManager/unstable/nm-settings.html

比如查看ipv4.method可以有auto disable manual等值(打开上面网页搜索”ipv4 setting“)

更多例子参考

参阅 https://developer.gnome.org/NetworkManager/unstable/nmcli-examples.html

nmcli命令详解(创建热点,连接wifi,管理连接等)的更多相关文章

  1. linux命令大全之ln命令详解(创建软链接和硬链接)

    ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接,分为软链接.硬链接.软链接相当于windows的快捷方式,下面是使用方法和示例   ln是linux中又一 ...

  2. linux中nmcli命令详解

    https://www.iyunv.com/thread-269695-1-1.html http://www.178linux.com/44668

  3. Linux命令详解1--文件和目录管理之文件查找和比较

    1. 文件查找 1.1 strings命令 ------- 在对象文件或二进制文件中查找可打印的字符串.字符串是4个或更多可打印的任意序列,以换行或空字符结束. strings命令对识别随机对象文件很 ...

  4. Linux命令详解-Apache网站服务器配置和管理

    1.Apache网站服务器配置和管理 1.源码包安装 2.rpm包安装 rpm –a | grep httpd 3.启动服务 service httpd start 4.配置文件: /etc/http ...

  5. linux shell 脚本攻略学习11--mkdir和touch命令详解

    一.创建目录(mkdir命令详解) amosli@amosli-pc:~/learn$ mkdir dir amosli@amosli-pc:~/learn/dir$ mkdir folder amo ...

  6. [转帖]linux screen 命令详解,xshell关掉窗口或者断开连接,查看断开前执行的命令

    linux screen 命令详解,xshell关掉窗口或者断开连接,查看断开前执行的命令 https://binwaer.com/post/12.html yun install -y screen ...

  7. 【Linux 运维】查看网络连接状态信息之netstat和ss命令详解

    一.netstat 常用命令详解 通过man netstat可以查看netstat的帮助信息: netstat 命令:用于显示各种网络相关信息,如网络连接,路由表,接口状态,无效连接,组播成员 等等. ...

  8. 抓包工具:tcpdump抓包命令详解

    抓包工具:tcpdump抓包命令详解 简介: tcpdump全称:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以 ...

  9. DOS命令详解

    DOS命令详解 命令 \? 可以进入命令帮助 1.md命令创建目录. MKDIR [drive:]pathMD [drive:]path 如果命令扩展被启用,MKDIR 会如下改变: 如果需要,MKD ...

  10. Linux/CentOS 服务安装/卸载,开机启动chkconfig命令详解|如何让MySQL、Apache开机启动?

    chkconfig chkconfig在命令行操作时会经常用到.它可以方便地设置和查询不同运行级上的系统服务.这个可要好好掌握,用熟练之后,就可以轻轻松松的管理好你的启动服务了. 注:谨记chkcon ...

随机推荐

  1. 【dp,建模】AGC032D Rotation Sort

    Problem Link 有一个长为 \(n\) 的排列 \(p\),给定 \(A,B\),你每次可以做以下两种操作之一: 选取 \(l,r\),将 \(p[l:r]\) 循环右移,代价为 \(A\) ...

  2. 临上线项目使用ILRuntime热更

    前言 我们有一个用Unity引擎开发了二十个月的mmo arpg手游项目,在安卓已经测试三轮了,出于IOS的热的考虑且结合我们的情况:全部代码都是纯C#开发非Lua,所以计划使用ILRuntime热更 ...

  3. 设计模式学习-使用go实现迭代器模式

    迭代器模式 定义 优点 缺点 适用范围 代码实现 参考 迭代器模式 定义 迭代器模式(Iterator Design Pattern),也叫作游标模式(Cursor Design Pattern). ...

  4. 【2】Pycharm插件推荐,超级实用!每个小trick都可以快速提升变成效率!

    相关文章: [1]Pycharm 主题设置推荐Material Theme UI以及编辑环境配置(字体大小和颜色) [2]Pycharm插件推荐,超级实用!每个小trick都可以快速提升变成效率! [ ...

  5. C/C++ 反汇编:函数与结构体

    反汇编即把目标二进制机器码转为汇编代码的过程,该技术常用于软件破解.外挂技术.病毒分析.逆向工程.软件汉化等领域,学习和理解反汇编对软件调试.系统漏洞挖掘.内核原理及理解高级语言代码都有相当大的帮助, ...

  6. C/C++ 反汇编:多维数组与指针

    反汇编即把目标二进制机器码转为汇编代码的过程,该技术常用于软件破解.外挂技术.病毒分析.逆向工程.软件汉化等领域,学习和理解反汇编对软件调试.系统漏洞挖掘.内核原理及理解高级语言代码都有相当大的帮助, ...

  7. 俄大神 lopatkin Windows 精简优化系统 - 工具软件

    昨天有个网友邮件我,说是想找个Tiny7 Rev2的ISO操作系统文件,但是我找了下,以前的那些文件有些已经删除了,所以就在网上搜到了俄大神 lopatkin Windows 精简优化系统,特此放到网 ...

  8. 【动态内存】C语言动态内存使用常见错误及其避免方法(初学者避雷)

    C语言动态内存使用常见错误及其避免方法(初学者动态内存避雷手册) 求个赞求个赞求个赞求个赞 谢谢 先赞后看好习惯 打字不容易,这都是很用心做的,希望得到支持你 大家的点赞和支持对于我来说是一种非常重要 ...

  9. 大数据技术之DataX

    一.DataX简介 DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL.Oracle等).HDFS.Hive.ODPS.HBase.FTP等各种异构数据源之 ...

  10. NC16681 [NOIP2003]加分二叉树

    题目链接 题目 题目描述 ​ 设一个n个节点的二叉树tree的中序遍历为(l,2,3,-,n),其中数字1,2,3,-,n为节点编号.每个节点都有一个分数(均为正整数),记第j个节点的分数为di,tr ...