Featured image of post CentOS 静态 IPv4 配置指南 📡

CentOS 静态 IPv4 配置指南 📡

CentOS 静态 IPv4 配置指南 📡 🌟 简介与特点 本指南提供在 CentOS 系统上配置和管理

CentOS 静态 IPv4 配置指南 📡

CentOS Network

🌟 简介与特点

本指南提供在 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
rm -f /mnt/alltube.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! 🚀