CentOS7下的网络工具nmcli

1、nmcli相关介绍

CentOS 5以及CentOS 6版本的Linux发行版,我们都习惯使用直接编辑网络配置文件或者使用类似于setup的命令对网络进行配置,但是在CentOS7版本上,出现了一个名为nmcli的工具,使得我们在配置和管理我们的网络时,变的非常方便。下面我们来了解下nmcli的一些常用功能:

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

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

2、nmcli的使用

2.1 查看nmcli的帮助命令:

[[email protected] ~]# nmcli help
Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }
OPTIONS
  -t[erse]                                   terse output
  -p[retty]                                  pretty output
  -m[ode] tabular|multiline                      output mode
  -f[ields] <field1,field2,...>|all|common           specify fields to output
  -e[scape] yes|no                             escape columns separators in values
  -n[ocheck]                                  don‘t check nmcli and NetworkManager versions
  -a[sk]                                     ask for missing parameters
  -w[ait] <seconds>                          set timeout waiting for finishing operations
  -v[ersion]                                 show program version
  -h[elp]                                    print this help
OBJECT
  g[eneral]       NetworkManager‘s general status and operations
  n[etworking]    overall networking control
  r[adio]         NetworkManager radio switches
  c[onnection]    NetworkManager‘s connections
  d[evice]        devices managed by NetworkManager
  a[gent]         NetworkManager secret agent or polkit agent

说明:

a、device叫网络接口,是物理设备

b、connection是连接,偏重于逻辑设置

c、多个connection可以应用到同一个device,但同一时间只能启用其中一个connection。

d、这样的好处是针对一个网络接口,我们可以设置多个网络连接,比如静态IP和动态IP,再根据需要up相应的connection。

2.2 CentOS 7下网卡命名规则:

CentOS 7 开始对于网卡的编号则有另一套规则, 网卡的界面代号现在与网卡的来源有关,基本上的网卡名称会是这样分类的:

eno1 : 代表由主板 BIOS 内置的网卡

ens1 : 代表由主板 BIOS 内置的 PCI-E 界面的网卡

enp2s0 : 代表 PCI-E 界面的独立网卡, 可能有多个插孔, 因此会有 s0, s1... 的编号

eth0 : 如果上述的名称都不适用, 就回到原本的默认网卡编号

CentOS 7 也希望我们不要手动修改配置文件, 直接使用所谓的 nmcli 这个指令来设置网络参数即可

2.3 查看网络设备的相关状态:

[[[email protected] ~]# nmcli device status
Warning: nmcli (1.0.6) and NetworkManager (1.0.0) versions don‘t match. Use --nocheck to suppress the warning.
DEVICE       TYPE      STATE      CONNECTION  
virbr0       bridge    connected  virbr0      
eno16777736  ethernet  connected  eno16777736 
lo           loopback  unmanaged  --          
virbr0-nic   tap       unmanaged  --         
 
[[email protected] ~]# nmcli device show eno16777736
Warning: nmcli (1.0.6) and NetworkManager (1.0.0) versions don‘t match. Use --nocheck to suppress the warning.
GENERAL.DEVICE:                         eno16777736
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:C5:A0:8D
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     eno16777736
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/8
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         10.10.10.133/24
IP4.GATEWAY:                            10.10.10.2
IP4.DNS[1]:                             10.10.10.2
IP4.DNS[2]:                             8.8.8.8
IP4.DOMAIN[1]:                          localdomain
IP6.ADDRESS[1]:                         fe80::20c:29ff:fec5:a08d/64
IP6.GATEWAY:                            
[[email protected] ~]# nmcli connection help
Usage: nmcli connection { COMMAND | help }
COMMAND := { show | up | down | add | modify | edit | delete | reload | load }
  show [--active] [[--show-secrets] [id | uuid | path | apath] <ID>] ...
  up [[id | uuid | path] <ID>] [ifname <ifname>] [ap <BSSID>] [passwd-file <file with passwords>]
  down [id | uuid | path | apath] <ID> ...
  add COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS IP_OPTIONS
  modify [--temporary] [id | uuid | path] <ID> ([+|-]<setting>.<property> <value>)+
  edit [id | uuid | path] <ID>
  edit [type <new_con_type>] [con-name <new_con_name>]
  delete [id | uuid | path] <ID>
  reload
  load <filename> [ <filename>... ]
  
[[email protected] ~]# nmcli connection show
Warning: nmcli (1.0.6) and NetworkManager (1.0.0) versions don‘t match. Use --nocheck to suppress the warning.
NAME         UUID                                  TYPE            DEVICE      
virbr0       6e28dbac-ef8c-4065-b235-26da2a96e261  bridge          virbr0      
eno16777736  9abced2c-1ebf-4a70-9ecc-fc9c9d14d01c  802-3-ethernet  eno16777736

2.4 配置接口的IP地址信息:

#----->在同一网卡上,配置多个IP地址
[[email protected] ~]# nmcli connection modify eno16777736 +ipv4.addresses 10.10.10.134/24
#----->如何让新添加的IP地址生效
nmcli con down eno16777736;nmcli con up eno16777736
#----->我们添加网卡新的ip地址:10.10.10.134/24
[[email protected] ~]# nmcli connection modify eno16777736 ipv4.
ipv4.addresses           ipv4.dhcp-send-hostname  ipv4.gateway             ipv4.may-fail            ipv4.route-metric
ipv4.dhcp-client-id      ipv4.dns                 ipv4.ignore-auto-dns     ipv4.method              ipv4.routes
ipv4.dhcp-hostname       ipv4.dns-search          ipv4.ignore-auto-routes  ipv4.never-default       
[[email protected] ~]# nmcli connection modify eno16777736 +ipv4.addresses 10.10.10.134/24
[[email protected] ~]# ifconfig -a
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.10.10.133  netmask 255.255.255.0  broadcast 10.10.10.255
        inet6 fe80::20c:29ff:fec5:a08d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:c5:a0:8d  txqueuelen 1000  (Ethernet)
        RX packets 26917  bytes 33375856 (31.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5265  bytes 334974 (327.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 524  bytes 45724 (44.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 524  bytes 45724 (44.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
直接配置后,网卡的ip地址不能直接生效
#----->如何让添加的网卡生效
[[email protected] ~]# nmcli connection down eno16777736 ;nmcli connection up eno16777736 
Connection ‘eno16777736‘ successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/2)
#----->发现这里面仍旧看不到新添加的接口的IP信息
[[email protected] ~]# ifconfig -a
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.10.10.133  netmask 255.255.255.0  broadcast 10.10.10.255
        inet6 fe80::20c:29ff:fec5:a08d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:c5:a0:8d  txqueuelen 1000  (Ethernet)
        RX packets 57185  bytes 71800786 (68.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10663  bytes 676788 (660.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 548  bytes 48084 (46.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 548  bytes 48084 (46.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
#----->查看网卡的配置文件
[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=9abced2c-1ebf-4a70-9ecc-fc9c9d14d01c
DEVICE=eno16777736
ONBOOT=yes
IPADDR=10.10.10.134
PREFIX=24
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no

#查看网卡的详细信息

[[email protected] ~]# nmcli device show eno16777736 
GENERAL.设备:                           eno16777736
GENERAL.类型:                           ethernet
GENERAL.硬盘:                           00:0C:29:C5:A0:8D
GENERAL.MTU:                            1500
GENERAL.状态:                           100 (连接的)
GENERAL.CONNECTION:                     eno16777736
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/5
WIRED-PROPERTIES.容器:                  开
IP4.地址[1]:                            10.10.10.133/24
IP4.地址[2]:                            10.10.10.134/24
IP4.网关:                               10.10.10.2
IP4.DNS[1]:                             10.10.10.2
IP4.域[1]:                              localdomain
IP6.地址[1]:                            fe80::20c:29ff:fec5:a08d/64
IP6.网关:

#这里如果发现是中文,可以使用以下命令进行修改

[[email protected] ~]# localectl list-locales
[[email protected] ~]# localectl set-locale LANG=en_US.utf8
#断开连接,然后重新连接下
[[email protected] ~]# nmcli device show eno16777736 
Warning: nmcli (1.0.6) and NetworkManager (1.0.0) versions don‘t match. Use --nocheck to suppress the warning.
GENERAL.DEVICE:                         eno16777736
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:C5:A0:8D
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     eno16777736
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/8
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         10.10.10.133/24
IP4.GATEWAY:                            10.10.10.2
IP4.DNS[1]:                             10.10.10.2
IP4.DNS[2]:                             8.8.8.8
IP4.DOMAIN[1]:                          localdomain
IP6.ADDRESS[1]:                         fe80::20c:29ff:fec5:a08d/64
IP6.GATEWAY:

#消除我们添加的ip:10.10.10.134/24

[[email protected] ~]# nmcli connection modify eno16777736 -ipv4.addresses 10.10.10.134/24
[[email protected] ~]# echo $?
0
[[email protected] ~]# nmcli connection down eno16777736 ;nmcli connection up eno16777736 
Connection ‘eno16777736‘ successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[[email protected] ~]# ifconfig -a
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.10.10.133  netmask 255.255.255.0  broadcast 10.10.10.255
        inet6 fe80::20c:29ff:fec5:a08d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:c5:a0:8d  txqueuelen 1000  (Ethernet)
        RX packets 77939  bytes 96881263 (92.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14880  bytes 957913 (935.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 560  bytes 49264 (48.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 560  bytes 49264 (48.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=9abced2c-1ebf-4a70-9ecc-fc9c9d14d01c
DEVICE=eno16777736
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no
[[email protected] ~]# nmcli device show eno16777736 
GENERAL.设备:                           eno16777736
GENERAL.类型:                           ethernet
GENERAL.硬盘:                           00:0C:29:C5:A0:8D
GENERAL.MTU:                            1500
GENERAL.状态:                           100 (连接的)
GENERAL.CONNECTION:                     eno16777736
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.容器:                  开
IP4.地址[1]:                            10.10.10.133/24
IP4.网关:                               10.10.10.2
IP4.DNS[1]:                             10.10.10.2
IP4.域[1]:                              localdomain
IP6.地址[1]:                            fe80::20c:29ff:fec5:a08d/64
IP6.网关:                               
[[email protected] ~]# ifconfig -a
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.10.10.133  netmask 255.255.255.0  broadcast 10.10.10.255
        inet6 fe80::20c:29ff:fec5:a08d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:c5:a0:8d  txqueuelen 1000  (Ethernet)
        RX packets 537996  bytes 673538844 (642.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 97698  bytes 6097864 (5.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 616  bytes 54280 (53.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 616  bytes 54280 (53.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
#----->大家可以测试下,重启网络服务对通过nmcli命令添加和减少的网卡信息是否有效,我这边测试是没有任何效果。

# 手动设置网关(如果网关没有进行配置):

[[email protected] ~]# nmcli connection modify eno16777736 ipv4.gateway 10.10.10.2
# 手动设置DNS(如果DNS没有进行配置):
[[email protected] ~]# nmcli connection modify eno16777736 +ipv4.dns 8.8.8.8
[[email protected] ~]# echo $?
0
[[email protected] ~]# nmcli device 
connect     delete      disconnect  help        show        status      wifi        wimax       
[[email protected] ~]#  nmcli connection down eno16777736 ;nmcli connection up eno16777736 
Connection ‘eno16777736‘ successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/7)
[[email protected] ~]# nmcli device show eno16777736 
GENERAL.设备:                           eno16777736
GENERAL.类型:                           ethernet
GENERAL.硬盘:                           00:0C:29:C5:A0:8D
GENERAL.MTU:                            1500
GENERAL.状态:                           100 (连接的)
GENERAL.CONNECTION:                     eno16777736
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/7
WIRED-PROPERTIES.容器:                  开
IP4.地址[1]:                            10.10.10.133/24
IP4.网关:                               10.10.10.2
IP4.DNS[1]:                             10.10.10.2
IP4.DNS[2]:                             8.8.8.8
IP4.域[1]:                              localdomain
IP6.地址[1]:                            fe80::20c:29ff:fec5:a08d/64
IP6.网关:

CentOS7下面有类似于CentOS6下面的setup工具的命令,nmtui命令

功能非常强大:可以管理IP的相关信息,添加子接口,桥接等。

时间: 2024-10-17 09:42:55

CentOS7下的网络工具nmcli的相关文章

CentOS7下的网络设定方法

CentOS7下,设定网络非常简单,如果你是ServerGUI的安装,基本上和windows一样简单的设定既可.如果是最小化安装也可以通过编辑一和设定/etc/sysconfig/network-scripts下面的文件,然后systemctl restart network既可起效. 设定文件 设定项目 设定详细 设定文件 /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-eth0有的时候实际的名字可能类似于:ifcfg-eno16777736 设

CentOS7下配置网络yum源(附带下载地址)

一.查看外网是否通畅 配置网络yum源(需要保证外网开通,我这里是使用网易163提供开源镜像站) 二.下载repo文件 cd /etc/yum.repos.dwget http://mirrors.163.com/.help/CentOS6-Base-163.repo 三. 备份并替换系统的repo文件 备份原来的.repo配置文件 cd /etc/yum.repos.d mv CentOS-Base.repo CentOS-Base.repo.bk         复制网易下载的.repo并修

CentOS7网络配置——nmcli命令集

体验过CentOS7系统的都知道,CentOS7虽然是CentOS6.8的下一个版本,但两者的性能以及各个方面都发生了很大的变化,单从网络配置模块来说,就做了很大的改变,网卡的命名规则以及网络配置工具,都做了较大的更新,CentOS7上配置网络的主要工具是nmcli命令集,但刚接触这个命令集的朋友,都会感觉很不习惯,一个命令下面的选项及参数可以用火车皮拉了,所以记忆起来确实是挺麻烦的,但有弊就有利,使用CentOS7之前的系统时如果要配置网络,要使用好多的命令组合完成,而且还不会直接修改配置文件

Linux下基本的网络工具

Linux下基本的网络工具 Table of Contents ifconfig route ip dns 其他配置文件 ifconfig ifconfig eth0 up ifconfig eth0 down ifconfig eth0 192.168.10.111 永久 IP /etc/sysconfig/network-scripts/ifcfg-eth0 IPADDR=xxxx NETMASK=xxx GATEWAY=xxxxx PEERDNS={yes|no}: 表示是否接受 dhcp

centos7 下的 LVM

在安装完了openstack,使用了两年后的今天,如果连KVM都不晓得的话,那也真的是太扯了. 今天在一台测试机上搞了下linux的kvm来耍.安装了windows的server和windows的desktop,感觉太快了.感觉离不开了. 废话不多说了,说说是怎么装的. 首先得需要看看你的cpu支持虚拟化不. 关闭防火墙,关闭selinux 首先得需要安装KVM套件 # yum install qemu-kvm qemu-img virt-manager libvirt libvirt-pyth

CentOS7下,安装网卡驱动,命令行手动连接WIFI指导

买了一个无线网卡,型号为TL-WN823N,谁知道在CentOS下没有驱动 于是开始了无线上网的漫漫征途 经历了无数个坑啊,解决了一个又一个的问题啊 到最后ping通的时候成就感简直爆棚 文章结构简介如下: 1.安装内核工具:kernel-devel 2.搜索网卡型号,安装网卡驱动 3.下载网络工具,连上无线网络 1.安装内核工具 装驱动前需要包:kernel-devel,gcc 一开始,我先安装驱动,发现编译过不了,一看报错信息,说是/usr/scr/kernel里面没有对应文件内核文件 于是

Centos7下安装Mono、Jexus。

Mono是.NET的跨平台实现 在众多关于语言的争论中,.NET一直被以不能跨平台而诟病,Mono改变了这一现状. 有人当心Mono会涉及版权啥的问题.高深的偶不懂,不过我觉得Unity3D都能用,为什么我们不能用. :) Jexus是Linux下免费的服务器软件.Jexus作者宇内,已对Mono做了大量尝试,稳定靠谱. 我自己目前也有一个爬虫项目正在Mono上进行中.项目还没有完成.趁着空挡留个记录吧. 1. 防火墙就直接关闭了,防止新手不知道为啥老是不能访问的情况 Centos7 使用新的f

Linux系统下如何配置SSH_Centos7 ssh连接配置 CentOS7下安全配置

转自:http://www.linuxdown.net/install/config/2016/0611/5853.html Linux系统下如何配置SSH_Centos7 ssh连接配置 CentOS7下安全配置SSH 时间:2016-06-11 11:13来源:未知 作者:Linux先生 举报 点击:1804次 SSH 通常是我们进入新伺服器的第一个应用程式,它也取代了telnet 和rsh 成为管理伺服器的最主要介面. SSH 通常是我们进入新伺服器的第一个应用程式,它也取代了telnet

CentOS7下编译Hadoop

准备工作 下载 Hadoop 源码 Source (当前最新 2.9.2) https://hadoop.apache.org/releases.html 打开压缩包会看到 BUILDING.txt 文件,这是官方提供的编译说明,参看 Linux 部分 Requirements: * Unix System * JDK 1.7 or 1.8 * Maven 3.0 or later * Findbugs 1.3.9 (if running findbugs) * ProtocolBuffer 2