您现在的位置是:首页 >技术交流 >【26】linux进阶——nmcli命令配置linux网络网站首页技术交流
【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 manual | lPv4 以静态方式配置 |
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
实验结束,欢迎大家指导!!!
“生活的方向无论你如何选择都会后悔,人总向往没经历过的生活”