Rocky Linux的定位是提供服务的网络型操作系统,所以为其配置完整的网络参数至关重要。通常,Linux可以通过两种方式为系统配置网络参数:一种是通过命令行配置,另一种是通过修改系统配置文件来配置。下面分别介绍这两种配置网络参数的方法。
1、ip 命令(临时配置,命令行)
- 描述:显示或配置网络接口/路由等信息。
- 语法:ip [选项] [子命令]
-
- 子命令:
-
-
- addr 网卡ip地址
- link 网卡物理地址
- route 路由信息
-
a. 网卡接口:增删改查
# 设置ens33网卡接口的IP地址为192.168.137.6
ip addr add 192.168.137.6/24 dev ens33
# 查询ens33网卡接口信息
ip addr show ens33
# 查看网卡的物理链路信息,不写网卡名称表示查看所有网卡的信息。
ip link show ens33
# 删除网卡的IP地址配置
ip addr del 192.168.137.6/24 dev ens33
b. 网卡接口:关闭激活
# 关闭ens33网卡接口
ip link set ens33 down
# 查看ens33接口,state是down状态
ip link show ens33
# 激活ens33网卡接口
ip link set ens33 up
# 查看ens33接口,state是up状态
ip link show ens33
c. 路由信息:增删改查
# 添加默认路由,将默认路由IP地址配置为192.168.137.7
ip route add default via 192.168.137.7
# 查看路由表信息
ip route show
# 添加自定义路由表信息,添加到192.168.137.0/24网络的路由IP地址为192.168.137.7
ip route add 192.168.137.0/24 via 192.168.137.7
# 查看路由表信息
ip route show
# 删除自定义路由表信息
ip route del 192.168.137.0/24 via 192.168.137.7
注意:ip命令的所有配置都是临时的,重启后所有配置都将无效。
2、nmcli 命令(永久配置,命令行)
使用nmcli命令配置网络参数时,需要注意device name和connection name的区别
- device name是网卡的设备名称,connection name是网络连接名称(也可以称为connection profile名称)。
- device name和connection name可以一样也可以不一样。
另外,使用nmcli配置网络参数之前,一定要确保NetworkManager服务处于启动状态,否则执行nmcli命令会提示报错信息“Error:NetworkManager is not running.”。
- 描述:命令行工具,配置网络参数。
- 用法:nmcli [选项] [子命令]
-
- 子命令:
-
-
- device 网络设备
- connection 网络连接
-
# 查看网卡物理设备信息
nmcli device show
a. connection:增删改查
# 查看网络连接信息
nmcli connection show
# 删除ens33网络连接
nmcli connection del ens33
# 查看结果
nmcli connection show
下面基于ens33这个网卡设备(ifname对应device name)创建新的网络连接(con-name对应connection name),新创建的网络连接名称可以和设备名称一致,也可以任意配置,type用于指定网络类型为以太网。
# 基于ens33设备创建ens33网络连接
nmcli connection add ifname ens33 con-name ens33 type ethernet
# 查看创建情况
nmcli connection show
创建完网络连接后,我们就可以配置网络连接的IP地址、子网掩码、网关、DNS等信息了,这些网络参数可以通过DHCP自动获取,也可以手动配置。
# 通过 DHCP 自动获取,给ens33配置网络参数
# modify 代表修改网络参数,ens33 是网络连接名称
# ipv4.method 指定网络参数的配置方式,auto代表自动获取
# autoconnect yes 代表开机要自动激活网络连接
nmcli connection modify ens33 ipv4.method auto autoconnect yes
# ipv4.method manual 代表手动配置网络参数,ipv4.addresses代表配置IP地址
# ipv4.gateway 代表配置默认网关,ipv4.dns 代表配置 dns 服务器
# autoconnect yes 代表系统开机后自动激活网络连接
nmcli connection modify es33 \
ipv4.method manual \
ipv4.addresses 192.168.137.5/24 \
ipv4.gateway 192.168.137.2 \
ipv4.dns 114.114.114.114 \
autoconnect yes
b. connection:配置路由
除了配置默认网关,nmcli命令也可以用于配置静态路由信息,多条路由信息使用逗号分隔。下面是配置静态路由信息的具体方法。配置到192.168.137.0/24网络的路由信息是192.168.137.1。
# 配置单个路由
nmcli connection modify ens33 \
ipv4.routes "192.168.137.0/24 192.168.137.5"
# 配置多个路由
nmcli connection modify ens33 \
ipv4.routes "192.168.137.0/24 192.168.137.5, 路由2"
注意:不管是自动获取还是手动配置网络参数,最后都必须激活网络连接才可以让所有参数立刻生效,如果配置了autoconnect yes,则计算机重启后这些网络参数依然有效。
# 关闭网络连接
nmcli connection down ens33
# 激活网络连接
nmcli connection up ens33
提示:系统安装bash-completion软件后,nmcli的子命令可以通过Tab键自动补齐。
3、hostnamectl 命令
- 描述:显示或配置系统主机名。
- 语法:hostnamectl [选项]
# 查看主机名及主机信息
hostnamectl status
# 配置主机名
hostnamectl set-hostname lemon
4、网络参数配置文件
在Linux Rocky 9系统中,使用nmcli命令配置的网络参数都会被自动保存到/etc/NetworkManager/system-connections/目录中,所以也可以通过直接修改系统配置文件实现网络参数的配置。
CentOS 7 系统中 配置文件在 /etc/sysconfig/network-scripts/ifcfg-ens33
实例2:配置ens160网卡参数,其中IP地址为172.16.0.160/16,子网掩码为255.255.0.0,网关为172.16.0.25,主DNS为8.8.8.8,辅助DNS为114.114.114.114;配置第二个IP地址为172.16.0.162,子网掩码为255.255.0.0。
主机名配置文件:/etc/hostname,通过修改该文件也可以实现主机名的配置。
5、网络故障排错
随着公司IT技术的不断扩展与延伸,当网络规模越来越大时,故障就时有发生,此时我们需要有良好的排错思路与优秀的排错工具。
排错思路:
-
- 首先,从最近一次操作定位问题所在,或根据公司服务器工作手册查找最近一次对服务器所做的修改,定位关键问题;
- 然后,检查这些操作与配置有无错误,同时获取与问题相关的信息(如硬件型号、软件版本、网络拓扑、日志等);
- 最后,根据所搜集的信息修复问题,可以是修改配置文件、替换相应的设备或进行版本升级等。
问题不是一成不变的,但解决问题的思路却是万变不离其宗的。下面介绍几个帮助解决网络配置常见问题的排错工具:
a. ping 命令
当网络不通时,可以使用简单的ping命令来定位问题节点,一般我们会按顺序执行ping命令,依次为本地回环、本地IP地址、网关IP地址、外网IP地址,ping命令的对象一般都会给予回应,如果没有回应或者返回错误信息,则表示网络不通(在某些环境下,对端主机也可能不对ping命令进行回应),据此可判断网络断点的位置。
ping 127.0.0.1 # ping 本地回环,测试本地网络协议是否正常
ping 192.168.137.160 # ping 本地IP地址,测试本地网络接口是否正常
ping 192.168.137.2 # ping 网关,测试网关是否正常
ping 202.106.0.20 # ping 外部网络,测试服务商网络是否正常
b. traceroute 命令
一个数据包从本地发出后一般会经过多个路由转发,假设有一个数据包进入互联网后因为中间的某个路由转发有问题,而导致最终的数据发送失败。在这种情况下,我们并不知道问题路由的位置及IP地址,此时可以利用traceroute解决上述问题。traceroute命令可以跟踪数据包的路由过程,以此判断问题所在。Linux下的traceroute默认使用UDP封装跟踪包,如果希望使用ICMP封装,可以使用-I选项。
# 安装软件
dnf -y install traceroute
# 跟踪路由信息
traceroute -I www.baidu.com
c. nslookup 命令
目前互联网高速发展,网络资源爆炸式增长。网络本身是使用IP地址来唯一对应网络资源的,但用户无法记忆那么多IP地址。所以,我们一般会通过域名来访问网络资源,此时DNS服务就显得至关重要了,使用nslookup命令可以帮助检查本地DNS服务器工作是否正常。输入下面的命令检查本地DNS服务器是否可以解析www.baidu.com域名。
nslookup www.baidu.com
输出信息说明,本次解析是由114.114.114.114这台DNS服务器提供的,解析的结果是,www.baidu.com域名对应了多个IP地址,有IPv4的地址也有IPv6的地址。
d. dig 命令
nslookup命令仅可以查询域名与IP地址之间的对应关系,如果要知道更多关于DNS记录的信息,可以使用dig命令,查看MX(邮件记录)、NS(域名服务器记录)等信息。
dig www.baidu.com
# 查看 baidu.com域的邮件记录
dig baidu.com MX
e. ss 命令
如果我们怀疑有人非法闯入了我们的系统,又不知道此人是谁,可以通过ss命令强大的网络监控能力找出连接系统的所有人。当我们启动了一个网络服务但远程客户却无法访问该服务时,也可以使用ss命令查看服务对应的端口是否已经正常开启,以判断服务启动是否正常。
ss -an
# 查看当前系统监听的端口信息(TCP 和 UDP)
ss -nutlp