浅谈linux下nmcli命令的用法配置

浅谈linux下nmcli命令的用法配置


  Red Hat Enterprise Linux 7 与 CentOS 7 以上的版本中默认的网络服务由 NetworkManager 提供,这是动态控制及配置网络的守护进程,它用于保持当前网络设备及连接处于工作状态,同时也支持传统的 ifcfg 类型的配置文件。
  NetworkManager 可以用于以下类型的连接:Ethernet,VLANS,Bridges,Bonds,Teams,Wi-Fi,mobile boradband(如移动3G)以及 IP-over-InfiniBand。 针对与这些网络类型,NetworkManager 可以配置他们的网络别名,IP 地址,静态路由,DNS,VPN连接以及很多其它的特殊参数。
  可以用命令行工具 nmcli 来控制 NetworkManager。
  nmcli的功能要比 ifconfig 强大、复杂的多。


  • 地址配置工具 nmcli
    nmcli – command-line tool for controlling NetworkManager

  • nmcli语法:
    nmcli [ OPTIONS ] OBJECT { COMMAND | help }
       OBJECT和COMMAND可以用全称也可以用简称,最少可以只用一个字母,建议用头三个字母。OBJECT里面我们平时用的最多的就是connectiondevice,这里需要简单区分一下connection和device。

    • device是网络设备的接口,它是物理设备
      device -show and manage network interface
      nmcli device help
    • connection是连接,偏重于逻辑设置
      connection -start, stop, and manage network connectionsnmcli connection help

      多个connection可以应用到同一个device,但同一时间只能启用其中一个connection。这样的好处是针对一个网络接口,我们可以设置多个网络连接,比如静态IP和动态IP,再根据需要up相应connection

  • 修改IP地址等属性:
    nmcli connection modify IFACE [+ | -] setting.property value

    • setting.property:
      ipv4.addresses ipv4.gateway
      ipv4.dns1 ipv4.method manual | auto
    • 修改配置文件执行生效:
      systemctl restart network
      nmcli con reload
    • nmcli命令生效:
      nmcli con down eth0 ;
      nmcli con up eth0

使用nmcli配置网络

  • NeworkManager是管理和监控网络设置的守护进程
    设备即网络接口,连接是对网络接口的配置,一个网络接口可有多个连接配置,但同时只有一个连接配置生效。
  • 显示所有包括不活动连接
    nmcli con show
    NAME                UUID                                  TYPE      DEVICE 
    Wired connection 1  605ed69d-6fa9-3ac7-83c3-490629a0d241  ethernet  eth0   
    ens33               3ad2dec2-129c-4401-bc03-10cf250e2836  ethernet  --   
    
  • 显示所有活动连接
    nmcli con show --active
    NAME                UUID                                  TYPE      DEVICE 
    Wired connection 1  605ed69d-6fa9-3ac7-83c3-490629a0d241  ethernet  eth0  
    
  • 显示网络连接配置
nmcli con show 'system eth0'            #后面跟网卡设备的名字NAME
nmcli con show Wired\ connection\ 1 
connection.id:                          Wired connection 1
connection.uuid:                        605ed69d-6fa9-3ac7-83c3-490629a0d241
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              --
connection.autoconnect:                 yes
connection.autoconnect-priority:        -999
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1571836970
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)

  其中NAME内容为网卡配置文件中定义的NAME内容,修改配置文件NAME项,可以更改名称,修改后可以选择重启网络服务:“命令:systemctl restart network” ;或者重读配置文件“命令:nmcli con reload”,使其生效

vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ensh0"
UUID="3ad2dec2-129c-4401-bc03-10cf250e2836"
DEVICE="eth0"                   #注意设备名字一定要跟你物理网卡的名字一样,不同网卡无法启动
ONBOOT="yes"
  • 显示设备状态
nmcli dev status
DEVICE  TYPE      STATE      CONNECTION         
eth0    ethernet  connected  Wired connection 1 
lo      loopback  unmanaged  --     
  • 显示网络接口属性
nmcli dev show eth0
GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:70:CF:D9
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     Wired connection 1
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.39.13/24
IP4.GATEWAY:                            192.168.39.1
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 192.168.39.1, mt = 100
IP4.ROUTE[2]:                           dst = 192.168.39.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:                             192.168.39.1
IP4.DOMAIN[1]:                          localdomain
IP6.ADDRESS[1]:                         fe80::43a5:efb6:a914:fb83/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
  • 创建新连接ceshi,IP自动通过dhcp获取
nmcli con add con-name default type Ethernet ifname eth0
#con add – 添加新的连接 con-name -连接名 type–设备类型  ifname=接口名  autoconnect no=禁止开机自动启动

nmcli con add con-name ceshi type Ethernet ifname eth0  #建立一个新连接ceshi
Connection 'ceshi' (b43c4ef7-a4d0-4a2f-9971-6f305704cd2b) successfully added.
cat /etc/sysconfig/network-scripts/ifcfg-ceshi
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ceshi
UUID=b43c4ef7-a4d0-4a2f-9971-6f305704cd2b
DEVICE=eth0
ONBOOT=yes
nmcli con show              #查看所有连接
NAME   UUID                                  TYPE      DEVICE 
ensh0  3ad2dec2-129c-4401-bc03-10cf250e2836  ethernet  eth0   
ceshi  b43c4ef7-a4d0-4a2f-9971-6f305704cd2b  ethernet  --  
nmcli con reload            #让配置生效
nmcli con up ceshi          #启动这个ceshi配置文件
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
nmcli con show              #新的ceshi配置文件已经启动
NAME   UUID                                  TYPE      DEVICE 
ceshi  b43c4ef7-a4d0-4a2f-9971-6f305704cd2b  ethernet  eth0   
ensh0  3ad2dec2-129c-4401-bc03-10cf250e2836  ethernet  -- 
  • 删除连接
nmcli con del default          #后面还是带NAME网卡名
nmcli con delete ceshi 
Connection 'ceshi' (b43c4ef7-a4d0-4a2f-9971-6f305704cd2b) successfully deleted.

  • 创建新连接static ,指定静态IP,不自动连接
nmcli con add con-name static ifname eth0  autoconnect no ipv4.addresses 192.168.39.88/24 type ethernet ipv4.gateway 192.68.39.100
# 注意参数前后没有规定顺序,写全即可
Connection 'static' (9b50bc27-5653-4ea1-ac02-d11461d9d03c) successfully added.
nmcli con modify static ipv4.method manual   #忘记添加静态获取模式了,添加一下
nmcli con show                #查看所有状态
NAME    UUID                                  TYPE      DEVICE 
ensh0   3ad2dec2-129c-4401-bc03-10cf250e2836  ethernet  eth0   
static  9b50bc27-5653-4ea1-ac02-d11461d9d03c  ethernet  -- 
cat ifcfg-static             #查看网卡配置信息
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.39.88
PREFIX=24
GATEWAY=192.68.39.100
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=static
UUID=9b50bc27-5653-4ea1-ac02-d11461d9d03c
DEVICE=eth0
ONBOOT=no
  • 启用static连接配置
nmcli con up static

在这里插入图片描述

  • 启用默认配置
nmcli con up ensh0
nmcli con show
NAME    UUID                                  TYPE      DEVICE 
ensh0   3ad2dec2-129c-4401-bc03-10cf250e2836  ethernet  eth0   
static  9b50bc27-5653-4ea1-ac02-d11461d9d03c  ethernet  --  
  • 查看帮助
nmcli con add help
  • 修改static的IP地址
nmcli con modify static ipv4.addresses 192.168.39.66/24
#其实修改的是网卡配置文件
IPADDR=192.168.39.66
PREFIX=24
  • 修改static的网关
nmcli con modify static ipv4.getway 192.168.39.255
#其实修改的是网卡配置文件
GATEWAY=192.168.39.255
  • 给同一个配置文件增添一个IP地址
nmcli con modify static +ipv4.addresses 192.168.39.33/24
  • 给static增加一个DNS
nmcli con modify static ipv4.dns 114.114.114.114
#其实修改的是网卡配置文件
DNS1=114.114.114.114
  • 给static增加第二个DNS
nmcli con modify static +ipv4.dns 8.8.8.8
#其实修改的是网卡配置文件
DNS2=8.8.8.8
  • 删除static第二个DNS
nmcli con modify -ipv4.dns 8.8.8.8
#注意这里是删除配置文件的某一个功能,用的是-,而不是del
  • DNS文件配置保存在/etc/resolv.conf文件里
cat /etc/resolv.conf 
# Generated by NetworkManager
search localdomain localyum
nameserver 192.168.39.1

可以参考下图
在这里插入图片描述
在这里插入图片描述

完 毕

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值