一.rhel8与7的区别
在rhel7上,同时支持network.service(配置文件在/etc/system/network-scripts)和NetworkManager.service(简称NM)。默认情况下,这2个服务都有开启,但许多人都会将NM禁用掉。
在rhel8上,已废弃network.service,因此只能通过NM进行网络配置,包括动态ip和静态ip。换言之,在rhel8上,必须开启NM,否则无法使用网络。
rhel8依然支持network.service,只是默认没安装,后面在介绍
二.NetworkManager介绍
NetworkManager是2004年Red Hat启动的项目,在能够让Linux用户更轻松地处理现代网络需求,尤其是无线网络,能自动发现网卡并配置ip地址。
类似在手机上同时开启wifi和蜂窝网络,自动探测可用网络并连接,无需手动切换。虽然初衷是针对无线网络,但在服务器领域,NM已大获成功。
三.NM能管理各种网络
有线网卡、无线网卡
动态ip、静态ip
以太网、非以太网
物理网卡、虚拟网卡
四.使用方法
nmcli:命令行。这是最常用的工具,本文将详细讲解该工具使用。
nmtui:在shell终端开启文本图形界面。示意图见本文最后的Tips
Freedesktop applet:如GNOME上自带的网络管理工具
cockpit: RedHat自带的基于web图形界面的"驾驶舱"工具,具有dashborad和基础管理功能
五.为什么要用NM
yum -y install bash-completion #自动补全命令包
工具齐全:命令行、文本界面、图形界面、web
广纳天地:纳管各种网络,有线、无线、物理、虚拟
参数丰富:多达200多项配置参数(包括ethtool参数)
一统江湖:RedHat系、SUSE系、Debian/Ubuntu系,均支持
大势所趋:下一个大版本的rhel只能通过NM管理网络
六.nmcli使用方法
命令 用途
nmcli dev status 显示所有网络接口的networkmanager状态
nmcli con show 列出所有链接
nmcli con show name 列出name链接的当前设置
nmcli con add con-name name 添加一个名为name的新连接
nmcli con mod name 修改name连接
nmcli con reload 重新加载配置文件(在手动编辑配置文件之后使用)
nmcli con up name 激活name连接
nmcli dev dis dev 在网络接口dev上停用并断开当前连接
nmcli con del name 删除name连接以及其配置文件
[root@localhost ~]# nmcli dev status
DEVICE TYPE STATE CONNECTION
ens160 ethernet connected ens160
lo loopback unmanaged --
修改网络IP地址有以下几种方式:
1、图形界面
2、修改网卡的配置文件vim letc/sysconfig/network-scriptslifcfg-ens160(适用于rhel8以前)
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160
'''
BOOTPROTO=none/ static
#none表示不使用启动地址协议static静态地址协议
ONBOOT=yes
#在系统启动时激活网卡
IPADDR=192.168.100.3
#IP地址
NETMASK=255.255.255.0
#子网掩码
GATEWAY=192.168. .1
#网关地址
修改完成之后,重启服务:systemctl restart NetworkManager
重新加载后生效: nmcli connection up ens160
网关配置文件:letc/sysconfig/network
DNS配置文件:letc/resolv.conf
'''
3.命令行编辑一
[root@localhost ~]# nmcli con edit ens160 #个人建议不用这个,这个不好用
#进去之后
nmcli>go ipv4
nmcli ipv4>set addresses 192.168.38.17/24
nmcli ipv4>set gatway 192.168.38.1
nmcli ipv4>save #更新
nmcli ipv4>activate ens160
nmcli ipv4>quit #q也可以出去
#这里ip a,就会出现两个IP
4.命令行编辑二
[root@localhost ~]# nmcli connection modify ens160 ipv4.addresses 192.168.43.130/24
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:94:3a:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.43.132/24 brd 192.168.43.255 scope global dynamic noprefixroute ens160
valid_lft 1260sec preferred_lft 1260sec
inet6 fe80::7612:336a:ba88:3369/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost ~]# nmcli connection modify ens160 ipv4.addresses 192.168.43.130/24 ipv4.method manual
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:94:3a:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.43.132/24 brd 192.168.43.255 scope global dynamic noprefixroute ens160
valid_lft 1198sec preferred_lft 1198sec
inet6 fe80::7612:336a:ba88:3369/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost ~]# nmcli con up ens160
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:94:3a:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.43.130/24 brd 192.168.43.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::7612:336a:ba88:3369/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost ~]# nmcli con modify ens160 +ipv4/addresses 192.168.43.132
Error: invalid <setting>.<property> 'ipv4/addresses'.
[root@localhost ~]# nmcli con modify ens160 +ipv4.addresses 192.168.43.132
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:94:3a:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.43.130/24 brd 192.168.43.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::7612:336a:ba88:3369/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost ~]# nmcli con up ens160
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:94:3a:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.43.130/24 brd 192.168.43.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 192.168.43.132/32 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::7612:336a:ba88:3369/64 scope link noprefixroute
valid_lft forever preferred_lft forever
七.nmtui:文本图形界面(用键盘左右键)
1)选择编辑链接
2)有一个网卡,选择编辑
3)进去之后,将IPV4配置改成手动,添加地址,网关,后来,就一直OK就好了
4)不管怎么配置,记得重新激活