RHEL8网络配置
RHEL8配置网卡的4种方式
1. ifcfg网卡配置文件
https://blog.csdn.net/omaidb/article/details/120028742
2. nm-connection-editor图形化配置工具
nm-connection-editor
需要安装图形化
才能使用.
为什么生产服务器不安装图形界面?
减少软件包数量能减少攻击面
。
3. nmtui伪图形配置工具
参考: https://tekintian.github.io/Linux/201801/16-centos7-nmcli.html
# 使用伪图形化配置网卡
nmtui
4. nmcli–本文重点
讲述
RHEL8
的默认网络服务
是NetworkManager
,不再需要VIM编辑网卡配置文件
,默认网络配置工具是nmcli
。
参考:https://blog.csdn.net/ymz641/article/details/111465599
RHEL7和RHEL8的网络服务变化
从RHEL7
开始,网络管理服务从network
变成了NetworkManager
;
RHEL8
中network服务
已经被移除
了,只能使用NetworkManager
对网卡配置文件进行修改;
Ubuntu18.04
开始支持NetworkManager
对网卡配置文件进行修改.
参考地址: https://www.cnblogs.com/nulige/p/7439948.html
RHEL8使用network服务
如果RHEL8
非要使用network服务
,安装方法如下:
RHEL8安装旧版网络服务
# RHEL8安装network服务
dnf install -y network-script*
# 启用network服务
systemctl enable --now network
# 禁用NetworkManager服务
systemctl disable --now NetworkManager
NetworkManager的所有配置文件
# 查看NetworkManager的全部配置
NetworkManager --print-config
NetworkManager
的配置文件
如下:
/etc/NetworkManager/NetworkManager.conf
– 主配置文件/etc/NetworkManager/conf.d
– 包含配置文件的目录/usr/lib/NetworkManager/conf.d
– 包含配置文件的系统目录(例如:文件/usr/lib/NetworkManager/conf.d/20-connectivity.conf
)/var/lib/NetworkManager/NetworkManager-intern.conf
– 内部配置文件。该文件由 NetworkManager 写入和读取,其配置值与NetworkManager.conf
中的配置合并。对此文件所做的更改将被覆盖/var/lib/NetworkManager/NetworkManager.state
– 包含一组状态
的文件/etc/NetworkManager/system-connections/
– 存储有线
和无线
连接的目录/var/run/NetworkManager/system-connections/
– 包含某些连接类型的目录,例如:通过蓝牙调制解调器
连接互联网/var/lib/NetworkManager/
/etc/NetworkManager/dispatcher.d/
/etc/NetworkManager/dnsmasq.d/
/etc/NetworkManager/dnsmasq-shared.d/
禁用NetworkManager自动配置DNS
编辑NetworkManager配置文件
# 编辑NetworkManager配置文件
vim /etc/NetworkManager/NetworkManager.conf
在[main]
部分中添加以下行来禁用NetworkManager自动配置 DNS:
# 禁用NetworkManager自动配置 DNS
dns=none
重启
NetworkManager 服务
# 重启NetworkManager服务
systemctl restart NetworkManager
查看/开启/关闭nmcli服务
# 显示NetworkManager状态:
nmcli general status
# 显示由NetworkManager识别到设备及其状态:
nmcli device status
# 查看nmcli状态
[rhel8 root ~]# nmcli n
enabled
# 开启nmcli
nmcli n on
# 关闭nmcli(谨慎执行,会断网)
## 相当于关闭Network Manager服务
## 关闭后只能去实体机上开启nmcli了
nmcli n off
使用nmcli管理网卡
如果不启动NetworkManager
服务,无法使用nmcli
命令
# 现在停止并禁用network服务开机自启
systemctl disable --now network
# 开机自启并现在启用NetworkManager服务
systemctl enable --now NetworkManager
nmcli快速配置静态ip地址
# 查看当前网卡配置文件列表
## -p, --pretty 选项在输出结果中添加标题和分段
nmcli -p c show
# 修改当前网卡配置文件“Wired connection 1”为静态配置,开机自动连接
## ipv4.method manual 指定网络为静态IP配置
## ip4 配置ipv4
## gw4 配置ipv4网关
## ipv4.dns 配置ipv4 DNS
## autoconnect yes 自动连接
nmcli c mod "Wired connection 1" ipv4.method manual ip4 172.24.10.150/24 gw4 172.24.10.100 ipv4.dns 172.24.10.254 autoconnect yes
# 激活"Wired connection 1"网卡配置
nmcli c up "Wired connection 1"
nmcli修改静态ip的脚本
网段根据自己需要修改
#!/bin/bash
# 该脚本只适用于nmcli,
# 改脚本只能实现单网卡修改ip地址
# 获取活动状态的ncmli配置名
## 有bug,如果配置名是默认的`Wired connection 1` 或者有空格会无法显示全
# CON_NAME=$(nmcli con show --active | awk 'END{print $1F}')
# 删除旧的con-name
# nmcli c delete "$CON_NAME"
# 删除statc这个配置
nmcli c delete static
# 获取活动的网卡名
## 打印输出的最后一列最后一行
IFACE=$(nmcli con show --active | awk 'END{print $NF}')
# 打印活动的网卡名
echo "网卡名是$IFACE"
# 打印设置的ip
echo "设置为ip为:$1"
# 配置静态ip,配置名为static
# nmcli c mod "$CON_NAME" ip4 "192.168.123.$1/24"
# nmcli c add con-name "$CON_NAME" ifname "$IFACE" type ethernet ip4 "192.168.123.$1/24" gw4 192.168.123.2 ipv4.dns 192.168.123.2 ipv4.method manual autoconnect yes
nmcli c add con-name static ifname "$IFACE" type ethernet ip4 "192.168.123.$1/24" gw4 192.168.123.2 ipv4.dns 192.168.123.2 ipv4.method manual autoconnect yes
# 重新读取配置
nmcli c reload
# 关闭配置&&激活配置
nmcli c down "$CON_NAME"
# 启用static配置
nmcli c up static
# 显示IP地址
ip a show "$IFACE"
nmcli常用参数
RHEL8
的默认网络服务
是NetworkManager
,不再需要编辑网卡配置文件
.
nmcli
命令 是NetworkManager client
网络管理客户端。
参考:https://blog.csdn.net/ymz641/article/details/111465599
参数 | 简写 | 解释 |
---|---|---|
connection | c | 连接 |
show | s | 显示 |
add | 添加 | |
delete | del | 删除配置 |
modify | mod | 修改 |
monitor | mon | 监视器 |
con-name | name | 连接名; |
device | dev 或 d | 网卡名 |
up | on | 激活配置 |
down | off | 关闭配置 |
ifname | i | 网络接口名; |
type | 一般就是ethernet; | |
ipv4.address | ip4 | ip地址/24; |
ipv4.gateway | gw4 | 网关; |
ipv4.dns | dns服务器; | |
autoconnect yes | autocon yes | 对应配置文件中的 ONBOOT =yes,默认为yes |
autoconnect no | autocon no | 对应配置文件中的 ONBOOT =no |
ipv4.method auto | 对应配置文件中的 BOOTPROTO=dhcp,默认为auto | |
ipv4.method manual | 对应配置文件中的 BOOTPROTO=none,表示静态IP |
nmcli c show # 查看网卡列表和网卡uuid
nmcli con add # 添加一个网卡配置文件
nmcli con delete # 删除一个网卡配置文件
nmcli con down <interface> #关闭指定接口。
nmcli con up <interface> #打开指定接口。
nmcli con reload # 重新加载网卡配置文件
nmcli con show -active # 显示活动的连接
nmcli -p con show "lan_eth0" # 显示指定一个网络连接配置
nmcli con #检查设备的连接情况。
nmcli -p dev status # 显示设备状态
nmcli -p dev show eno16777736 # 显示指定接口属性
nmcli -p dev show # 显示全部接口属性
nmcli con up static # 启用名为static连接配置
nmcli con up default # 启用default连接配置
nmcli c reload # 重新读取配置
nmcli con add help # 查看帮助
# 在特定的接口上使用指定的 VLAN 号添加一个虚拟局域网(VLAN)接口、IP 地址、和网关。
nmcli c add type vlan con-name <connection-name> dev <interface> id <vlan-number> ipv4 <ip/cidr> gw4 <gateway-ip>
nmcli查看网卡信息
查看类
的命令可以添加-p
参数,在输出结果中添加标题和分段.
nmcli查看网卡列表和网卡uuid
# 查看网卡列表
nmcli c show #或
nmcli con show
[root@rhel8 ~]# nmcli c show
NAME UUID TYPE DEVICE
System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0
# name是网卡配置文件名字,可以重复但不建议重复
# uuid是网卡UUID,UUID一定不会重复
# type一般都是ethernet,也可能会是brige和tun
# device是网卡名称
网卡配置文件名 | 网卡UUID | 网卡类型(ethernet/brige/tun) | 网卡名称 |
---|---|---|---|
NAME | UUID | TYPE | DEVICE |
System eth0 | 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 | ethernet | eth0 |
nmcli查看网卡配置文件的所在路径
# 查看配置文件的所在路径
## 查看配置的指定字段
nmcli -f NAME,DEVICE,FILENAME con show
nmcli查看网卡状态
查看网卡的概述信息
[root@rhel8 ~]# nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet 已连接 System eth0
lo loopback 未托管 --
#4列信息
# device:网卡设备名称
# type: 网卡类型
# state: 网卡状态,指的是NetworkManager服务是否接管了这块网卡
## 如果state 状态是unmanaged,就无法使用NetworkManager管理该网卡
## 如果状态是已连接(connected),意味这该网卡正在使用某个配置文件
## 如果状态是未连接(disconnect),意味着该网卡没有使用配置文件
## 如果状态时connecting,意味着该网卡正在获取IP地址
# CONNECTTION(连接使用的配置文件),意味着该网卡正在使用这个配置文件
nmcli查看网卡物理参数
# nmcli查看网卡物理参数
nmcli d show eth0
# 更新设备信息
nmcli d reapply ens33
# 或
nmcli d r ens33
# nmcli c show 配置文件绝对路径
nmcli c show /etc/sysconfig/network-scripts/ifcfg-ens3
根据uuid查看网卡配置
# 查看网卡会话配置
nmcli c show
# 根据uuid查看网卡配置
nmcli c show uuid 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
nmcli查看会话
# 查看ens3网卡配置文件详情
nmcli c s ens3
## autoconnect: no 表示该配置重启后不会自动连接网络
# 查看ens3网卡配置文件详情
## -p, --pretty 选项在输出结果中添加标题和分段
nmcli -p c s "网卡配置名称"
重新读取配置
# 重新读取配置
nmcli c reload
nmcli配置网络会话
会话
可以理解为网络模板
,就是提前配置好网卡配置,到指定的环境时切换为对应的网卡配置
比如到了公司需要使用静态内网IP,就切换为公司会话配置;
回家后,使用dhcp获取ip,就切换为家庭会话配置。
会话功能可以根据使用场景快速切换网络配置。
nmcli的网卡配置文件所在目录
使用nmcli
新建的非以太网
配置文件在/etc/NetworkManager/system-connections
目录中;
# 新建一个ip-tun连接
nmcli c add type ip-tunnel ip-tunnel.mode ipip con-name tun0 ifname tun0 remote 172.20.235.124 local 172.20.235.121
nmcli查看网卡配置文件的所在路径
# 查看配置文件的所在路径
## 查看配置的指定字段
nmcli -f NAME,DEVICE,FILENAME con show
兼容
ifcfg配置文件:/etc/sysconfig/network-scripts/
配置文件都是以ifcfg
开头,后面的是网卡配置文件
的名字.
# nmcli网卡配置文件所在目录
ls /etc/sysconfig/network-scripts/
查看配置示例
# 连接类型为以太网
TYPE=Ethernet
# 不使用代理
PROXY_METHOD=none
# 不仅限于浏览器
BROWSER_ONLY=no
# 连接方式,static为静态,dhcp为动态
BOOTPROTO=static
# 默认路由
DEFROUTE=yes
# IPv4 失败不致命
IPV4_FAILURE_FATAL=no
# 连接名称为 ens33
NAME=ens33
# 设备名称为 ens33
DEVICE=ens33
# 是否在开机时自动激活
ONBOOT=yes
# 指定系统启动时启用该网络接口的方式,这里是自动启用
STARTMODE=auto
# 是否接受NetworkManager控制
NM_CONTROLLED=yes
# 指定普通用户不能修改该网络接口的配置
USERCTL=no
# IP 地址
IPADDR=192.168.70.2
# 子网掩码为 24,也可以将该选项替换为 NETMASK=255.255.255.0
PREFIX=24
# 网关地址
GATEWAY=192.168.70.1
# 禁止从DHCP更新DNS
PEERDNS=no
# DNS地址
DNS1=114.114.114.114
DNS2=223.5.5.5
nmcli配置网络关注信息
- ip method:DHCP/Static
- ip地址
- 子网掩码
- 网关gateway
- dns
- 开机自启(ip autoconnect)
nmcli修改网络会话配置名称
https://blog.51cto.com/u_15060545/3366947
# 将默认的网络会话配置名修改为新的配置名
## connection.id后面跟新的配置名
nmcli c mod "Wired connection 1" connection.id enp1s0
# 重新读取配置
nmcli con reload
# 启动新配置
nmcli con up enp1s0
# 查看配置
nmcli con show
nmcli添加网络配置
nmcli con add
添加网络配置时必须添加的三个参数:
- con-name 配置文件名称
- type 配置文件的类型
- ifname 配置的网卡
- 其他参数非必填项
# 添加网络配置
nmcli con add con-name 配置文件名 type 配置文件类型 ifname 配置的网卡
nmcli添加一个静态ip配置文件
# 给eth0配置静态ip,网关
## nmcli con add con-name 配置文件名 ifname 网卡名 type ethernet ip4 192.168.10.10/24 gw4 192.168.168.10.1 autoconnect no
## con-name static 表示配置文件名称叫 static
## ifname eth0 表示指定一个网络接口eth0
## type ethernet 表示网络类型是ethernet(以太网)
## ip4 192.168.10.10 表示配置IPV4 地址 192.168.10.10/24,24是子网掩码
## gw4 192.168.10.1 表示配置网关地址 192.168.10.1
## autoconnect no 表示不自动连接
nmcli con add con-name static ifname eth0 type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1 autoconnect no
# 给company网卡配置设置dns
nmcli con mod static ipv4.dns "8.8.8.8 8.8.4.4"
# 给company网卡配置增加dns
nmcli con mod static +ipv4.dns "1.1.1.1 114.114.114.114"
# 将网卡配置文件的ip获取方式修改为静态IP
nmcli c mod "Wired connection 1" ipv4.method manual
# 启动网卡配置文件
nmcli con up static
# 查看网卡配置
ip a show 网卡名
nmcli添加一个dhcp配置文件
# 添加dhcp网卡配置文件
nmcli con add con-name dhcp type ethernet ifname eth0
# 启动网卡配置文件
nmcli con up dhcp
# 查看网卡配置
ip a show 网卡名
为网络连接配置静态路由
# 为网络连接配置静态路由
nmcli connection modify enp3s0 +ipv4.routes "192.168.122.0/24 10.10.10.1"
nmcli modfy修改网卡配置
# 修改网卡配置文件
# 修改ipv4地址和ipv4网关
nmcli con mod 网卡配置文件名 ip4 3.3.3.23/24 gw4 3.3.3.1
# 启动网卡配置文件
nmcli con up 网卡配置文件名
# 查看网卡配置
ip a show 网卡名
nmcli将网卡配置修改为开机自动连接
配置为自动连接
,开机后会自动连接到网络
.
# 修改nmcli网络配置为自动连接
nmcli c mod ens3 autoconnect yes
# 查看ip
ip a
nmcli切换会话配置
# 切换为dhcp配置
## 回家后,将网卡配置切换为dhcp配置,自动获取dhcp
nmcli connection up dhcp
# 切换为static配置
## 到公司后,将网卡配置切换为static配置,切换为内网静态ip
nmcli connection up static
# 根据uuid切换配置
nmcli c up uuid编号
启动网卡的配置文件
会启动优先级最高的那个配置文件
# nmcli device connect 网卡名
nmcli dev con ens256
断开指定网卡连接
会取消网卡的配置文件
# nmcli dev disconnect 网卡名
nmcli device disconnect ens256
nmcli删除虚拟网卡
nmcli device delete
可以删除虚拟网卡
,但不能删除物理网卡
# 删除虚拟网卡
nmcli device delete 网卡名
使用nmcli edit配置网卡
# 使用nmcl edit配置网卡
nmcli con edit type ethernet con-name enp3s0
设置nmcli管理网卡
例如VMware的网卡默认是不受nmcli管理的
# 使用nmcli管理vmnet1网卡
nmcli device set vmnet1 managed yes
# 查看网卡状态
nmcli device status
配置网络注意事项
配置网络之前先用IP命令配置临时ip
,等配置通了再写配置文件.
服务器常见网卡数量
私有云一般4--8
块网卡.
- 2块用作
管理网络
- 2块用作
traffic网络
- 2块用作
存储网卡
- 2块用作
高速虚拟化网卡转发(SR-IOV)
ethool查看网卡
# 查看网卡是否up
ethtool enp3s0 |grep detected
若回显为 Link detected: yes
,如下所示,说明网卡状态
为UP
,继续排查其他配置
;
若回显为 Link detected: no
,则有可能是网线没插好
或网线插错
。
ethool查看指定网卡信息
# 显示网卡当前速率和链接状态
ethtool 网卡名
查看网卡的固件(Fireware)版本
# 查看网卡的驱动和固件(Fireware)版本
ethtool -i ens4
通过lshw查看网卡总线
# 查看网卡总线
lshw -c net -businfo
查看网桥
# 安装bridge-utils
yum install -y bridge-utils
# 查看网桥
brctl show
# 查看网卡桥接信息
bridge link
厂商网络扩展
路由器,交换机,防火墙等通用的网络设备
interface ge0/0/0
ip address 1.1.1.1/24
厂商网络的配置步骤
- 接口更改状态(二层接口, 三层接口, 接口的UP and DOwn)
- 配置vlan或看ip地址以及掩码
- 配置IGP
- 配置BGP
- zone
- 配置策略