教程 rockylinux tutorial

网络配置

网络配置是 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 中,有多种方法可以配置网络:

  1. 使用 NetworkManager(现代桌面和服务器的推荐方式)
  2. 编辑网络配置文件(传统方法)
  3. 使用命令行工具如 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

在界面中,您可以:

  1. 编辑现有连接
  2. 激活/禁用连接
  3. 设置系统主机名

使用方向键导航,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=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

修改配置后,重启网络服务:

bash
# 重启网络服务
sudo systemctl restart NetworkManager

# 或使用传统的网络服务(如果已安装)
sudo systemctl restart network

DNS 配置

查看当前 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

网络故障排除

常见网络问题及解决方案

  1. 无法连接到网络
bash
   # 检查网络接口状态
   ip link show eth0

   # 启用网络接口
   sudo ip link set eth0 up

   # 检查网络服务状态
   sudo systemctl status NetworkManager

   # 重启网络服务
   sudo systemctl restart NetworkManager
  1. 无法解析域名
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"
  1. 无法访问特定网站或服务器
bash
   # 测试网络连通性
   ping -c 4 8.8.8.8

   # 跟踪路由
   traceroute www.rockylinux.org

   # 检查防火墙设置
   sudo firewall-cmd --list-all
  1. 网络速度慢
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 中配置和管理网络连接。