标签 nmcli 下的文章

nmcli 命令赋予你直接在 Linux 命令行操作 NetworkManager 工具的能力。

nmcli 命令赋予你直接在 Linux 命令行操作 NetworkManager 工具的能力。它是 NetworkManager 软件包集成的一部分,通过使用一些 应用程序接口(API)来获取 NetworkManager 的功能。

nmcli 发布于 2010 年,用以替代其他配置网络接口和连接的方法,例如 ifconfig。因为它是一个 命令行界面(CLI)工具,被设计用在终端窗口和脚本中,所以对于那些工作在没有 图形用户界面(GUI)的系统的管理员来说,它是一个非常理想的工具。

ncmli 的语法

nmcli 命令可以使用选项来更改它的行为,使用子命令来告诉 nmcli 想使用它的那部分功能,使用操作来告诉 nmcli 你想执行什么操作。

$ nmcli <选项> <子命令> <操作>

nmcli 一共有 8 个子命令,每个子命令有一些相关的网络操作:

  • help 提供有关 nmcli 命令和使用方法的帮助信息
  • general 返回 NetworkManager 的状态和总体配置信息
  • networking 提供命令来查询某个网络连接的状态和启动、禁用连接的功能
  • radio 提供命令来查询某个 WiFi 网络连接的状态和启动、禁用连接的功能
  • monitor 提供命令来监控 NetworkManager 的活动并观察网络连接的状态改变
  • connection 提供命令来启用或禁用网络接口、添加新的连接、删除已有连接等功能
  • device 主要被用于更改与某个设备(例如接口名称)相关联的连接参数或者使用一个已有的连接来连接设备
  • secret 注册 nmcli 来作为一个 NetworkManager 的秘密代理,用以监听秘密信息。这个子命令很少会被用到,因为当连接到网络时,nmcli 会自动做这些事

简单的示例

首先,我们验证一下 NetworkManager 正在运行并且 nmcli 可以与之通信:

$ nmcli general
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled

探测总是管理一个系统的首要部分。为了列出内存或磁盘上的网络连接配置,可以使用下面的命令:

$ nmcli connection show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
Wired connection 2  2279d917-fa02-390c-8603-3083ec5a1d3e  ethernet  enp0s8
Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9

上面的命令使用了 connection 子命令中的 show 操作。

用来运行上面这个例子的测试机器上运行着 Ubuntu 20.04,它安装了 3 个网络适配器:enp0s3enp0s8enp0s9

连接管理

理解 nmcli 的术语是非常重要的。一个网络 连接 connection 包含了一个连接的所有信息。你可以将它看作一个网络 配置 configuration 。“连接”包含了与其相关的所有信息,包括 数据链路层IP 地址信息 。它们是 OSI 网络模型 中的第 2 和第 3 层。

当你在 Linux 上配置网络时,通常来说你是在为某个网络设备(它们是安装在一个电脑中的网络接口)配置连接。当一个连接被某个设备所使用,那么就可以说这个连接被 激活 active 或者 上线 up 了,反之是 停用 inactive 下线 down

添加网络连接

nmcli 允许你快速地创建网络连接并同时为该连接指定参数。为了通过使用“有线连接 2” enp0s8 来创建一个新的连接,你可以利用 sudo 来运行下面的命令:

$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.

其中 type 选项指定需要一个 Ethernet 类型的连接,而 ifname(接口名)选项指定你想要为这个连接使用的网络接口设备。

让我们看看发生了什么变化:

$ nmcli connection show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
Wired connection 2  2279d917-fa02-390c-8603-3083ec5a1d3e  ethernet  enp0s8
Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9
ethernet-enp0s8     09d26960-25a0-440f-8b20-c684d7adc2f5  ethernet  --  

通过上图可以看到新的连接 ethernet-enp0s8 已经创建好了。它的 通用唯一标识符 Universally Unique IDentifier (UUID)也一同被赋予,并且其连接类型为 “Ethernet”。我们可以使用 up 子命令再加上连接名称(或 UUID)来使得这个连接被激活:

$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

再次查看激活的连接:

$ nmcli connection show --active
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
ethernet-enp0s8     09d26960-25a0-440f-8b20-c684d7adc2f5  ethernet  enp0s8
Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9

可以看到新的连接 ethernet-enp0s8 现在已经被激活了,并且与 enp0s8 网络接口设备绑定。

调整连接

nmcli 命令使得调整现有连接的参数变得更加容易。也许你想将某个网络接口从 动态主机配置协议 Dynamic Host Configuration Protocol (DHCP)改为静态 IP 地址。

假设你需要为你的新连接分配一个固定的 IP 地址 192.168.4.26,那么你需要使用两个命令,一个用于设定 IP 地址,另一个用来将获取 IP 地址的方法改为 manual(手动):

$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manual

记得指定 子网掩码,在我们这个测试的连接中,它是 无类域间路由 Classless Inter-Domain Routing (CIDR)中的 255.255.255.0/24

为了使得你的更改生效,你需要通过停止再重新启用该连接。下面的第一个命令是停用该连接,第二个命令则是启用它:

$ nmcli connection down ethernet-enp0s8
Connection 'ethernet-enp0s8' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)

假如你想将连接设置为使用 DHCP,则需要将上面的 manual 改为 auto(自动):

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

设备管理

nmcli 命令中的 device 子命令允许你管理安装在你电脑中的网络接口。

检查设备状态

可以使用下面的命令来快速检查所有网络接口的状态:

$ nmcli device status
DEVICE  TYPE      STATE      CONNECTION        
enp0s3  ethernet  connected  Wired connection 1
enp0s8  ethernet  connected  ethernet-enp0s8    
enp0s9  ethernet  connected  Wired connection 3
lo      loopback  unmanaged  --  

显示设备详情

为了检查某个网络接口的详情,可以使用 device 子命令中的 show 操作。假如你不提供某个设备的名称,那么会获取并展示所有设备的详情。你可以上下翻动来查看这些信息。

要查看你最近添加的连接所对应的设备 enp0s8,你可以使用下面的命令,请注意验证它使用的 IP 地址是否为先前你要求设置的那个:

$ nmcli device show enp0s8
GENERAL.DEVICE:                         enp0s8
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:81:16:20
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ethernet-enp0s8
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.4.26/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 192.168.4.0/24, nh = 0.0.0.0, mt = 103
IP6.ADDRESS[1]:                         fe80::6d70:90de:cb83:4491/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 103
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

上面的输出非常细致,它主要显示了下面这些内容:

  • 网络接口名称,在这个示例中是 enp0s8,它是 udev 分配的
  • 网络连接类型,在这个示例中是物理的 Ethernet 连接
  • 设备的 媒介访问控制 media access control (MAC)地址,它被用来在网络中识别该设备
  • 最大传输单元,在单个传输中最大协议数据单位的大小,任何大于这个大小的数据将被分为多个包来进行传输
  • 该设备当前已经处于连接状态
  • 这个设备使用的连接名称是 ethernet-enp0s8
  • 这个设备使用的 IP 地址如上面所要求的那样,被设置为 192.168.4.26/24

其他的信息则是与这个设备连接的网络相关的默认路由和网关设置信息。

nmcli 的交互式编辑器

尽管 nmcli 是一个命令行工具,但它还包含一个基本的交互式编辑器,edit 子命令将为你指定的连接打开一个交互式编辑器,例如:

$ nmcli connection edit ethernet-enp0s8

它将显示少量的帮助文字,接着是 nmcli 的命令提示符:

===| nmcli interactive connection editor |===

Editing existing '802-3-ethernet' connection: 'ethernet-enp0s8'

Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [<setting>.<prop>]' for detailed property description.

You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>

假如你输入 print 然后敲击 Enter 键, nmcli 将列举出与这个接口相关的所有属性。这些属性有很多,你可以上下翻动来查看这个列表:

===============================================================================
                 Connection profile details (ethernet-enp0s8)
===============================================================================
connection.id:                          ethernet-enp0s8
connection.uuid:                        09d26960-25a0-440f-8b20-c684d7adc2f5
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              enp0s8
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1593967212
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --

如果你想将你的连接改为 DHCP,则请输入 goto ipv4 然后敲 Enter 键:

nmcli> goto ipv4
You may edit the following properties: 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, dad-timeout
nmcli ipv4>

你想改变的属性是 method,再继续敲 set method auto 然后敲 Enter 键:

nmcli ipv4> set method auto
Do you also want to clear 'ipv4.addresses'? [yes]:

假如你想让这个连接清除掉这个静态 IP 地址,则请敲 Enter 键,如果要保留,则输入 no 然后敲 Enter 键。假如你想在将来再次使用它,你可以保留这个 IP 地址。即便存储了一个静态的 IP 地址,如果 method 被设置为 auto ,它仍然会使用 DHCP。

最后输入 save 来保存你的更改:

nmcli ipv4> save
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.
nmcli ipv4>

输入 quit 来离开 nmcli 的交互式编辑器窗口。假如你不想离开,可以输入 back 来回到最开始的命令行提示符界面,然后继续使用这个编辑器。

nmcli 的更多内容

浏览交互式编辑器,你就可以看到 nmcli 有多少设定和每个设定有多少属性。交互式编辑器是一个简洁的工具,但如果需要在命令行或者在脚本中使用 nmcli,你还是需要使用常规的命令行版本。

现在你有了这些基础知识,你还可以查看 nmcliman 页面 来查看它还可以提供什么更多功能。


via: https://opensource.com/article/20/7/nmcli

作者:Dave McKay 选题:lujun9972 译者:FSSLC 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Q:我正在电脑上使用 Debian Linux 9 “stretch”。 我想用 NetworkManager 来建网桥。但是根本就没有添加 br0的选项。我该如何在 Linux 里使用 nmcli 来为 NetworkManager 创建或者添加网桥呢?

网桥没什么特别的,只是把两个网络连在一起。它工作在数据链路层,即 OSI 模型的第二层。网桥经常用在虚拟机或别的一些软件中。为了使用网桥而关闭桌面 Linux 上的 NetworkManager 显然是不明智的。nmcli 可以创建一个永久的网桥而不需要编辑任何文件。

本文将展示如何使用 NetworkManager 的命令行工具 nmcli 来创建网桥。

如何使用 nmcli 来创建/添加网桥

使用 NetworkManager 在 Linux 上添加网桥接口的步骤如下:

  1. 打开终端
  2. 获取当前连接状态: nmcli con show
  3. 添加新的网桥: nmcli con add type bridge ifname br0
  4. 创建子网卡: nmcli con add type bridge-slave ifname eno1 master br0
  5. 打开 br0: nmcli con up br0

让我们从细节层面看看如何创建一个名为 br0 的网桥。

获取当前网络配置

你可以通过 NetworkManager 的 GUI 来了解本机的网络连接:

Getting Network Info on Linux

也可以使用如下命令行来查看:

$ nmcli con show
$ nmcli connection show --active 

View the connections with nmcli

我有一个使用网卡 eno1 的 “有线连接”。我的系统还有一个 VPN 接口。我将要创建一个名为 br0 的网桥,并连接到 eno1

如何创建一个名为 br0 的网桥

$ sudo nmcli con add ifname br0 type bridge con-name br0
$ sudo nmcli con add type bridge-slave ifname eno1 master br0
$ nmcli connection show

Create bridge interface using nmcli on Linux

你也可以禁用 STP:

$ sudo nmcli con modify br0 bridge.stp no
$ nmcli con show
$ nmcli -f bridge con show br0

最后一条命令展示了禁用 STP 后的网桥参数:

bridge.mac-address:                     --
bridge.stp:                             no
bridge.priority:                        32768
bridge.forward-delay:                   15
bridge.hello-time:                      2
bridge.max-age:                         20
bridge.ageing-time:                     300
bridge.multicast-snooping:              yes

如何打开网桥

你必须先关闭 Wired connection 1 ,然后打开 br0

$ sudo nmcli con down "Wired connection 1"
$ sudo nmcli con up br0
$ nmcli con show

使用 ip 命令 来查看 IP 信息:

$ ip a s
$ ip a s br0

Build a network bridge with nmcli on Linux

附录: 如何在 KVM 上使用 br0

现在你可以使用 KVM/VirtualBox/VMware workstation 创建的 VM(虚拟机)来直接连接网络而非通过 NAT。使用 vi 或者 cat 命令为虚拟机创建一个名为 br0.xml 的文件:

$ cat /tmp/br0.xml

添加以下代码:

<network>
  <name>br0</name>
  <forward mode="bridge"/>
  <bridge name="br0" />
</network>

如下所示运行 virsh命令:

# virsh net-define /tmp/br0.xml
# virsh net-start br0
# virsh net-autostart br0
# virsh net-list --all

输出:

 Name State Autostart Persistent
----------------------------------------------------------
 br0 active yes yes
 default inactive no yes

阅读 man 页面获取更多信息:

$ man ip
$ man nmcli

关于作者

作者是 nixCraft 的创建者、老练的系统管理员和一个 Linux/Unix shell 脚本编程培训师。他为全球客户和各种公司工作,包括 IT,教育,国防,空间研究以及非营利组织。 他的联系方式 TwitterFacebookGoogle+


via: https://www.cyberciti.biz/faq/how-to-add-network-bridge-with-nmcli-networkmanager-on-linux/

作者:Vivek Gite 译者:kennethXia 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

介绍

在本教程中,我们会在CentOS / RHEL 7中讨论 网络管理命令行工具 NetworkManager command line tool ,也叫nmcli。那些使用ifconfig的用户应该在CentOS 7中避免使用ifconfig 了。

让我们用nmcli工具配置一些网络设置。

要得到系统中所有接口的地址信息

[root@localhost ~]# ip addr show

示例输出:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 valid_lft forever preferred_lft forever
 inet6 ::1/128 scope host 
 valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 00:0c:29:67:2f:4c brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.51/24 brd 192.168.1.255 scope global eno16777736
 valid_lft forever preferred_lft forever
 inet6 fe80::20c:29ff:fe67:2f4c/64 scope link 
 valid_lft forever preferred_lft forever

检索与已连接的接口相关的数据包统计

[root@localhost ~]# ip -s link show eno16777736

示例输出:

得到路由配置

[root@localhost ~]# ip route

示例输出:

default via 192.168.1.1 dev eno16777736 proto static metric 100 
192.168.1.0/24 dev eno16777736 proto kernel scope link src 192.168.1.51 metric 100

分析主机/网站路径

[root@localhost ~]# tracepath unixmen.com

输出像traceroute,但是更加完整。

nmcli 工具

nmcli 是一个非常丰富和灵活的命令行工具。nmcli使用的情况有:

  • 设备 – 正在使用的网络接口
  • 连接 – 一组配置设置,对于一个单一的设备可以有多个连接,可以在连接之间切换。

找出有多少连接服务于多少设备

[root@localhost ~]# nmcli connection show

得到特定连接的详情

[root@localhost ~]# nmcli connection show eno1

示例输出:

得到网络设备状态

[root@localhost ~]# nmcli device status

 DEVICE               TYPE              STATE          CONNECTION 
eno16777736            ethernet      connected              eno1 
lo                     loopback      unmanaged               --

使用“dhcp”创建新的连接

[root@localhost ~]# nmcli connection add con-name "dhcp" type ethernet ifname eno16777736

这里,

  • connection add – 添加新的连接
  • con-name – 连接名
  • type – 设备类型
  • ifname – 接口名

这个命令会使用dhcp协议添加连接

示例输出:

Connection 'dhcp' (163a6822-cd50-4d23-bb42-8b774aeab9cb) successfully added.

不通过dhcp分配IP,使用“static”添加地址

[root@localhost ~]# nmcli connection add con-name "static" ifname eno16777736 autoconnect no type ethernet ip4 192.168.1.240 gw4 192.168.1.1

示例输出:

Connection 'static' (8e69d847-03d7-47c7-8623-bb112f5cc842) successfully added.

更新连接:

[root@localhost ~]# nmcli connection up eno1

再检查一遍,ip地址是否已经改变

[root@localhost ~]# ip addr show

添加DNS设置到静态连接中

[root@localhost ~]# nmcli connection modify "static" ipv4.dns 202.131.124.4

添加更多的DNS

[root@localhost ~]# nmcli connection modify "static" +ipv4.dns 8.8.8.8

注意:要使用额外的+符号,并且要是+ipv4.dns,而不是ip4.dns

添加一个额外的ip地址

[root@localhost ~]# nmcli connection modify "static" +ipv4.addresses 192.168.200.1/24

使用命令刷新设置:

[root@localhost ~]# nmcli connection up eno1

你会看见,设置生效了。

完结。


via: http://www.unixmen.com/basics-networkmanager-command-line-tool-nmcli/

作者:Rajneesh Upadhyay 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Red Hat Enterprise Linux 7CentOS 7 中默认的网络服务由 NetworkManager 提供,这是动态控制及配置网络的守护进程,它用于保持当前网络设备及连接处于工作状态,同时也支持传统的 ifcfg 类型的配置文件。

NetworkManager 可以用于以下类型的连接:Ethernet,VLANS,Bridges,Bonds,Teams,Wi-Fi,mobile boradband(如移动3G)以及 IP-over-InfiniBand。针对与这些网络类型,NetworkManager 可以配置他们的网络别名,IP 地址,静态路由,DNS,VPN连接以及很多其它的特殊参数。

可以用命令行工具 nmcli 来控制 NetworkManager。

nmcli 用法

# nmcli [ OPTIONS ] OBJECT { COMMAND | help }

我们可以通过 TAB 键补全命令,当你忘记这个命令的语法时只需要按下 TAB 就可以看到选项列表。

nmcli tab

使用 nmcli 的一些例子:

# nmcli general status

这条命令将 NetworkManager 的所有状态都打印出来。

# nmcli connection show

显示所有连接。

# nmcli connection show -a

仅显示当前活动的连接。

# nmcli device status

列出 NetworkManager 识别出的设备列表及他们的状态。

nmcli general

启动/停止 网络接口

使用 nmcli 工具启动或停止网络接口,与 ifconfig 的 up/down 是一样的。

使用下列命令停止某个接口:

# nmcli device disconnect eno16777736

下列命令用来启动接口:

# nmcli device connect eno16777736

添加静态IP的以太网连接

以下命令可以添加一个静态IP地址的以太网连接:

# nmcli connection add type ethernet con-name NAME_OF_CONNECTION ifname interface-name ip4 IP_ADDRESS gw4 GW_ADDRESS

根据你需要的配置更改 NAME\_OF\_CONNECTION,IP\_ADDRESS, GW\_ADDRESS 参数(如果不需要网关的话可以省略最后一部分)。

# nmcli connection add type ethernet con-name NEW ifname eno16777736 ip4 192.168.1.141 gw4 192.168.1.1

使用下列命令设置DNS服务器:

# nmcli connection modify NEW ipv4.dns "8.8.8.8 8.8.4.4"

下列命令启动新的 Ethernet 连接:

# nmcli connection up NEW ifname eno16777736

查看新连接的配置信息:

# nmcli -p connection show NEW

nmcli add static

增加一个使用 DHCP 的新连接

增加新的连接,使用DHCP自动分配IP地址,网关,DNS等,你要做的就是将命令行后 ip/gw 地址部分去掉就行了,DHCP会自动分配这些参数。

例,在 eno 16777736 设备上配置一个 名为 NEW\_DHCP 的 DHCP 连接

# nmcli connection add type ethernet con-name NEW_DHCP ifname eno16777736

via: http://linoxide.com/linux-command/nmcli-tool-red-hat-centos-7/

作者:Adrian Dinu 译者:SPccman 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

今天,我们来学习一下在 CentOS 7.x 中如何用 nmcli(Network Manager Command Line Interface:网络管理命令行接口)进行网卡绑定。

网卡(接口)绑定是将多块 网卡 逻辑地连接到一起从而允许故障转移或者提高吞吐率的方法。提高服务器网络可用性的一个方式是使用多个网卡。Linux 绑定驱动程序提供了一种将多个网卡聚合到一个逻辑的绑定接口的方法。这是个新的实现绑定的方法,并不影响 linux 内核中旧绑定驱动。

网卡绑定为我们提供了两个主要的好处:

  1. 高带宽
  2. 冗余/弹性

现在让我们在 CentOS 7 上配置网卡绑定吧。我们需要决定选取哪些接口配置成一个组接口(Team interface)。

运行 ip link 命令查看系统中可用的接口。

 $ ip link

ip link

这里我们使用 eno16777736eno33554960 网卡在 “主动备份” 模式下创建一个组接口。(译者注:关于不同模式可以参考:多网卡的7种bond模式原理)

按照下面的语法,用 nmcli 命令为网络组接口创建一个连接。

# nmcli con add type team con-name CNAME ifname INAME [config JSON]

CNAME 指代连接的名称,INAME 是接口名称,JSON (JavaScript Object Notation) 指定所使用的处理器(runner)。JSON 语法格式如下:

'{"runner":{"name":"METHOD"}}' 

METHOD 是以下的其中一个:broadcast、activebackup、roundrobin、loadbalance 或者 lacp

1. 创建组接口

现在让我们来创建组接口。这是我们创建组接口所使用的命令。

 # nmcli con add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'

nmcli con create

运行 # nmcli con show 命令验证组接口配置。

# nmcli con show

显示组接口

2. 添加从设备

现在让我们添加从设备到主设备 team0。这是添加从设备的语法:

# nmcli con add type team-slave con-name CNAME ifname INAME master TEAM

在这里我们添加 eno16777736eno33554960 作为 team0 接口的从设备。

# nmcli con add type team-slave con-name team0-port1 ifname eno16777736 master team0

# nmcli con add type team-slave con-name team0-port2 ifname eno33554960 master team0

添加从设备到 team

再次用命令 #nmcli con show 验证连接配置。现在我们可以看到从设备配置信息。

#nmcli con show

显示从设备配置

3. 分配 IP 地址

上面的命令会在 /etc/sysconfig/network-scripts/ 目录下创建需要的配置文件。

现在让我们为 team0 接口分配一个 IP 地址并启用这个连接。这是进行 IP 分配的命令。

# nmcli con mod team0 ipv4.addresses "192.168.1.24/24 192.168.1.1"
# nmcli con mod team0 ipv4.method manual
# nmcli con up team0

分配 ip

4. 验证绑定

#ip add show team0 命令验证 IP 地址信息。

#ip add show team0

验证 ip 地址

现在用 teamdctl 命令检查 主动备份 配置功能。

# teamdctl team0 state

teamdctl 检查主动备份

现在让我们把激活的端口断开连接并再次检查状态来确认主动备份配置是否像希望的那样工作。

# nmcli dev dis eno33554960

断开激活端口连接

断开激活端口后再次用命令 #teamdctl team0 state 检查状态。

# teamdctl team0 state

teamdctl 检查断开激活端口连接

是的,它运行良好!!我们会使用下面的命令连接回到 team0 的断开的连接。

#nmcli dev con eno33554960

nmcli dev 连接断开的连接

我们还有一个 teamnl 命令可以显示 teamnl 命令的一些选项。

用下面的命令检查在 team0 运行的端口。

# teamnl team0 ports

teamnl 检查端口

显示 team0 当前活动的端口。

# teamnl team0 getoption activeport

显示 team0 活动端口

好了,我们已经成功地配置了网卡绑定 :-) ,如果有任何反馈,请告诉我们。


via: http://linoxide.com/linux-command/interface-nics-bonding-linux/

作者:Arun Pyasi 译者:ictlyh 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Red Hat Enterprise Linux 7CentOS 7的一个新特性是默认的网络服务由NetworkManager提供,这是一个动态的网络控制和配置守护进程,它在网络设备和连接可用时保持链接正常,同时也提供了典型的ifcfg类型的配置文件。NetworkManager可以用于下面这些连接:Ethernet、 VLANs、桥接、Bonds、Teams、 Wi-Fi、 移动宽带 (比如 3G)和IP-over-InfiniBand(IPoIB)。

NetworkManager可以由命令行工具nmcli控制。

nmcli的通常用法

nmcli的通常语法是:

# nmcli [ OPTIONS ] OBJECT { COMMAND | help }

一件很酷的事情是你可以使用tab键来补全操作,这样你在何时忘记了语法你都可以按下tab来看到可用的选项了。

nmcli tab

nmcli通常用法的一些例子:

# nmcli general status

会显示NetworkManager的整体状态。

# nmcli connection show

会显示所有的连接

# nmcli connection show -a

仅显示活跃的连接

# nmcli device status

显示NetworkManager识别的设备列表和它们当前的状态。

nmcli general

启动/停止网络设备

你可以使用nmcli从命令行启动或者停止网络设备,这等同于ifconfig中的up和down。

停止网络设备使用下面的语法:

# nmcli device disconnect eno16777736

要启动它使用下面的语法:

# nmcli device connect eno16777736

添加一个使用静态IP的以太网连接

要用静态IP添加一个以太网连接可以使用下面的命令:

# nmcli connection add type ethernet con-name NAME_OF_CONNECTION ifname INTERFACE-NAME ip4 IP_ADDRESS gw4 GW_ADDRESS

将NAMEOFCONNECTION替换成新的连接名(LCTT 译注:这个名字以后可以用来对其操作,可以使用任何简单明了的名称),INTERFACE-NAME 替换成你的接口名,IPADDRESS替换成你要的IP地址,GWADDRESS替换成你使用的网关地址(如果你并不使用网关,你可以忽略这部分)。

# nmcli connection add type ethernet con-name NEW_STATIC ifname eno16777736 ip4 192.168.1.141 gw4 192.168.1.1

要设置这个连接所使用的DNS服务器使用下面的命令:

# nmcli connection modify NEW_STATIC ipv4.dns "8.8.8.8 8.8.4.4"

要启用新的以太网连接,使用下面的命令:

# nmcli connection up NEW_STATIC ifname eno16777736

要查看新配置连接的详细信息,使用下面的命令:

# nmcli -p connection show NEW_STATIC

nmcli add static

添加一个使用DHCP的连接

如果你想要添加一个使用DHCP来配置接口IP地址、网关地址和dns服务器地址的新的连接,你要做的就是忽略上述命令中的ip/gw部分,NetworkManager会自动使用DHCP来获取配置细节。

比如,要创建一个新的叫NEW\_DHCP的DHCP连接,在设备eno16777736上你可以使用下面的命令:

# nmcli connection add type ethernet con-name NEW_DHCP ifname eno16777736

via: http://linoxide.com/linux-command/nmcli-tool-red-hat-centos-7/

作者:Adrian Dinu 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出