如何使用“nmcli”工具配置和管理网络连接

作为Linux管理员的你有各种工具,以用于配置网络连接,如:nmtui,使用GNOME图形用户界面,当然nmcli(网络管理器命令行工具),你NetworkManager的

使用nmcli工具配置网络以太网连接

我已经看到了使用nmtui为简单起见,许多管理员。 但是使用nmcli节省您的时间,让你的信心,可以在脚本中使用它,它才能使用的第一个工具, 解决你的Linux服务器的网络 ,并带回很快它的功能。

眼看许多意见询问nmcli的帮助下,我决定写这篇文章。 当然你应该仔细阅读man页面(它的No1帮助为你)。 我的目的是节省你的时间,并给你一些提示。

nmcli的语法是:

# nmcli [OPTIONS] OBJECT {COMMAND | help}

其中, OBJECT是下列之一:一般,网络,广播,连接,设备,代理。

一个好的起点是检查我们的设备:

# nmcli dev status
DEVICE      TYPE      STATE         CONNECTION 
docker0     bridge    connected     docker0    
virbr0      bridge    connected     virbr0     
enp0s3      ethernet  connected     enp0s3     
virbr0-nic  ethernet  disconnected  --         
lo          loopback  unmanaged     --         

我们可以看到在第一列是我们的网络设备的列表。 我们有一个名字一个网络卡enp0s3 在你的机器,你可以看到其他名字。

命名取决于网卡的类型(如果它是板载的,pci卡等)。 在最后一列中,我们看到我们的设备使用的配置文件,以便连接到网络。

很容易理解,我们的设备本身不能做任何事情。 他们需要我们做一个配置文件告诉他们如何实现网络连接。 我们也呼吁这些文件为“连接配置文件”。 我们发现他们在/ etc / sysconfig / network中-scripts目录。

# cd /etc/sysconfig/network-scripts/
# ls
示例输出
ifcfg-enp0s3  ifdown-isdn      ifup          ifup-plip      ifup-tunnel
ifcfg-lo      ifdown-post      ifup-aliases  ifup-plusb     ifup-wireless
ifdown        ifdown-ppp       ifup-bnep     ifup-post      init.ipv6-global
ifdown-bnep   ifdown-routes    ifup-eth      ifup-ppp       network-functions
ifdown-eth    ifdown-sit       ifup-ib       ifup-routes    network-functions-ipv6
ifdown-ib     ifdown-Team      ifup-ippp     ifup-sit
ifdown-ippp   ifdown-TeamPort  ifup-ipv6     ifup-Team
ifdown-ipv6   ifdown-tunnel    ifup-isdn     ifup-TeamPort

正如你可以在这里看到名称开头的文件ifcfg- (接口配置)是连接配置文件。 当我们创建一个新的连接或修改现有的与nmclinmtui,结果在此保存为连接配置文件。

我将从我的机器上显示其中两个,一个使用dhcp配置,一个使用静态ip。

# cat ifcfg-static1
# cat ifcfg-Myoffice1

检查网络配置

我们意识到一些属性具有不同的值,如果没有必要,一些属性不存在。 让我们快速看看最重要的。

  1. TYPE ,我们这里有以太网类型。 我们可以有wifi,团队,债券和其他。
  2. DEVICE ,其与该简档相关联的网络设备的名称。
  3. BOOTPROTO ,如果它有值“DHCP”,那么我们的连接配置文件需要动态IP从DHCP服务器上,如果它有值“无”,那么它没有动态IP,可能磨片分配静态IP。
  4. IPADDR ,是我们分配给我们的形象静态IP。
  5. PREFIX ,子网掩码。 值为24表示255.255.255.0。 如果你记下它的二进制格式,你可以更好地理解子网掩码。 例如,值16,24,26意味着第一个16,24或26位分别是1和其余的0,确切地定义网络地址是什么以及可以分配的ip的范围是多少。
  6. GATEWAY ,网关IP。
  7. DNS1DNS2 ,两个DNS服务器,我们要使用。
  8. ONBOOT ,如果它有值“是”这意味着,在引导我们的电脑将读取该配置文件,并尝试将它分配给它的设备。

现在,让我们继续并检查我们的连接:

# nmcli con show

显示活动网络连接

设备的最后一列帮助我们理解哪个连接是“UP”和运行,这是不。 在上图中可以看到两个连接这是积极的:Myoffice1enp0s8。

提示 :如果你想看到的只是活动连接,输入:

# nmcli con show -a

提示 :您可以使用,当您使用nmcli自动完成按Tab,但最好是使用命令的最小格式。 因此,以下命令是相等的:

# nmcli connection show
# nmcli con show
# nmcli c s

如果我检查我的设备的IP地址:

# ip a

检查服务器IP地址

我看到我的设备enp0s3接过192.168.1.6的IP从DHCP服务器上,由于连接配置文件Myoffice1为不超过有一个DHCP配置。 如果我把“up”与我的名字连接配置文件static1那么我的设备将采取静态IP 192.168.1.40,因为它是在连接配置文件中定义。

# nmcli con down Myoffice1 ; nmcli con up static1
# nmcli con show

让我们再次看到IP地址:

# ip a

检查网络静态IP地址

我们可以做出我们第一个连接配置文件。 我们必须定义的最小属性类型 ,IFNAMECON-名称

  1. type -用于连接的类型。
  2. ifname -为其分配了连接的设备名称。
  3. con-name -连接的名称。

让我们用名称的新以太网连接Myhome1 ,分配给设备enp0s3

# nmcli con add type ethernet con-name Myhome1 ifname enp0s3

检查其配置:

# cat ifcfg-Myhome1

创建新的网络连接

正如你可以看到它有BOOTPROTO=dhcp ,因为我们没有给任何静态IP地址。

提示 :我们可以修改的任何联系“nmcli con mod“命令。 但是,如果您修改DHCP连接并将其更改为静态的,不要忘记改变其“ipv4.method”“auto”“manual” 否则,你会得到两个IP地址:一个从dhcp服务器和静态。

让我们用名称的新的以太网连接配置文件static2 ,这将被分配到设备enp0s3 ,使用静态IP 192.168.1.50,子网掩码为255.255.255.0 = 24和网关192.168.1.1。

# nmcli con add type ethernet con-name static2 ifname enp0s3 ip4 192.168.1.50/24 gw4 192.168.1.1

检查其配置:

# cat ifcfg-static2

创建新的以太网连接

让我们修改最后一个连接配置文件并添加两个dns服务器。

# nmcli con mod static2 ipv4.dns “8.8.8.8 8.8.4.4”

提示 :也有一些是在这里你必须注意:为IP地址和网关的属性有不同的名称,当您添加,当你修改的连接。 当您添加使用的连接“ip4”“gw4”而当你修改它们使用“ipv4”“gwv4”

现在让我们打开这个连接配置文件:

# nmcli con down static1 ; nmcli con up static2

正如你所看到的,设备enp0s3现在拥有的IP地址192.168.1.50。

# ip a

验证新网络连接的IP地址

提示 :有很多,你可以修改的属性。 如果不通过心脏记住他们,你可以通过键入帮助自己“nmcli con show”和连接名称后:

# nmcli con show static2

验证新网络连接的IP地址

您可以修改用小写写的所有这些属性。

例如:当你打倒连接配置文件,NetworkManager的搜索另一个连接配置文件,并自动主动提起。 (我把它作为运动检查它)。 如果您不希望您的连接配置文件自动连接:

# nmcli con mod static2 connection.autoconnect no

最后一个练习非常有用:您创建了一个连接配置文件,但您希望它由特定用户使用。 这是很好的分类你的用户!

我们只让用户斯特拉使用此配置文件:

# nmcli con mod static2 connection.permissions stella

提示 :如果你想给权限的多个用户,则必须输入user:user1,user2他们之间没有空格:

# nmcli con mod static2 connection.permissions user:stella,john

允许与用户的网络连接

如果你登录为另一个用户,你不能把“上”此连接配置:

# nmcli con show
# nmcli con up static2
# ls /etc/sysconfig/network-scripts

启用网络连接

一条错误消息说,连接“static2'不存在 ,即使我们看到它的存在。 这是因为当前用户没有启动此连接的权限。

结论 :不要犹豫,使用nmcli。 这是容易和有益的。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏