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 =EthernetPROXY_METHOD =noneBROWSER_ONLY =no BOOTPROTO =staticDEFROUTE =yes IPV4_FAILURE_FATAL =no IPV6INIT =yes IPV6_AUTOCONF =yes IPV6_DEFROUTE =yes IPV6_FAILURE_FATAL =no IPV6_ADDR_GEN_MODE =stable-privacyNAME =eth0UUID =your-uuid-hereDEVICE =eth0ONBOOT =yes 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 addr show ip route show cat /etc/resolv.confnmcli 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 nslookup google.com traceroute google.com nc -zv example.com 80
🔄 网络服务管理 重启网络服务 1 2 3 4 5 6 7 8 9 10 11 sudo systemctl restart networksudo systemctl restart NetworkManagernmcli connection reload nmcli n off && nmcli n on
接口管理 1 2 3 4 5 6 7 8 9 10 11 12 sudo ifup eth0sudo ifdown eth0sudo ifdown eth0 && sudo ifup eth0nmcli 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.zipcurl -o /dev/null -w "速度: %{speed_download} B/s\n" http://speedtest.tele2.net/100MB.zip 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 teamdsudo nmcli connection add type bond con-name bond0 ifname bond0 mode active-backupsudo nmcli connection add type bond-slave ifname eth0 master bond0sudo nmcli connection add type bond-slave ifname eth1 master bond0sudo 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 manualsudo nmcli connection up bond0
VLAN 配置 1 2 3 4 5 6 7 8 9 sudo yum install -y vlansudo nmcli connection add type vlan con-name vlan10 ifname eth0.10 dev eth0 id 10sudo 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 manualsudo 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 -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.statesudo systemctl restart NetworkManagersudo systemctl restart nscdsudo nmcli connection delete eth0sudo nmcli connection add type ethernet con-name eth0 ifname eth0sestatus 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.confsudo cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.backupsudo 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-eth0sudo systemctl restart NetworkManagersudo 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 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}' 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 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-eth0sudo sed -i "s/GATEWAY=.*/GATEWAY=$GATEWAY /" /etc/sysconfig/network-scripts/ifcfg-eth0sudo systemctl restart NetworkManagernmcli n off nmcli n on echo "✅ 已切换到网关: $GATEWAY "
使用方法: 1 2 3 chmod +x switch-gateway.sh./switch-gateway.sh 252
🎉 总结 通过本指南,您应该能够轻松地在 CentOS 系统上配置和管理静态 IPv4 网络设置。CentOS 提供了强大而灵活的网络管理工具,无论是传统的 network 服务还是现代的 NetworkManager,都能满足各种网络配置需求。
关键要点 :
🛡️ 始终备份网络配置 before 进行更改
🔍 使用提供的诊断工具验证网络状态
⚡ 利用脚本实现快速网关切换
📝 了解 CentOS 特有的网络服务管理方式
🔧 掌握高级网络功能如绑定和 VLAN
如有任何问题或需要进一步协助,请参考 CentOS 官方文档或社区论坛。Happy networking! 🚀