CentOS 静态 IPv4 配置指南 📡
🌟 简介与特点
本指南提供在 CentOS 系统上配置和管理静态 IPv4 地址及默认网关的完整解决方案。CentOS 作为企业级 Linux 发行版,提供了强大而稳定的网络管理功能。
✨ 主要特点
- 🚀 多网关支持:快速在不同网关间切换
- ⚡ 即时生效:配置更改无需重启系统
- 🔧 双重管理:支持传统 network 服务和 NetworkManager
- 📊 全面诊断:提供丰富的网络状态检查工具
- 🛡️ 安全可靠:包含配置备份和恢复方案
- 💾 性能测试:内置网络速度测试功能
📑 导航目录
🌠 简介与特点
CentOS 是基于 Red Hat Enterprise Linux (RHEL) 源代码构建的企业级 Linux 发行版,以其稳定性和可靠性著称。本指南专注于 CentOS 系统的静态 IPv4 网络配置,特别是网关管理和网络故障排除。
主要功能:
- ✅ 多网关快速切换脚本
- ✅ NetworkManager 和传统网络服务双重支持
- ✅ 完整的网络诊断工具集
- ✅ 配置备份和恢复机制
- ✅ 网络性能测试功能
- ✅ 高级网络功能(绑定、VLAN)
⚡ 默认网关配置
1. 配置 10.10.10.252 网关
1
2
3
4
5
6
|
sudo chmod 755 /etc/sysconfig/network-scripts/ifcfg-eth0 && \
sudo sed -i 's/GATEWAY.*/GATEWAY=10.10.10.252/' /etc/sysconfig/network-scripts/ifcfg-eth0 && \
sudo systemctl restart NetworkManager && \
nmcli n off && \
nmcli n on && \
echo "✅ 已成功切换到网关: 10.10.10.252"
|
2. 配置 10.10.10.243 网关
1
2
3
4
5
6
|
sudo chmod 755 /etc/sysconfig/network-scripts/ifcfg-eth0 && \
sudo sed -i 's/GATEWAY.*/GATEWAY=10.10.10.243/' /etc/sysconfig/network-scripts/ifcfg-eth0 && \
sudo systemctl restart NetworkManager && \
nmcli n off && \
nmcli n on && \
echo "✅ 已成功切换到网关: 10.10.10.243"
|
3. 配置 10.10.10.253 网关
1
2
3
4
5
6
|
sudo chmod 755 /etc/sysconfig/network-scripts/ifcfg-eth0 && \
sudo sed -i 's/GATEWAY.*/GATEWAY=10.10.10.253/' /etc/sysconfig/network-scripts/ifcfg-eth0 && \
sudo systemctl restart NetworkManager && \
nmcli n off && \
nmcli n on && \
echo "✅ 已成功切换到网关: 10.10.10.253"
|
4. 查看当前默认网关
1
|
echo -e "\e[1;34m默认网关 : \e[1;31m$(ip route show default | awk '/default/ {print $3}')\e[0m"
|
🔧 完整网络配置示例
编辑网络配置文件
1
|
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
|
完整的静态 IP 配置示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=your-uuid-here
DEVICE=eth0
ONBOOT=yes
# 静态 IP 配置
IPADDR=10.10.10.100
PREFIX=24
NETMASK=255.255.255.0
GATEWAY=10.10.10.252
DNS1=8.8.8.8
DNS2=8.8.4.4
DOMAIN=yourdomain.local
|
📊 网络状态检查命令
查看当前网络配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 查看 IP 地址
ip addr show
# 查看路由表
ip route show
# 查看 DNS 配置
cat /etc/resolv.conf
# 查看网络接口状态
nmcli device status
# 查看连接详情
nmcli connection show
|
测试网络连通性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 测试网关连通性
ping -c 4 10.10.10.252
# 测试外部网络连通性
ping -c 4 8.8.8.8
# 测试 DNS 解析
nslookup google.com
# 跟踪路由
traceroute google.com
# 检查端口连通性
nc -zv example.com 80
|
🔄 网络服务管理
重启网络服务
1
2
3
4
5
6
7
8
9
10
11
|
# 传统方法(CentOS 7)
sudo systemctl restart network
# NetworkManager 方法
sudo systemctl restart NetworkManager
# 重新加载所有连接
nmcli connection reload
# 关闭再开启网络
nmcli n off && nmcli n on
|
接口管理
1
2
3
4
5
6
7
8
9
10
11
12
|
# 启用网络接口
sudo ifup eth0
# 禁用网络接口
sudo ifdown eth0
# 重启特定接口
sudo ifdown eth0 && sudo ifup eth0
# 使用 nmcli 管理接口
nmcli connection up eth0
nmcli connection down eth0
|
💾 文件下载测试
下载测试文件
1
|
wget -c -O /mnt/alltube.zip https://github.com/Rudloff/alltube/releases/download/3.1.1/alltube-3.1.1.zip
|
删除测试文件
下载速度测试
1
2
3
4
5
6
7
8
|
# 测试下载速度
time wget -O /dev/null http://speedtest.tele2.net/100MB.zip
# 使用 curl 测试速度
curl -o /dev/null -w "速度: %{speed_download} B/s\n" http://speedtest.tele2.net/100MB.zip
# 使用 speedtest-cli 测试
speedtest-cli --simple
|
🛠️ 高级网络配置
多网卡绑定(Bonding)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# 安装必要工具
sudo yum install -y teamd
# 创建绑定接口
sudo nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup
# 添加从属接口
sudo nmcli connection add type bond-slave ifname eth0 master bond0
sudo nmcli connection add type bond-slave ifname eth1 master bond0
# 配置 IP 地址
sudo nmcli connection modify bond0 ipv4.addresses '10.10.10.100/24'
sudo nmcli connection modify bond0 ipv4.gateway '10.10.10.252'
sudo nmcli connection modify bond0 ipv4.method manual
# 激活绑定
sudo nmcli connection up bond0
|
VLAN 配置
1
2
3
4
5
6
7
8
9
|
# 安装 VLAN 支持
sudo yum install -y vlan
# 创建 VLAN 接口
sudo nmcli connection add type vlan con-name vlan10 ifname eth0.10 dev eth0 id 10
sudo nmcli connection modify vlan10 ipv4.addresses '10.10.10.100/24'
sudo nmcli connection modify vlan10 ipv4.gateway '10.10.10.252'
sudo nmcli connection modify vlan10 ipv4.method manual
sudo nmcli connection up vlan10
|
🔍 故障排除
网络诊断命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# 检查网络配置
nmcli device show eth0
# 查看网络日志
journalctl -u NetworkManager --since "5 minutes ago"
# 检查网络连接状态
ss -tuln
# 查看 ARP 表
arp -n
# 检查路由表
route -n
# 追踪网络路径
mtr google.com
|
常见问题解决
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# 如果网络配置不生效
sudo rm -f /var/lib/NetworkManager/NetworkManager.state
sudo systemctl restart NetworkManager
# 清除 DNS 缓存
sudo systemctl restart nscd
# 重置网络配置
sudo nmcli connection delete eth0
sudo nmcli connection add type ethernet con-name eth0 ifname eth0
# 检查 SELinux 状态
sestatus
# 检查防火墙设置
sudo firewall-cmd --list-all
|
📝 网络配置备份与恢复
备份网络配置
1
2
3
4
5
6
7
8
|
# 备份所有网络配置
sudo tar -czf network-backup-$(date +%Y%m%d).tar.gz /etc/sysconfig/network-scripts/ /etc/hosts /etc/resolv.conf
# 备份特定接口配置
sudo cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.backup
# 备份 NetworkManager 连接
sudo cp -r /etc/NetworkManager/system-connections/ /root/network-backup/
|
恢复网络配置
1
2
3
4
5
6
7
8
9
10
11
|
# 从备份恢复
sudo tar -xzf network-backup-20231001.tar.gz -C /
# 恢复特定接口配置
sudo cp /etc/sysconfig/network-scripts/ifcfg-eth0.backup /etc/sysconfig/network-scripts/ifcfg-eth0
sudo systemctl restart NetworkManager
# 恢复 NetworkManager 连接
sudo cp -r /root/network-backup/system-connections/* /etc/NetworkManager/system-connections/
sudo chmod 600 /etc/NetworkManager/system-connections/*
sudo systemctl restart NetworkManager
|
💡 实用脚本
网络状态检查脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#!/bin/bash
# network-status.sh
echo -e "\e[1;34m=== 网络状态检查 ===\e[0m"
echo ""
# 显示接口信息
echo -e "\e[1;32m网络接口:\e[0m"
ip addr show | grep -E "^(.*: )|(inet )"
# 显示路由信息
echo -e "\e[1;32m路由表:\e[0m"
ip route show
# 显示默认网关
echo -e "\e[1;32m默认网关:\e[0m"
ip route show default | awk '/default/ {print $3}'
# 显示DNS配置
echo -e "\e[1;32mDNS 配置:\e[0m"
grep -E "^nameserver" /etc/resolv.conf
# 测试连通性
echo -e "\e[1;32m网络连通性:\e[0m"
ping -c 2 -W 1 8.8.8.8 >/dev/null 2>&1 && echo "外部网络: 可达" || echo "外部网络: 不可达"
ping -c 2 -W 1 $(ip route show default | awk '/default/ {print $3}') >/dev/null 2>&1 && echo "网关: 可达" || echo "网关: 不可达"
# 显示开放端口
echo -e "\e[1;32m开放端口:\e[0m"
ss -tuln | grep LISTEN
|
使用方法:
1
2
|
chmod +x network-status.sh
./network-status.sh
|
网关切换脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#!/bin/bash
# switch-gateway.sh
if [ $# -eq 0 ]; then
echo "用法: switch-gateway [252|243|253]"
exit 1
fi
case $1 in
"252")
GATEWAY="10.10.10.252"
;;
"243")
GATEWAY="10.10.10.243"
;;
"253")
GATEWAY="10.10.10.253"
;;
*)
echo "错误: 无效的网关选择"
exit 1
;;
esac
sudo chmod 755 /etc/sysconfig/network-scripts/ifcfg-eth0
sudo sed -i "s/GATEWAY=.*/GATEWAY=$GATEWAY/" /etc/sysconfig/network-scripts/ifcfg-eth0
sudo systemctl restart NetworkManager
nmcli n off
nmcli n on
echo "✅ 已切换到网关: $GATEWAY"
|
使用方法:
1
2
3
|
chmod +x switch-gateway.sh
# 切换到 252 网关
./switch-gateway.sh 252
|
🎉 总结
通过本指南,您应该能够轻松地在 CentOS 系统上配置和管理静态 IPv4 网络设置。CentOS 提供了强大而灵活的网络管理工具,无论是传统的 network 服务还是现代的 NetworkManager,都能满足各种网络配置需求。
关键要点:
- 🛡️ 始终备份网络配置 before 进行更改
- 🔍 使用提供的诊断工具验证网络状态
- ⚡ 利用脚本实现快速网关切换
- 📝 了解 CentOS 特有的网络服务管理方式
- 🔧 掌握高级网络功能如绑定和 VLAN
如有任何问题或需要进一步协助,请参考 CentOS 官方文档或社区论坛。Happy networking! 🚀