目录
一、nmtui命令 – 修改静态IP地址
文本用户界面工具nmtui可用于在终端窗口中配置接口。
通过nmtui提供的GUI界面,可以编辑连接,启动连接,设置主机名。
语法格式:nmtui
常用选项:
Edit a connection | 编辑连接 |
Activate a connection | 激活连接 |
Set system hostname | 设置主机名 |
参考实例
安装nmtui:(RHEL 8 不需要安装)
[root@RHEL8 ~]# yum install -y NetworkManager-tui
进入图形化界面:
[root@RHEL8 ~]# nmtui
按下回车键确认。
选择网卡:
配置网络:
修改完后需要手动重启相应的服务:
# 重载网卡
[root@RHEL8 ~]# nmcli connection reload ens160
# 启动
[root@RHEL8 ~]# nmcli connection up ens160
二、nmcli命令 – 基于命令行配置网卡参数
nmcli命令来自于英文词组“NetworkManager command-line”的缩写,其功能是用于基于命令行配置网卡参数。nmcli与nmtui命令工具配置过的参数会直接写入到网卡服务配置文件中,永久生效。
另外,RHEL8系统支持网络会话功能,允许用户在多个配置文件中快速切换(非常类似于firewalld防火墙服务中的区域技术)。如果我们在公司网络中使用笔记本电脑时需要手动指定网络的IP地址,而回到家中则是使用DHCP自动分配IP地址,这就需要麻烦地频繁修改IP地址,但是使用了网络会话功能后一切就简单多了——只需在不同的使用环境中激活相应的网络会话,就可以实现网络配置信息的自动切换了。
1. 使用nmcli 命令并按照“connection add con-name type ifname”的格式来创建网络会话。假设将公司网络中的网络会话称之为company,将家庭网络中的网络会话称之为house,现在依次创建各自的网络会话。
使用con-name参数指定公司所使用的网络会话名称company,然后依次用ifname参数指定本机的网卡名称,用autoconnect no参数将网络会话设置为默认不被自动激活,以及用ip4及gw4参数手动指定网络的IP地址:
[root@RHEL8 ~]# nmcli connection add con-name company ifname ens160 autoconnect no type ethernet ip4 192.168.9.135/24 gw4 192.168.9.2
连接 "company" (9b345376-6b65-4d2e-9d52-0fda6b4b99e4) 已成功添加。
2.使用con-name参数指定家庭所使用的网络会话名称house。因为要从外部DHCP 服务器自动获得IP地址,所以这里不需要进行手动指定。
[root@RHEL8 ~]# nmcli connection add con-name house ifname ens160 type ethernet
连接 "house" (6e5a34e5-7fd1-4490-afbf-eda0cecd4d31) 已成功添加。
3.在成功创建网络会话后,可以使用nmcli命令查看创建的所有网络会话:
[root@RHEL8 ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 ea74cf24-c2a2-ecee-3747-a2d76d46f93b ethernet ens160
virbr0 e94958b4-8334-49f5-a1b6-8b0ff7909d46 bridge virbr0
company 9b345376-6b65-4d2e-9d52-0fda6b4b99e4 ethernet --
house 6e5a34e5-7fd1-4490-afbf-eda0cecd4d31 ethernet --
4.使用nmcli命令配置过的网络会话是永久生效的,这样当我们上班后,顺手启动company网络会话,网卡信息就自动配置好了
[root@RHEL8 ~]# nmcli connection up company #启动
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@RHEL8 ~]# ifconfig ens160
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.9.135 netmask 255.255.255.0 broadcast 192.168.9.255
inet6 fe80::416c:64c:4096:633b prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:63:82:35 txqueuelen 1000 (Ethernet)
RX packets 2044 bytes 199292 (194.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1164 bytes 157299 (153.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
5.使用桥接模式,就能链接家里的路由器自动获取ip了。
[root@RHEL8 ~]# nmcli connection up house #启动
注意:
如果启用company会话成功,但启用house会话失败且不能获取到动态地址,则证明您的配置是正确的,问题出在了外部网络环境。有3种常见的情况,首先,您家中的设备没有连接路由器,而是通过拨号网络或共享WiFi的方式上网;其次,还在上学或上班的读者在浏览网页前必须通过学校或公司的验证页面才能访问互联网;最后,检查物理机的防火墙设置,可暂时关闭后再重试。
6.后续不需要网络会话时,直接用delete命令就能删除:
[root@RHEL8 ~]# nmcli connection delete house
成功删除连接 "house" (6e5a34e5-7fd1-4490-afbf-eda0cecd4d31)。
[root@RHEL8 ~]# nmcli connection delete company
成功删除连接 "company" (9b345376-6b65-4d2e-9d52-0fda6b4b99e4)。
[root@RHEL8 ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 ea74cf24-c2a2-ecee-3747-a2d76d46f93b ethernet ens160
virbr0 e94958b4-8334-49f5-a1b6-8b0ff7909d46 bridge virbr0
三、绑定两块网卡
一般来讲,生产环境必须提供7×24小时的网络传输服务。借助于网卡绑定技术,不仅能够提高网络传输速度,更重要的是,还可以确保在其中一块网卡出现故障时,依然可以正常提供网络服务。假设我们对两块网卡实施了绑定技术,这样在正常工作中它们会共同传输数据,使得网络传输的速度变得更快;而且即使有一块网卡突然出现了故障,另外一块网卡便会立即自动顶替上去,保证数据传输不会中断。
在虚拟机系统中再添加一块网卡设备,请确保两块网卡都处在同一种网络连接模式中,处于相同模式的网卡设备才可以进行网卡绑定,否则这两块网卡无法互相传送数据。
1.创建出一个bond网卡
使用如下命令创建一个bond网卡。其中,命令与参数的意思是创建一个类型为bond(绑定)、名称为bond0、网卡名为bond0的绑定设备,绑定模式为balance-rr:
[root@RHEL8 ~]# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=balance-rr"
连接 "bond0" (0162c1d7-74b4-49a3-897e-7f8edd904e24) 已成功添加。
[root@RHEL8 ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 ea74cf24-c2a2-ecee-3747-a2d76d46f93b ethernet ens160
virbr0 f0806f9b-4eda-4d67-849f-c2523dac98e2 bridge virbr0
bond0 0162c1d7-74b4-49a3-897e-7f8edd904e24 bond bond0
这里使用的是balance-rr网卡绑定模式,其中rr是round-robin的缩写,全称为轮循模式。round-robin的特点是会根据设备顺序依次传输数据包,提供负载均衡的效果,让带宽的性能更好一些;而且一旦某个网卡发生故障,会马上切换到另外一台网卡设备上,保证网络传输不被中断。active-backup是另外一种比较常用的网卡绑定模式,它的特点是平时只有一块网卡正常工作,另一个网卡随时待命,一旦工作中的网卡发生损坏,待命的网卡会自动顶替上去。可见,这种网卡绑定模式的冗余能力比较强,因此也称为主备模式。
2.向bond0设备添加从属网卡
刚才创建成功的bond0设备当前仅仅是个名称,里面并没有真正能为用户传输数据的网卡设备,接下来使用下面的命令把ens160和ens192网卡添加进来。其中,con-name参数后面接的是从属网卡的名称(可以随时设置);ifname参数后面接的是两块网卡的名称。
[root@RHEL8 ~]# nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname ens160 master bond0
连接 "bond0-port1" (538c203a-aee9-4042-918f-af37b22df96a) 已成功添加。
[root@RHEL8 ~]# nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname ens192 master bond0
连接 "bond0-port2" (98ef9bc3-cd80-4008-9ed9-c623e3590d52) 已成功添加。
3.配置bond0设备的网络信息
下面还是用nmcli命令依次配置网络的IP地址及子网掩码、网关、DNS和手动配置等参数。也可以直接编辑网卡配置文件,或使用nmtui命令完成下面的操作:
[root@RHEL8 ~]# nmcli connection modify bond0 ipv4.addresses 192.168.9.135/24
[root@RHEL8 ~]# nmcli connection modify bond0 ipv4.gateway 192.168.9.2
[root@RHEL8 ~]# nmcli connection modify bond0 ipv4.dns 114.114.114.114
[root@RHEL8 ~]# nmcli connection modify bond0 ipv4.method manual
4.启动和测试
[root@RHEL8 ~]# nmcli connection up bond0
连接已成功激活(master waiting for slaves)(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/6)
[root@RHEL8 ~]# ping www.baidu.com
PING www.baidu.com (36.152.44.96) 56(84) bytes of data.
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=1 ttl=128 time=26.8 ms
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=2 ttl=128 time=14.8 ms
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=3 ttl=128 time=14.7 ms
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=4 ttl=128 time=12.2 ms
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=5 ttl=128 time=12.9 ms
^C
--- www.baidu.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 94ms
rtt min/avg/max/mdev = 12.218/16.273/26.818/5.368 ms