1.简介
nmcli命令赋予你直接在 Linux 命令行操作 NetworkManager 工具的能力。它是 NetworkManager 软件包集成的一部分,通过使用一些 应用程序接口(API)来获取 NetworkManager 的功能。 nmcli
发布于 2010 年,用以替代其他配置网络接口和连接的方法,例如 ifconfig。因为它是一个 命令行界面(CLI)工具,被设计用在终端窗口和脚本中,所以对于那些工作在没有图形用户界面(GUI)的系统的管理员来说,它是一个非常理想的工具。
2. nmcli语法
nmcli <选项> <子命令> <操作>
nmcli
一共有 8 个子命令,每个子命令有一些相关的网络操作:
-
help
提供有关nmcli
命令和使用方法的帮助信息 -
general
返回 NetworkManager 的状态和总体配置信息 -
networking
提供命令来查询某个网络连接的状态和启动、禁用连接的功能 -
radio
提供命令来查询某个 WiFi 网络连接的状态和启动、禁用连接的功能 -
monitor
提供命令来监控 NetworkManager 的活动并观察网络连接的状态改变 -
connection
提供命令来启用或禁用网络接口、添加新的连接、删除已有连接等功能 -
device
主要被用于更改与某个设备(例如接口名称)相关联的连接参数或者使用一个已有的连接来连接设备 -
secret
注册nmcli
来作为一个 NetworkManager 的秘密代理,用以监听秘密信息。这个子命令很少会被用到,因为当连接到网络时,nmcli
会自动做这些事
3. 实例
connection管理连接
查看所有连接
nmcli connection show
仅查看活跃连接
nmcli connection show --active
创建连接default,IP地址通过DHCP自动获取
nmcli connection add con-name default type ethernet ifname eth1
删除连接
nmcli connection delete default
创建连接static,并指定静态IP地址
nmcli connection add con-name static ifname eth1 /
autoconnect no /
type ethernet /
ipv4.method manual /
ipv4.addresses 192.168.1.2/24 /
gw4 192.168.1.1
修改连接配置
nmcli connection modify "static" ipv4.dns 8.8.8.8#为static连接添加dns地址
nmcli connection modify "static" ipv4.addresses 192.168.1.10#修改static连接的IP地址
常用参数和网卡配置文件参数对应关系
nmcli con add/mod | 网卡配置文件 |
---|---|
ipv4.method manual | BOOTPROTO=none |
ipv4.method auto | BOOTPROTO=dhcp |
ipv4.addresses | IPADDR、PREFIX、GATEWAY |
ipv4.dns | DNS |
ipv4.dns-search example.com | DOMAIN=example.com |
ipv4.ignore-auto-dns true | PEERDNS=no |
connection.autoconnect yes | ONBOOT=yes |
connection.id eth0 | NAME=eth0 |
connection.interface-name eth0 | DEVICE=eth0 |
802-3-ethernet.mac-address . . . | HWADDR= . . . |
ipv4.ignore-auto-dns yes | 手动设置dns |
device管理网卡
查看网卡信息
nmcli device
查看网卡详细信息
nmcli device show
激活或关闭网卡
nmcli device connect eth1#激活网卡
nmcli device disconnect eth1#关闭网卡
删除网卡(无法删除物理网卡)
nmcli device delete virbr0
4. 使用nmcli配置bonding
#查看网卡
nmcli device
#添加bonding接口
nmcli connection add con-name bond0 type bond ifname bond0 mode 4
#添加从属接口
nmcli connection add type bond-slave ifname eth1 master bond0
nmcli connection add type bond-slave ifname eth2 master bond0
#修改bond0配置(也可直接修改配置文件)
nmcli connection modify "bond0" /
ipv4.method manual ipv4.addresses /
192.168.1.2/24 /
gw4 192.168.1.1 /
ipv4.dns 114.114.114.114
#重启网络服
systemctl restart network
Comments NOTHING