主题
网络配置
网络配置是 Rocky Linux 系统管理中最基础也是最重要的任务之一。正确的网络配置对于服务器的正常运行至关重要。本教程将详细介绍在 Rocky Linux 中配置网络的各种方法,包括使用命令行工具和配置文件进行网络接口配置、IP 地址管理、DNS 设置等。
网络基础
网络接口
网络接口是计算机与网络连接的硬件或软件接口。在 Rocky Linux 中,网络接口通常通过以下方式命名:
- 物理以太网接口:
eth0,eth1或较新的ens33,enp0s3等 - 无线网络接口:
wlan0,wlp2s0等 - 环回接口:
lo(本地回环,用于本地通信) - 虚拟网络接口:如网桥(
br0)、隧道(tun0)等
IP 地址类型
- IPv4 地址:32 位地址,格式为
192.168.1.1 - IPv6 地址:128 位地址,格式为
2001:0db8:85a3:0000:0000:8a2e:0370:7334
网络配置方法
在 Rocky Linux 中,有多种方法可以配置网络:
- 使用 NetworkManager(现代桌面和服务器的推荐方式)
- 编辑网络配置文件(传统方法)
- 使用命令行工具如
ip、nmcli、nmtui等
查看网络信息
查看网络接口信息
bash
# 使用 ip 命令查看网络接口状态
ip addr show
ip a # 简写形式
# 使用 ifconfig 命令(需要安装 net-tools)
sudo dnf install net-tools -y
ifconfig -a查看网络连接状态
bash
# 查看网络连接状态
ip link show
# 查看路由表
ip route show
ip r # 简写形式
# 查看默认网关
ip route show default测试网络连接
bash
# 测试与目标主机的连接
ping 8.8.8.8
# 使用域名测试 DNS 解析
ping www.rockylinux.org
# 跟踪网络路由
traceroute 8.8.8.8
# 检查 TCP 连接
ss -tuln使用 NetworkManager 配置网络
NetworkManager 是 Rocky Linux 中用于管理网络连接的默认工具,提供了命令行和图形界面两种配置方式。
使用 nmcli 命令行工具
查看网络连接
bash
# 查看所有网络连接
nmcli connection show
# 查看活跃的网络连接
nmcli connection show --active
# 查看网络设备状态
nmcli device status创建和配置网络连接
bash
# 创建新的以太网连接(静态 IP)
sudo nmcli connection add type ethernet con-name "static-eth0" ifname eth0 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8,8.8.4.4
# 创建新的以太网连接(DHCP)
sudo nmcli connection add type ethernet con-name "dhcp-eth0" ifname eth0 ipv4.method auto
# 启用网络连接
sudo nmcli connection up "static-eth0"
# 禁用网络连接
sudo nmcli connection down "static-eth0"修改现有网络连接
bash
# 修改连接的 IP 地址
sudo nmcli connection modify "static-eth0" ipv4.addresses 192.168.1.150/24
# 修改网关
sudo nmcli connection modify "static-eth0" ipv4.gateway 192.168.1.254
# 修改 DNS 服务器
sudo nmcli connection modify "static-eth0" ipv4.dns "1.1.1.1,1.0.0.1"
# 切换为 DHCP
sudo nmcli connection modify "static-eth0" ipv4.method auto
# 切换为静态 IP
sudo nmcli connection modify "dhcp-eth0" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8
# 应用更改
sudo nmcli connection up "static-eth0"使用 nmtui 文本界面
nmtui 是一个基于文本的用户界面工具,比命令行更直观:
bash
# 启动 nmtui
sudo nmtui在界面中,您可以:
- 编辑现有连接
- 激活/禁用连接
- 设置系统主机名
使用方向键导航,Enter 键选择,Tab 键在不同区域间切换。
编辑网络配置文件
对于更高级的网络配置,您可以直接编辑网络配置文件。在 Rocky Linux 中,NetworkManager 的配置文件位于 /etc/NetworkManager/system-connections/ 目录,而传统的网络配置文件位于 /etc/sysconfig/network-scripts/ 目录。
编辑 NetworkManager 配置文件
NetworkManager 的连接配置文件采用 INI 格式:
bash
# 查看连接配置文件
sudo ls -la /etc/NetworkManager/system-connections/
# 编辑网络配置文件
sudo vim /etc/NetworkManager/system-connections/static-eth0.nmconnection一个典型的静态 IP 配置文件如下:
ini
[connection]
type=ethernet
interface-name=eth0
permissions=
autoconnect=true
[ethernet]
mac-address-blacklist=
[ipv4]
dns=8.8.8.8;8.8.4.4;
address1=192.168.1.100/24,192.168.1.1
method=manual
[ipv6]
addr-gen-mode=stable-privacy
method=auto保存更改后,重新加载 NetworkManager:
bash
sudo nmcli connection reload
sudo nmcli connection up static-eth0编辑传统网络配置文件
如果您使用的是传统的网络配置方法,可以编辑 /etc/sysconfig/network-scripts/ 目录下的配置文件:
bash
# 查看网络脚本文件
sudo ls -la /etc/sysconfig/network-scripts/
# 编辑网络接口配置文件
sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0一个静态 IP 配置示例:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=550e8400-e29b-41d4-a716-446655440000
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.1.100
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
IPV6_PRIVACY=noDHCP 配置示例:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=550e8400-e29b-41d4-a716-446655440000
DEVICE=eth0
ONBOOT=yes修改配置后,重启网络服务:
bash
# 重启网络服务
sudo systemctl restart NetworkManager
# 或使用传统的网络服务(如果已安装)
sudo systemctl restart networkDNS 配置
查看当前 DNS 配置
bash
# 查看当前的 DNS 解析器
cat /etc/resolv.conf
# 使用 nmcli 查看 DNS 配置
nmcli connection show "static-eth0" | grep ipv4.dns修改 DNS 配置
使用 nmcli 修改 DNS
bash
# 修改特定连接的 DNS 配置
sudo nmcli connection modify "static-eth0" ipv4.dns "8.8.8.8,8.8.4.4,1.1.1.1"
# 应用更改
sudo nmcli connection up "static-eth0"编辑 resolv.conf 文件
注意:如果使用 NetworkManager,直接编辑 /etc/resolv.conf 可能会被覆盖。推荐使用以下方法:
bash
# 创建自定义 resolv.conf 文件
sudo vim /etc/resolv.conf.d/custom.conf添加以下内容:
nameserver 8.8.8.8
nameserver 8.8.4.4然后配置 NetworkManager 使用这个文件:
bash
sudo vim /etc/NetworkManager/NetworkManager.conf添加或修改以下内容:
ini
[main]
dns=none最后,创建符号链接:
bash
sudo ln -sf /etc/resolv.conf.d/custom.conf /etc/resolv.conf
sudo systemctl restart NetworkManager本地主机名解析
/etc/hosts 文件用于本地主机名解析,可以在 DNS 之前解析主机名:
bash
sudo vim /etc/hosts添加以下内容:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.10 server.example.com server
192.168.1.11 database.example.com database高级网络配置
配置网络别名(多 IP 地址)
可以为单个网络接口配置多个 IP 地址:
使用 nmcli 添加额外 IP
bash
# 添加额外的 IP 地址
sudo nmcli connection modify "static-eth0" +ipv4.addresses 192.168.1.101/24
# 移除额外的 IP 地址
sudo nmcli connection modify "static-eth0" -ipv4.addresses 192.168.1.101/24
# 应用更改
sudo nmcli connection up "static-eth0"使用 ip 命令临时添加 IP
bash
# 添加临时 IP 地址
ip addr add 192.168.1.101/24 dev eth0
# 移除临时 IP 地址
ip addr del 192.168.1.101/24 dev eth0配置静态路由
使用 nmcli 添加静态路由
bash
# 添加静态路由
sudo nmcli connection modify "static-eth0" +ipv4.routes "10.0.0.0/8 192.168.1.254"
# 移除静态路由
sudo nmcli connection modify "static-eth0" -ipv4.routes "10.0.0.0/8 192.168.1.254"
# 应用更改
sudo nmcli connection up "static-eth0"使用 ip 命令临时添加路由
bash
# 添加临时路由
ip route add 10.0.0.0/8 via 192.168.1.254 dev eth0
# 移除临时路由
ip route del 10.0.0.0/8 via 192.168.1.254 dev eth0配置网络桥接
网络桥接用于将多个网络接口连接在一起,常用于虚拟机环境:
使用 nmcli 创建网络桥接
bash
# 创建桥接接口
sudo nmcli connection add type bridge con-name br0 ifname br0 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8
# 将物理接口添加到桥接
sudo nmcli connection add type bridge-slave con-name br0-port1 ifname eth0 master br0
# 禁用原始网络接口
sudo nmcli connection down eth0
# 启用桥接接口
sudo nmcli connection up br0主机名配置
查看主机名
bash
# 查看当前主机名
hostname
# 查看完整的主机名配置
hostnamectl修改主机名
使用 hostnamectl 修改主机名
bash
# 设置静态主机名
sudo hostnamectl set-hostname server.example.com
# 设置美观主机名(在图形界面显示)
sudo hostnamectl set-hostname "Rocky Linux Server" --pretty
# 设置临时主机名(重启后失效)
sudo hostname temp-server编辑 /etc/hostname 文件
bash
sudo vim /etc/hostname添加或修改主机名:
server.example.com保存后,需要重启系统或使用 hostname 命令应用更改:
bash
sudo hostname -F /etc/hostname网络故障排除
常见网络问题及解决方案
无法连接到网络
bash# 检查网络接口状态 ip link show eth0 # 启用网络接口 sudo ip link set eth0 up # 检查网络服务状态 sudo systemctl status NetworkManager # 重启网络服务 sudo systemctl restart NetworkManager无法解析域名
bash# 检查 DNS 配置 cat /etc/resolv.conf # 测试 DNS 解析 dig @8.8.8.8 www.rockylinux.org # 使用 nmcli 修改 DNS sudo nmcli connection modify "static-eth0" ipv4.dns "8.8.8.8,8.8.4.4" sudo nmcli connection up "static-eth0"无法访问特定网站或服务器
bash# 测试网络连通性 ping -c 4 8.8.8.8 # 跟踪路由 traceroute www.rockylinux.org # 检查防火墙设置 sudo firewall-cmd --list-all网络速度慢
bash# 检查网络接口统计信息 ip -s link # 检查网络错误和丢包 ethtool -S eth0 # 检查双工和速度设置 sudo ethtool eth0
网络诊断工具
bash
# 安装网络诊断工具
sudo dnf install net-tools bind-utils traceroute mtr tcpdump -y
# 使用 mtr 进行网络诊断(结合了 ping 和 traceroute)
mtr www.rockylinux.org
# 使用 tcpdump 捕获网络数据包
sudo tcpdump -i eth0 port 80 -n
# 检查网络连接状态
ss -tuln网络安全设置
防火墙配置
bash
# 查看防火墙状态
sudo firewall-cmd --state
# 查看当前防火墙规则
sudo firewall-cmd --list-all
# 允许特定端口通过防火墙
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
# 允许特定服务通过防火墙
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload禁用 IPv6(如不需要)
bash
# 临时禁用 IPv6
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
# 永久禁用 IPv6
sudo vim /etc/sysctl.conf添加以下行:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1应用更改:
bash
sudo sysctl -p总结
本教程详细介绍了 Rocky Linux 中的网络配置方法,包括使用 NetworkManager 的命令行工具(nmcli)和文本界面(nmtui)配置网络,以及编辑网络配置文件进行更高级的配置。我们还学习了如何配置 DNS、设置主机名、创建网络桥接,以及如何进行网络故障排除。
正确的网络配置对于服务器的正常运行至关重要,特别是在生产环境中。通过本教程学习的知识,您应该能够轻松地在 Rocky Linux 中配置和管理网络连接。