网络配置
网络配置是 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等
查看网络信息
查看网络接口信息
# 使用 ip 命令查看网络接口状态
ip addr show
ip a # 简写形式
# 使用 ifconfig 命令(需要安装 net-tools)
sudo dnf install net-tools -y
ifconfig -a
查看网络连接状态
# 查看网络连接状态
ip link show
# 查看路由表
ip route show
ip r # 简写形式
# 查看默认网关
ip route show default
测试网络连接
# 测试与目标主机的连接
ping 8.8.8.8
# 使用域名测试 DNS 解析
ping www.rockylinux.org
# 跟踪网络路由
traceroute 8.8.8.8
# 检查 TCP 连接
ss -tuln
使用 NetworkManager 配置网络
NetworkManager 是 Rocky Linux 中用于管理网络连接的默认工具,提供了命令行和图形界面两种配置方式。
使用 nmcli 命令行工具
查看网络连接
# 查看所有网络连接
nmcli connection show
# 查看活跃的网络连接
nmcli connection show --active
# 查看网络设备状态
nmcli device status
创建和配置网络连接
# 创建新的以太网连接(静态 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"
修改现有网络连接
# 修改连接的 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 是一个基于文本的用户界面工具,比命令行更直观:
# 启动 nmtui
sudo nmtui
在界面中,您可以:
- 编辑现有连接
- 激活/禁用连接
- 设置系统主机名
使用方向键导航,Enter 键选择,Tab 键在不同区域间切换。
编辑网络配置文件
对于更高级的网络配置,您可以直接编辑网络配置文件。在 Rocky Linux 中,NetworkManager 的配置文件位于 /etc/NetworkManager/system-connections/ 目录,而传统的网络配置文件位于 /etc/sysconfig/network-scripts/ 目录。
编辑 NetworkManager 配置文件
NetworkManager 的连接配置文件采用 INI 格式:
# 查看连接配置文件
sudo ls -la /etc/NetworkManager/system-connections/
# 编辑网络配置文件
sudo vim /etc/NetworkManager/system-connections/static-eth0.nmconnection
一个典型的静态 IP 配置文件如下:
[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:
sudo nmcli connection reload
sudo nmcli connection up static-eth0
编辑传统网络配置文件
如果您使用的是传统的网络配置方法,可以编辑 /etc/sysconfig/network-scripts/ 目录下的配置文件:
# 查看网络脚本文件
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=no
DHCP 配置示例:
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
修改配置后,重启网络服务:
# 重启网络服务
sudo systemctl restart NetworkManager
# 或使用传统的网络服务(如果已安装)
sudo systemctl restart network
DNS 配置
查看当前 DNS 配置
# 查看当前的 DNS 解析器
cat /etc/resolv.conf
# 使用 nmcli 查看 DNS 配置
nmcli connection show "static-eth0" | grep ipv4.dns
修改 DNS 配置
使用 nmcli 修改 DNS
# 修改特定连接的 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 可能会被覆盖。推荐使用以下方法:
# 创建自定义 resolv.conf 文件
sudo vim /etc/resolv.conf.d/custom.conf
添加以下内容:
nameserver 8.8.8.8
nameserver 8.8.4.4
然后配置 NetworkManager 使用这个文件:
sudo vim /etc/NetworkManager/NetworkManager.conf
添加或修改以下内容:
[main]
dns=none
最后,创建符号链接:
sudo ln -sf /etc/resolv.conf.d/custom.conf /etc/resolv.conf
sudo systemctl restart NetworkManager
本地主机名解析
/etc/hosts 文件用于本地主机名解析,可以在 DNS 之前解析主机名:
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
# 添加额外的 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
# 添加临时 IP 地址
ip addr add 192.168.1.101/24 dev eth0
# 移除临时 IP 地址
ip addr del 192.168.1.101/24 dev eth0
配置静态路由
使用 nmcli 添加静态路由
# 添加静态路由
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 命令临时添加路由
# 添加临时路由
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 创建网络桥接
# 创建桥接接口
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
主机名配置
查看主机名
# 查看当前主机名
hostname
# 查看完整的主机名配置
hostnamectl
修改主机名
使用 hostnamectl 修改主机名
# 设置静态主机名
sudo hostnamectl set-hostname server.example.com
# 设置美观主机名(在图形界面显示)
sudo hostnamectl set-hostname "Rocky Linux Server" --pretty
# 设置临时主机名(重启后失效)
sudo hostname temp-server
编辑 /etc/hostname 文件
sudo vim /etc/hostname
添加或修改主机名:
server.example.com
保存后,需要重启系统或使用 hostname 命令应用更改:
sudo hostname -F /etc/hostname
网络故障排除
常见网络问题及解决方案
- 无法连接到网络
# 检查网络接口状态
ip link show eth0
# 启用网络接口
sudo ip link set eth0 up
# 检查网络服务状态
sudo systemctl status NetworkManager
# 重启网络服务
sudo systemctl restart NetworkManager
- 无法解析域名
# 检查 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"
- 无法访问特定网站或服务器
# 测试网络连通性
ping -c 4 8.8.8.8
# 跟踪路由
traceroute www.rockylinux.org
# 检查防火墙设置
sudo firewall-cmd --list-all
- 网络速度慢
# 检查网络接口统计信息
ip -s link
# 检查网络错误和丢包
ethtool -S eth0
# 检查双工和速度设置
sudo ethtool eth0
网络诊断工具
# 安装网络诊断工具
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
网络安全设置
防火墙配置
# 查看防火墙状态
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(如不需要)
# 临时禁用 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
应用更改:
sudo sysctl -p
总结
本教程详细介绍了 Rocky Linux 中的网络配置方法,包括使用 NetworkManager 的命令行工具(nmcli)和文本界面(nmtui)配置网络,以及编辑网络配置文件进行更高级的配置。我们还学习了如何配置 DNS、设置主机名、创建网络桥接,以及如何进行网络故障排除。
正确的网络配置对于服务器的正常运行至关重要,特别是在生产环境中。通过本教程学习的知识,您应该能够轻松地在 Rocky Linux 中配置和管理网络连接。
相关内容
- 备份与恢复 本文介绍如何在 Rocky Linux 系统中执行数据与系统的备份与恢复,包括 rsync、tar、Timeshift、快照与自动化定时任务等多种方法。
- Rocky Linux 与 RHEL 的区别 详细分析 Rocky Linux 与 Red Hat Enterprise Linux (RHEL) 的区别,包括开发背景、兼容性、更新策略、社区支持和企业使用...
- 定时任务(cron) 本文详细介绍 Rocky Linux 中使用 cron 定时任务的配置方法,包括 crontab 基础语法、系统任务调度、日志管理与常见问题排查。
- 数据库服务(MySQL / PostgreSQL) 在 Rocky Linux 中安装和配置 MySQL 与 PostgreSQL 数据库服务,涵盖安装命令、防火墙配置、开机自启和基础安全设置。
- Python 与 Node.js 环境配置 在 Rocky Linux 中安装与管理 Python、pip、Node.js 与 npm 环境,涵盖多版本管理、全局模块安装、国内源配置等实用技巧。
- 磁盘与分区管理(lsblk、fdisk) 详细介绍 Rocky Linux 中使用 lsblk 和 fdisk 工具进行磁盘和分区管理的方法,包括查看磁盘信息、创建分区、删除分区等操作