CentOS单网卡绑定多IP的实操笔记:一台服务器玩出花,省钱又高效
CentOS单网卡绑定多IP的实操笔记

手里只有一张网卡,却想让服务器同时响应好几个公网地址?别急着加硬件,CentOS早就把这条路铺平了。这篇笔记把我自己踩过的坑、流过的汗,全部浓缩成一行行可直接复制的命令,看完就能上手,单网卡多IP不再是黑魔法。
为什么要折腾“一卡多IP”
租云主机时,厂商常把额外公网IP的报价抬得比咖啡还贵,可业务又要求站点、邮件、DNS各自独立地址。加网卡?钱包先说不。于是CentOS单网卡绑定多IP成了性价比最高的方案:零硬件成本,配置文件改两行,重启网络服务立刻生效。省下的预算拿去加内存,不香吗?
前置检查:先确认你有几张“脸”
登录机器,先跑ip addr,看看主网卡叫啥。一般叫eth0、ens33或enp0s3,记下它已有的第一个IP。接着确认厂商后台已把额外IP分配到这台机器,MAC地址绑定必须关闭,否则后面配置完也ping不通。最后检查SELinux与防火墙,临时关闭做实验:setenforce 0 && systemctl stop firewalld,通了再慢慢加规则,别一上来就被拦截劝退。
方法一:老牌ifcfg-xxx,稳到离谱

进目录/etc/sysconfig/network-scripts/,原网卡叫ifcfg-eth0,那就再建两个文件:ifcfg-eth0:0、ifcfg-eth0:1。内容只改三处:DEVICE=eth0:0、IPADDR=新IP、NAME=eth0:0,其余照抄原文件。保存后systemctl restart network,不到三秒,ip addr就能看见新增IP。想永久生效?把ONBOOT=yes写进去,重启机器依旧在线。老派做法,但兼容性100%,哪怕CentOS 6古董机也认。
方法二:ip命令,热插拔不用重启
临时测试最方便:ip addr add 203.0.113.7/24 dev eth0 label eth0:web,立即生效,对外提供Web服务毫无压力。删也简单,把add换成del即可。缺点:机器重启就丢。想持久化,把这条命令写进/etc/rc.d/rc.local,再给rc.local加执行权限,等于开机自启。适合经常换IP的灵活场景,比如灰度发布。
方法三:nmcli,新手也能一次敲对
CentOS自带NetworkManager,图形党别急着关。一条命令搞定:nmcli connection modify 'System eth0' +ipv4.addresses 203.0.113.8/24,再nmcli connection up 'System eth0',秒级生效。好处是配置写进NM数据库,不怕重启。坏处?老运维嫌它啰嗦,但新人复制粘贴就能跑,真香。
验证:别让配置躺在那里装死

本机ping -I 203.0.113.7 8.8.8.8,能通说明协议栈已认。再从外部ping新增IP,不通就查三层:云厂商安全组、本机iptables、路由表。用tcpdump -i eth0 host 203.0.113.7抓包,一眼看出包卡在哪段。很多“配置失败”其实是安全组没放行,别冤枉了系统。
高级玩法:一个IP对应一个Nginx虚拟主机
多IP别只用来显摆,绑定站点才是生产力。Nginx里写listen 203.0.113.7:80;,再配另一份配置listen 203.0.113.8:80;,各站各日志,SEO独立权重,搜索引擎挑不出毛病。SSL证书也能分开申请,互不干扰。一台乞丐版云主机瞬间化身“多节点”,钱包毫无痛感。
常见翻车点与急救包
1. 子网掩码写错,/24写成/32,结果同段IP ping不通——检查PREFIX或NETMASK。
2. 复制配置文件时把UUID也抄过去,系统识别冲突——删除UUID那一行,让系统重新生成。
3. NetworkManager与network服务同时开,打架——二选一,关NM用传统脚本,或全用nmcli。
4. 云厂商绑定MAC,换IP后网关ARP不更新——提工单让后台刷新,别自己折腾半天。
一键回滚:后悔药随时吃
改错配置导致SSH失联?云控制台用VNC登录,把新增配置文件删光,重启网络服务即可恢复。提前备份原ifcfg-eth0:cp ifcfg-eth0 ifcfg-eth0.bak,有备无患。线上环境建议先在测试机玩熟,再上生产,别拿老板的业务练手。
单网卡多IP就是一层窗户纸
整篇看下来,你会发现CentOS单网卡绑定多IP没有黑科技,只是系统把“一张网卡”抽象成“可挂多个地址的接口”。选ifcfg-xxx最稳,ip命令最快,nmcli最友好。根据场景挑一个,复制粘贴就能跑。省下的网卡钱拿去喝奶茶,不香吗?
