1. nmcli 安装

nmcli实用工具是由NetworkManager包提供,有关详情,请参阅NetworkManager(8)

~]$ yum install -y NetworkManager

在CentOS 7中,默认已安装。


2. nmcli 基本选项

选项 作用
-t 简洁输出,会将多余的空格删除,
-p 人性化输出,输出很漂亮
-n 优化输出,有两个选项tabular(不推荐)和multiline(默认)
-c 颜色开关,控制颜色输出(默认启用)
-f 过滤字段,all为过滤所有字段,common打印出可过滤的字段
-g 过滤字段,适用于脚本,以:分隔
-w 超时时间

3. general 常规选项

命令格式:nmcli general {status|hostname|permissions|logging}

命令描述:使用此命令可以显示网络管理器状态和权限,你可以获取和更改系统主机名,以及网络管理器日志记录级别和域。

3.1 status

显示网络管理器的整体状态。

[root@www ~]# nmcli general status
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled

3.2 hostname

获取主机名或该更主机名,在没有给定参数的情况下,打印配置的主机名,当指定了参数,它将被移交给NetworkManager,以设置为新的系统主机名。

[root@www ~]# nmcli general hostname
www.keepdown.cn
[root@www ~]# nmcli general hostname myself
[root@www ~]# nmcli general hostname
myself

3.3 permissions

显示当前用户对网络管理器可允许的操作权限。 如启用和禁用网络、更改WI-FI和WWAN状态、修改连接等。

[root@www ~]# nmcli general permissions
PERMISSION VALUE
org.freedesktop.NetworkManager.enable-disable-network yes
org.freedesktop.NetworkManager.enable-disable-wifi yes
org.freedesktop.NetworkManager.enable-disable-wwan yes
org.freedesktop.NetworkManager.enable-disable-wimax yes
org.freedesktop.NetworkManager.sleep-wake yes
org.freedesktop.NetworkManager.network-control yes
org.freedesktop.NetworkManager.wifi.share.protected yes
org.freedesktop.NetworkManager.wifi.share.open yes
org.freedesktop.NetworkManager.settings.modify.system yes
org.freedesktop.NetworkManager.settings.modify.own yes
org.freedesktop.NetworkManager.settings.modify.hostname yes
org.freedesktop.NetworkManager.settings.modify.global-dns yes
org.freedesktop.NetworkManager.reload yes
org.freedesktop.NetworkManager.checkpoint-rollback yes
org.freedesktop.NetworkManager.enable-disable-statistics yes

3.4 loggin

获取和更改网络管理器日志记录级别和域,没有任何参数当前日志记录级别和域显示。为了更改日志记录状态, 请提供级别和域参数,有关可用级别和域值, 参阅NetworkManager.conf(5)

[root@www ~]# nmcli general logging
LEVEL DOMAINS
INFO PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,TEAM,CONCHECK,DCB,DISPATCH,AUDIT,SYSTEMD,PROXY

4. networking 网络控制

命令格式:nmcli networking {on|off|connectivity}

命令描述:查询网络管理器网络状态,开启和关闭网络

选项:

  • on: 禁用所有接口
  • off: 开启所有接口
  • connectivity: 获取网络状态,可选参数checl告诉网络管理器重新检查连接性,否则显示最近已知的状态。而无需重新检查。(可能的状态如下所示)
    • none: 主机为连接到任何网络
    • portal: 无法到达完整的互联网
    • limited: 主机已连接到网络,但无法访问互联网
    • full: 主机连接到网络,并具有完全访问
    • unknown: 无法找到连接状态
[root@www ~]# nmcli networking connectivity
full
[root@www ~]# nmcli networking connectivity check
full

5. radio 无线限传输控制

命令格式:nmcli radio {all|wifi|wwan}

显示无线开关状态,或启用和禁用开关

[root@www ~]# nmcli radio all
WIFI-HW WIFI WWAN-HW WWAN
enabled enabled enabled enabled
[root@www ~]# nmcli radio all off
[root@www ~]# nmcli radio all
WIFI-HW WIFI WWAN-HW WWAN
enabled disabled enabled disabled
[root@www ~]# nmcli radio wifi on
[root@www ~]# nmcli radio wwan on
[root@www ~]# nmcli radio all
WIFI-HW WIFI WWAN-HW WWAN
enabled enabled enabled enabled

6. monitor 活动监视器

活动监视器(ACTIVITY MONITOR)

观察网络管理器活动。监视连接的变化状态、设备或连接配置文件。

另请参阅 nmcli connection monitornmcli device monitor某些设备或连接中的更改。


7. connection 连接管理

命令格式:nmcli connection {show|up|down|modify|add|edit|clone|delete|monitor|reload|load|import|export}

这是主要使用的一个功能。

7.1 show

show有两种用法,分别是:

1. 列出活动的连接,或进行排序(+-为升降序)

# 查看所有连接状态
[root@www ~]# nmcli connection show
# 等同于nmcli connection show --order +active
[root@www ~]# nmcli connection show --active
# 以活动的连接进行排序
[root@www ~]# nmcli connection show --order +active
# 将所有连接以名称排序
[root@www ~]# nmcli connection show --order +name
# 将所有连接以类型排序(倒序)
[root@www ~]# nmcli connection show --order -type

2. 查看指定连接的详细信息

[root@www ~]# nmcli connection show eth0
# 省略......

7.2 up

激活连接,提供连接名称或uuid进行激活,若未提供,则可以使用ifname指定设备名进行激活。

# 以连接名进行激活
[root@www ~]# nmcli connection up eth0
# 以uuid进行激活
[root@www ~]# nmcli connection up 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
# 以设备接口名进行激活
[root@www ~]# nmcli connection up ifname eth0

7.3 down

停用连接,提供连接名或uuid进行停用,若未提供,则可以使用ifname指定设备名进行激活。

# 以连接名进行激活
[root@www ~]# nmcli connection down eth0
# 以uuid进行激活
[root@www ~]# nmcli connection down 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
# 以设备接口名进行激活
[root@www ~]# nmcli connection down ifname eth0

7.4 modify

这些属性可以用nmcli connection show eth0进行获取,然后可以修改、添加或删除属性,若要设置属性,只需指定属性名称后跟值,空值将删除属性值,同一属性添加多个值使用+。同一属性删除指定值用-加索引。

添加多个ip

# 添加三个
[root@www ~]# nmcli connection modify eth0 +ipv4.addresses 192.168.100.102/24
[root@www ~]# nmcli connection modify eth0 +ipv4.addresses 192.168.100.103/24
[root@www ~]# nmcli connection modify eth0 +ipv4.addresses 192.168.100.104/24
# 查看
[root@www ~]# nmcli -f IP4 connection show eth0
IP4.ADDRESS[1]: 192.168.100.101/24
IP4.GATEWAY: 192.168.100.100
IP4.DNS[1]: 8.8.8.8
# 启用配置
[root@www ~]# nmcli connection up eth0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/18)
# 再次查看
[root@www ~]# nmcli -f IP4 connection show eth0
IP4.ADDRESS[1]: 192.168.100.101/24
IP4.ADDRESS[2]: 192.168.100.102/24
IP4.ADDRESS[3]: 192.168.100.103/24
IP4.ADDRESS[4]: 192.168.100.104/24
IP4.GATEWAY: 192.168.100.100
IP4.DNS[1]: 8.8.8.8

删除指定ip

[root@www ~]# nmcli -f IP4 connection show eth0
IP4.ADDRESS[1]: 192.168.100.101/24
IP4.ADDRESS[2]: 192.168.100.102/24
IP4.ADDRESS[3]: 192.168.100.103/24
IP4.ADDRESS[4]: 192.168.100.104/24
IP4.GATEWAY: 192.168.100.100
IP4.DNS[1]: 8.8.8.8
# 删除索当前索引为2的地址
[root@www ~]# nmcli connection modify eth0 -ipv4.addresses 2
# 查看
[root@www ~]# nmcli -f IP4 connection show eth0
IP4.ADDRESS[1]: 192.168.100.101/24
IP4.ADDRESS[2]: 192.168.100.102/24
IP4.ADDRESS[3]: 192.168.100.103/24
IP4.ADDRESS[4]: 192.168.100.104/24
IP4.GATEWAY: 192.168.100.100
IP4.DNS[1]: 8.8.8.8
# 再次激活
[root@www ~]# nmcli connection up eth0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/19)
# 查看
[root@www ~]# nmcli -f IP4 connection show eth0
IP4.ADDRESS[1]: 192.168.100.101/24
IP4.ADDRESS[2]: 192.168.100.102/24
IP4.GATEWAY: 192.168.100.100
IP4.DNS[1]: 8.8.8.8

7.5 add

这是创建一个新的连接,需要指定新创建连接的属性,语法与modify相同。

[root@www ~]# nmcli con add con-name eth1 type ethernet  autoconnect yes ifname eth0
# con-name 连接名称
# type 连接类型
# autoconnect 是否自动连接
# ifname 连接到的设备名称

更多的类型或方法可以使用nmcli connection add help查看。

7.6 clone

克隆连接,克隆一个存在的连接,除了连接名称和uuid是新生成的,其他都是一样的。

[root@www ~]# nmcli connection clone eth0 eth0_1

7.7 delete

删除连接,这将删除一个连接。

[root@www ~]# nmcli connection delete eth0_1

7.8 load

从磁盘加载/重新加载一个或多个连接文件,例如你手动创建了一个/etc/sysconfig/network-scripts/ifcfg-ethx连接文件,你可以将其加载到网络管理器,以便管理。

[root@www ~]# echo -e "TYPE=Ethernet\nNAME=ethx" > /etc/sysconfig/network-scripts/ifcfg-ethx
[root@www ~]# nmcli connection show
NAME UUID TYPE DEVICE
eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet eth0
[root@www ~]# nmcli connection load /etc/sysconfig/network-scripts/ifcfg-ethx
[root@www ~]# nmcli connection show
NAME UUID TYPE DEVICE
eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet eth0
ethx d45d97fb-8530-60e2-2d15-d92c0df8b0fc 802-3-ethernet --

7.9 monitor

监视连接配置文件活动。每当指定的连接更改时, 此命令都会打印一行。要监视的连接由其名称、UUID 或 D 总线路径标识。如果 ID 不明确, 则可以使用关键字 id、uuid 或路径。有关 ID 指定关键字的说明, 请参阅上面的连接显示。

监视所有连接配置文件, 以防指定无。当所有监视的连接消失时, 该命令将终止。如果要监视连接创建, 请考虑使用带有 nmcli 监视器命令的全局监视器。

[root@www ~]# nmcli connection monitor eth0

8. device 设备管理

命令格式:nmcli device {status|show|set|connect|reapply|modify|disconnect|delete|monitor|wifi|lldp}

显示和管理设备接口。该选项有很多功能,例如连接wifi,创建热点,扫描无线,邻近发现等,下面仅列出常用选项。详细功能可使用nmcli device help查看。

8.1 status

打印设备状态,如果没有将命令指定给nmcli device,则这是默认操作。

[root@www ~]# nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected eth0
lo loopback unmanaged --
[root@www ~]# nmcli device
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected eth0
lo loopback unmanaged --

8.2 show

显示所有设备接口的详细信息。

# 不指定设备接口名称,则显示所有接口的信息
[root@www ~]# nmcli device show eth0
GENERAL.DEVICE: eth0
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:99:9A:A1
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: eth0
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/9
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.100.101/24
IP4.ADDRESS[2]: 192.168.100.102/24
IP4.GATEWAY: 192.168.100.100
IP4.DNS[1]: 8.8.8.8

8.3 set

设置设备属性

[root@www ~]# nmcli device set ifname eth0 autoconnect yes

8.4 connect

连接设备。提供一个设备接口,网络管理器将尝试找到一个合适的连接, 将被激活。它还将考虑未设置为自动连接的连接。(默认超时为90s)

[root@www ~]# nmcli dev connect eth0
Device 'eth0' successfully activated with '5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03'.

8.5 reapply

使用上次应用后对当前活动连接所做的更改来更新设备。

[root@www ~]# nmcli device reapply eth0
Connection successfully reapplied to device 'eth0'.

8.6 modify

修改设备上处于活动的设备,但该修改只是临时的,并不会写入文件。(语法与 nmcli connection modify 相同)

[root@www ~]# nmcli device modify eth0 +ipv4.addresses 192.168.100.103/24
Connection successfully reapplied to device 'eth0'.
[root@www ~]# nmcli dev show eth0
[root@www ~]# nmcli device modify eth0 -ipv4.addresses 1
Connection successfully reapplied to device 'eth0'.

8.7 disconnect

断开当前连接的设备,防止自动连接。但注意,断开意味着设备停止!但可用 connect 进行连接

[root@www ~]# nmcli device disconnect eth0

8.8 delete

删除设备,该命令从系统中删除接口。请注意, 这仅适用于诸如bonds, bridges, teams等软件设备。命令无法删除硬件设备 (如以太网)。超时时间为10秒

[root@www ~]# nmcli device delete bonds

8.9 monitor

监视设备活动。每当指定的设备更改状态时, 此命令都会打印一行。

监视所有设备以防未指定接口。当所有指定的设备消失时, 监视器将终止。如果要监视设备添加, 请考虑使用带有 nmcli 监视器命令的全局监视器。

[root@www ~]# nmcli device monitor eth0

9. nmcli 返回状态码

mcli 如果成功退出状态值为0,如果发生错误则返回大于0的值。

  • 0: 成功-指示操作已成功

  • 1: 位置或指定的错误

  • 2: 无效的用户输入,错误的nmcli调用

  • 3: 超时了(请参阅 --wait 选项)

  • 4: 连接激活失败

  • 5: 连接停用失败

  • 6: 断开设备失败

  • 7: 连接删除失败

  • 8: 网络管理器没有运行

  • 10: 连接、设备或接入点不存在

  • 65: 当使用 --complete-args 选项,文件名应遵循。


nmcli工具详解的更多相关文章

  1. Chrome开发者工具详解(5)-Application、Security、Audits面板

    Chrome开发者工具详解(5)-Application.Security.Audits面板 这篇文章是Chrome开发者工具详解这一系列的最后一篇,介绍DevTools最后的三个面板功能-Appli ...

  2. Chrome开发者工具详解(4)-Profiles面板

    Chrome开发者工具详解(4)-Profiles面板 如果上篇中的Timeline面板所提供的信息不能满足你的要求,你可以使用Profiles面板,利用这个面板你可以追踪网页程序的内存泄漏问题,进一 ...

  3. Chrome开发者工具详解(3)-Timeline面板

    Chrome开发者工具详解(3)-Timeline面板 注: 这一篇主要讲解面板Timeline,参考了Google的相关文档,主要用于公司内部技术分享.. Timeline面板 Timeline面板 ...

  4. Chrome开发者工具详解(2)-Network面板

    Chrome开发者工具详解(2)-Network面板 注: 这一篇主要讲解面板Network,参考了Google的相关文档,主要用于公司内部技术分享. Chrome开发者工具面板 面板上包含了Elem ...

  5. Chrome开发者工具详解(1)-Elements、Console、Sources面板

    Chrome开发者工具详解(1)-Elements.Console.Sources面板 Chrome开发者工具面板 面板上包含了Elements面板.Console面板.Sources面板.Netwo ...

  6. oracle tkprof 工具详解

    oracle  tkprof 工具详解 今天是2013-09-26,进行tkprof工具使用学习,在此记录一下笔记: 一)查看需要跟踪会话信息: select s.sid,s.serial#,s.us ...

  7. [转帖]前端-chromeF12 谷歌开发者工具详解 Network篇

    前端-chromeF12 谷歌开发者工具详解 Network篇 https://blog.csdn.net/qq_39892932/article/details/82493922 blog 也是原作 ...

  8. [转帖]前端-chromeF12 谷歌开发者工具详解 Sources篇

    前端-chromeF12 谷歌开发者工具详解 Sources篇 原贴地址:https://blog.csdn.net/qq_39892932/article/details/82498748 cons ...

  9. [转帖]前端-chromeF12 谷歌开发者工具详解 Console篇

    前端-chromeF12 谷歌开发者工具详解 Console篇 https://blog.csdn.net/qq_39892932/article/details/82655866 趁着搞 cloud ...

随机推荐

  1. Python:每日一题005

    题目: 输入三个整数x,y,z,请把这三个数由小到大输出. 程序分析: 我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x> ...

  2. nginx图解

    1.Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理. 这里我给来2张图,对正向代理与反响代理做个诠释,具体细节,大家可以翻阅下资料. Nginx在做反向代理时,提供性能稳定, ...

  3. 走进JDK(九)------AbstractMap

    map其实就是键值对,要想学习好map,得先从AbstractMap开始. 一.类定义.构造函数.成员变量 public abstract class AbstractMap<K,V> i ...

  4. boost--内存池

    boost的内存池实现了一个快速.紧凑的内存分配和管理器,使用它可以完全不用考虑delete释放问题.常用的boost内存池有pool.object_pool.singleton_pool. 1.po ...

  5. 单台机器安装zookeeper

    先给一堆学习文档,方便以后查看 官网文档地址大全: OverView(概述) http://zookeeper.apache.org/doc/r3.4.6/zookeeperOver.html Get ...

  6. maven学习三

    做项目时使用maven构建项目已经是现在的流行做法了.那么maven的作用是什么呢?maven中的几个常用的命令都有什么用?下面我们来看一下. maven最大的作用就是用于对项目中jar包依赖的统一管 ...

  7. Android -Services 使用简介

    Android Services 四大组件之一,主要用于后台长时间运行.没有界面.这里讲解两种services的启动还有AIDL通信方式. 1.startservices a.建立继承services ...

  8. Oracle数据库查询基本数据

    ------------------------------------------------------------------找出EMP表select * from EMP;--选择在部门30中 ...

  9. 几种String对象方法的区别

    1.在String对象方法中,发现.slice()方法和.substring()方法的作用几乎相同,都是根据起始索引返回截取得到的字符串.经过查阅资料和实测得到区别: 正常情况下索引都为正值,返回值为 ...

  10. Hessian 使用例子

    一.协议包(数据对象需要实现序列化接口,可以用于服务端接口.客户端调用服务之用) /** * */ package com.junge.demo.protocol.model; import java ...