您现在的位置是:首页 >技术交流 >【26】linux进阶——nmcli命令配置linux网络网站首页技术交流

【26】linux进阶——nmcli命令配置linux网络

天亮之前_ict 2024-06-17 10:18:46
简介【26】linux进阶——nmcli命令配置linux网络

大家好,这里是天亮之前ict,本人网络工程大三在读小学生,拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识,希望能提高自己的技术的同时,也可以帮助到大家

另外其它专栏请关注:

锐捷数通实验:锐捷数通实验

网络工程师成长日志:网络工程师成长日志

it自动化运维:it自动化运维

一、networkManager 

       在介绍nmcli命令之前,必须要提一嘴networkManager ,这个玩意和network和平共处,调试虚拟机的网络问题的时候,大家一定习惯性直接改/etc/sysconfig/network-scripts/ifcfg-xxx配置文件,但是不知道为什么重启network后静态ip没有生效,这就需要我们的networkmanager,NetworkManage与network功能类似,都是用于管理网络,NetworkManager提供了nmctl和nmtui两个工具,这样能适应无论是redhat还是centos7的高版本系统。所以大家以后尽量用nmctli命令来管理你的Linux的网络配置。

二、nmcli命令

2.1nm-settings配置中的名称定义

       默认情况下,通过nmcli con mod name 进行的更改会自动保存在/etc/sysconfig-scripts/ifcfg-name下,出于向后兼容性的原因,此文件中保存的指令具有不同于nm-settings的语法。下表将部分关键设备映射到ifcfg-*指令。(次命令大家看个眼熟,往后会有nmcli的基础命令)

        nmcli con mod                             用途
ipv4.method manuallPv4 以静态方式配置
ipv4.method auto从 DHCPv4 服务器中查找配置设置。 如果还设置了静态地址,则在我们从 DHCPv4 中获取信息之前, 将不会激活这些静态地址。
ipv4.addresses
*192.0.2.1/24 192.0.2.254'
设静态 1Pv4 地址 网络前缀和默认网关。 如果为连接设晋了多个, 则 ifcfg-指令 将以 12、3 等结尾, 而不是以 0结尾。
ipv4.dns 8.8.8.8修改/etc/resolv.conf 以使用此名称服务器
ipv4.dns-search example.com修改/etc/resolv.conf,以在search 指令今中使用这个域
connection.autoconnect yes在系统引导时自动激活此连接
connection.interface-name连接与具有此名称的网络接口绑定
802-3-ethernet.mac-address连接与具有此 MAC 地址的网络接口绑定

2.1nmcli命令应用

  • 获得网卡列表nmcli device status 
[root@localhost lmy]# nmcli device status 
DEVICE      TYPE      STATE      CONNECTION 
ens160      ethernet  connected  ens160     
virbr0      bridge    connected  virbr0     
lo          loopback  unmanaged  --         
virbr0-nic  tun       unmanaged  --     
  • 查看网卡网络信息nmcli connection show ens160 
    [root@localhost lmy]# nmcli connection show ens160 
    connection.id:                          ens160
    connection.uuid:                        7754135f-33ab-454f-aaf1-1828adbaae85
    connection.stable-id:                   --
    connection.type:                        802-3-ethernet
    connection.interface-name:              ens160
    connection.autoconnect:                 yes
    connection.autoconnect-priority:        0
    connection.autoconnect-retries:         -1 (default)
    connection.multi-connect:               0 (default)
    connection.auth-retries:                -1
    connection.timestamp:                   1670078499
    connection.read-only:                   no
    connection.permissions:                 --
    connection.zone:                        --
    connection.master:                      --
    connection.slave-type:                  --
    connection.autoconnect-slaves:          -1 (default)
    connection.secondaries:                 --
    connection.gateway-ping-timeout:        0
    
  •  启动网卡nmcli connection up ens160 
[root@localhost lmy]# nmcli connection up ens160 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
  • 新增网络配置连接配置文件,配置静态ipv4,新建网络配置文件lmy,可通过show命令查看,但是没有激活
[root@localhost lmy]# nmcli connection add type ethernet con-name lmy ifname ens160 ipv4.addresses 10.1.1.10/24 ipv4.gateway 10.1.1.1 ipv4.method manual autoconnect yes 
Connection 'lmy' (67b2782a-f3cc-47c2-aa1f-e14bc84515f2) successfully added.
[root@localhost lmy]# nmcli connection show 
NAME      UUID                                  TYPE      DEVICE 
ens160    7754135f-33ab-454f-aaf1-1828adbaae85  ethernet  ens160 
virbr0    a2831969-4f3d-477a-8315-35955eb75038  bridge    virbr0 
ethernet  a1015082-e389-498f-816a-4c7d2e12043c  ethernet  --     
lmy       67b2782a-f3cc-47c2-aa1f-e14bc84515f2  ethernet  --    
  • 删除网络连接配置文件nmcli connection delete lmy
[root@localhost lmy]# nmcli connection delete lmy
Connection 'lmy' (67b2782a-f3cc-47c2-aa1f-e14bc84515f2) successfully deleted.
[root@localhost lmy]# nmcli connection show 
NAME      UUID                                  TYPE      DEVICE 
ens160    7754135f-33ab-454f-aaf1-1828adbaae85  ethernet  ens160 
virbr0    a2831969-4f3d-477a-8315-35955eb75038  bridge    virbr0 
ethernet  a1015082-e389-498f-816a-4c7d2e12043c  ethernet  --   
  • 在现有的网络连接配置文件中修改ipv4地址
    [root@localhost lmy]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 172.25.200.188/24 ipv4.gateway 172.25.200.254 ipv4.dns 172.25.200.254 connection.autoconnect yes 
    Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
    [root@localhost lmy]# 
    [root@localhost lmy]# ip addre
    2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 00:0c:29:30:69:ed brd ff:ff:ff:ff:ff:ff
        inet 172.25.200.188/24 brd 172.25.200.255 scope global noprefixroute ens160
           valid_lft forever preferred_lft forever
    

      修改成功,可见,我用了ipv4.method manual,将该网络配置文件改为手工静态配置ip,大家的虚拟机一般都是dhcp分配ip,众所周知的nat模式,如果不加该命令,则无法将ip改为你设的ip,系统还会使用dhcp分配的ip,修改结果可以在/etc/sysconfig/network-scripts/ifcfg-xxx查看,但是大家注意了,此时是ping不通的,是因为我的虚拟级没有172.25.200.0这个网段的网卡。

我修改回来,还是用nat模式

[root@localhost /]# nmcli connection modify ens160 ipv4.method auto ipv4.addresses 192.168.65.100/24 ipv4.gateway 192.168.65.2 connection.autoconnect yes 
[root@localhost /]# nmcli connection up ens160 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
[root@localhost /]# ip addre
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:30:69:ed brd ff:ff:ff:ff:ff:ff
    inet 192.168.65.154/24 brd 192.168.65.255 scope global dynamic noprefixroute ens160
       valid_lft 1798sec preferred_lft 1798sec
    inet 192.168.65.100/24 brd 192.168.65.255 scope global secondary noprefixroute ens160
[lmy@localhost /]$ ping www.baidu.com
PING www.a.shifen.com (110.242.68.3) 56(84) bytes of data.
64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=2 ttl=128 time=32.4 ms
64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=3 ttl=128 time=32.5 ms

  • 我总结了一下添加一个网络配置文件的命令规范:nmcli connection add type ethernert (物理网卡类型) con-name (网络配置文件名称)lmy ifname (对应物理接口的网卡名称) ens160 ipv4.method manual/auto  ipv4.addr 192.168.65.100 ipv4.gateway 192.168.100.1 ipv4.dns 8.8.8.8 autoconnect yes

实验结束,欢迎大家指导!!!

 “生活的方向无论你如何选择都会后悔,人总向往没经历过的生活”

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。