Red Hat Enterprise Linux 7 与 CentOS 7 中默认的网络服务由 NetworkManager 提供,这是动态控制及配置网络的守护进程,它用于保持当前网络设备及连接处于工作状态,同时也支持传统的 ifcfg 类型的配置文件。可以用命令行工具 nmcli 来控制 NetworkManager,相应的也有一个图形化的配置工具nmtui。NetworkManager 可以用于以下类型的连接:Ethernet,VLANS,Bridges,Bonds,Teams,Wi-Fi,mobile boradband(如移动3G)以及 IP-over-InfiniBand。针对与这些网络类型,NetworkManager 可以配置他们的网络别名,IP 地址,静态路由,DNS,VPN连接以及很多其它的特殊参数。
一、nmcli 配置IPv4地址
下面是新增一个连接名为static对应的物理网口为eth0,并配置开机不自动启动,并配置相应的网关与地址
# nmcli connection add conn-name "static" ifname eth0 autoconnect no type ethernet ipv4 192.168.0.100/24 gw4 192.168.0.1 //新增连接不自动连接
针对一个已存在的接口,我们也可以通过nmcli 修改其对应的IP地址
# nmcli connection modify static ipv4.addr "192.168.1.23/24 192.168.1.1" ipv4.method manual //修改连接的IP地址
在centos 6中我们需要事行定义好几个cfg文件,也可以实现单个网口在多个环境下IP之间的随意切换,不过在centos7里明显加强了通过命令实现这种切换的概念,如下:
# nmcli connection add con-name "default" type ethernet ifname eth0
Connection 'default' (f15e2684-7aaa-4fbc-83de-ad10c7dee0eb) successfully added.
# nmcli conn up "static" //启用上面的静态地址配置
# nmcli conn up "default" //切回dhcp
默认情况下通过nmcli add 或 modify的操作只是修改了配置文件,并不会立即生效,想要生效启用,需要通过“nmcli conn up 接口名” 来启用对应的配置。所以通过这两个配置文件,我们像上面一样来回切换。
# nmcli conn mod "static" connection.autoconnect no 关闭开机自动连接
# nmcli conn mod "static" ipv4.dns 192.168.0.254 设置DNS
# nmcli conn mod "static" +ipv4.dns 192.168.0.254 +/-号用于增加或减少备用DNS
# nmcli conn mod "static" +ipv4.addresses "172.10.10.100/25" 增加第二地址,并且不设备网关
# nmcli connection modify eth0 +ipv4.routes 192.168.122.0/24 ipv4.gateway 10.10.10.1 配置路由
nmcli命令实际上编辑的还是/etc/sysconfig/network-scripts/ifcfg-*文件。在不想使用该文件时,可以通过delete删除对应的接口:
# nmcli connection delete ens3
二、nmcli 配置IPv6地址
ipv6下的配置与ipv4使用的差数差不多,只不过将ipv4换成了ipv6,如下:
# nmcli connection modify eth1 ipv6.addresses '2001:ac18::132/64' ipv6.method manual
# nmcli connection up eth1
# ping6 2001:ac18::132
PING 2001:ac18::132(2001:ac18::132) 56 data bytes
64 bytes from 2001:ac18::132: icmp_seq=1 ttl=64 time=0.052 ms
需要注意的是测试ipv6的连接性,使用ping6而不是ping 。
三、nmcli 的其他常用用法
设置主机名
# nmcli general hostname 361way 其等价于
# hostnamectl set-hostname 361way
查看当前的连接
# nmcli connection show
NAME UUID TYPE DEVICE
vnet1 a9be8935-fde1-4768-9611-74475e1c7e01 generic vnet1
Bridge eno16777736 d2d68553-f97e-7549-7a26-b34a26f29318 bridge br0
System eno16777736 0756a150-f4ee-4502-a0fb-eff8caad35e6 802-3-ethernet --
ens3 49d0dcc3-3e5e-49f0-80b7-2c8f3994c046 802-3-ethernet ens3
# nmcli connection show --active
NAME UUID TYPE DEVICE
vnet1 a9be8935-fde1-4768-9611-74475e1c7e01 generic vnet1
virbr0 cd0fd5d5-2b71-4c1a-b66d-1801c881e37f bridge virbr0
Bridge eno16777736 d2d68553-f97e-7549-7a26-b34a26f29318 bridge br0
ens3 49d0dcc3-3e5e-49f0-80b7-2c8f3994c046 802-3-ethernet ens3
查看连接接口的详细信息
# nmcli connection show br1 //对应的不是设备名,而是name
Error: br1 - no such connection profile. //是不是看到报错了,我们换成name值再试下
# nmcli connection show "System eno16777736"
connection.id: System eno16777736
connection.uuid: 0756a150-f4ee-4502-a0fb-eff8caad35e6
connection.interface-name: eno16777736
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.timestamp: 1447576534
connection.read-only: no
connection.permissions:
connection.zone: --
connection.master: br0
connection.slave-type: bridge
connection.secondaries:
connection.gateway-ping-timeout: 0
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: yes
802-3-ethernet.mac-address: --
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu: auto
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options:
bridge-port.priority: 32
bridge-port.path-cost: 100
bridge-port.hairpin-mode: no
查看设备信息
# nmcli device status
DEVICE TYPE STATE CONNECTION
br0 bridge connected Bridge eno16777736
ens3 ethernet connected ens3
lo loopback unmanaged --
virbr0-nic tap unmanaged --
# nmcli device show ens3
GENERAL.DEVICE: ens3
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 52:54:00:12:34:22
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ens3
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.0.105/25
IP4.GATEWAY:
IP6.ADDRESS[1]: fe80::5054:ff:fe12:3422/64
IP6.GATEWAY:
四、nmtui 图形化配置
1、通过nmtui 选择第一项,并选择相应的网卡后,可以配置IP地址
2、通过nmtui设置主机名
3、通过nm-connection-editor直接修改IP地址
上面只是对于nmcli命令的简单应用,更多的用法可以参看NetworkManager(8), nmcli(1), nmcli-examples(5), NetworkManager.conf(5) 几个的man手册。
《RH134小结(六)nmcli配置IPv4与IPv6网络》有1条评论