如果你的E5服务器需要搭建虚拟IP,最直接的办法是用Linux自带的IP别名功能或Keepalived实现VIP漂移,无需额外购买硬件,操作半小时内就能搞定。
先搞清楚:你的E5服务器要哪种虚拟IP
很多人一听“虚拟IP”就以为是一个东西,实际上E5服务器(尤其是二手志强平台)常见的需求分三种,搞混了会走弯路:
- 单机多IP:一块网卡绑定多个内网或公网IP,常用于站群、爬虫、多业务隔离
- 高可用VIP:两台E5服务器共用一个虚拟IP,主挂了备机自动接管,这是Keepalived的典型玩法
- NAT端口映射:严格说不算虚拟IP,但很多人搜“虚拟IP”实际是想做端口转发
行业共识认为,90%以上问“怎么搭建虚拟IP”的人,其实只需要第一种IP别名,也就是给eth0网卡叠加IP,下面我按这个主线讲,顺带把高可用VIP也带出来。
E5服务器虚拟IP搭建前的准备工作
动手之前,先确认三件事,否则容易白忙活:
- 系统版本:CentOS 7/8、Ubuntu 20.04/22.04、Debian 11/12都支持,命令略有差异,本文以CentOS系为主,Ubuntu用户把
ifcfg-eth0换成netplan即可 - IP地址规划:虚拟IP必须和物理IP在同一网段,网关要一致,否则配置完不通
- 网络权限:机房或IDC后台是否允许你自定义IP?有些IDC做了MAC绑定,乱加IP会被封
实操步骤(CentOS 7/8):
- 用
ip addr查看当前网卡名,一般是eth0或ens3 - 复制现有配置文件:
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:1 - 编辑新文件,改三处:
、DEVICE="eth0:1"
IPADDR="你的虚拟IP"、删掉UUID那行 - 重启网络:
systemctl restart network,或者用ifup eth0:1单独拉起 - 验证:
ip addr show eth0:1,能看到虚拟IP就成功了
Ubuntu 22.04的写法更简洁,在/etc/netplan/01-netcfg.yaml里给同一个网卡加第二个address:
network:
version: 2
ethernets:
eth0:
addresses:
- 192.168.1.100/24
- 192.168.1.101/24
保存后执行netplan apply,搞定。
E5服务器虚拟IP的高可用方案:Keepalived实战
如果你的需求是“两台E5互相备份”,那就要上Keepalived了,这玩意儿原理不复杂:两台服务器抢一个VIP,谁抢到谁干活,另一台默默盯着,主挂了自己上。
安装+配置流程:
- 两台机器都装:
yum install keepalived -y - 主服务器配置
/etc/keepalived/keepalived.conf,核心就三块:
vrrp_instance VI_1 {
state MASTER # 主服务器
interface eth0
virtual_router_id 51
priority 100 # 优先级,主比备高
advert_int 1
virtual_ipaddress {
192.168.1.200/24 # 这就是虚拟IP
}
}
- 备服务器配置几乎一样,把
state改成BACKUP,priority改成90 - 两边都启动:
systemctl start keepalived && systemctl enable keepalived
验证方法:在主服务器上ip addr show eth0能看到VIP,然后systemctl stop keepalived模拟宕机,等一两秒,去备机上查,VIP已经飘过来了。
这里有个坑必须提醒:Keepalived的VIP漂移依赖组播,IDC如果禁了组播(很多机房会禁),你得改用单播模式,在配置里加
unicast_peer指定对端IP,否则两台机器永远抢不到同一个VIP,白折腾。
E5服务器多IP搭建的常见场景与避坑指南
站群场景:IP别名的正确打开方式
做站群的E5服务器,通常一台机器要绑十几个甚至几十个IP,这时候别一个个手动建eth0:1、eth0:2,效率太低,直接写个循环脚本:
for i in $(seq 2 20); do
ip addr add 192.168.1.$i/24 dev eth0
done
这条命令瞬间给网卡加了19个虚拟IP,重启后失效,要永久生效,就写成ifcfg-eth0:range文件,或者干脆塞进rc.local。
爬虫场景:换IP的正确姿势
爬虫程序需要的虚拟IP,本质上就是上面说的别名IP,但注意,很多爬虫框架(比如Scrapy)默认绑定的还是主IP,你得让程序显式指定源IP地址,Python的requests库可以这样:
import requests
proxies = {'http': 'http://192.168.1.101:8080'}
requests.get(url, proxies=proxies)
避坑清单(重要)
- 别乱设IP:虚拟IP的网关、子网掩码必须和主IP一致,否则数据包出不去
- 注意ARP问题:同一块网卡绑多个IP,某些交换机可能会ARP泛洪告警,但一般家用级或普通IDC环境没事
- 别搞错网卡别名数量:老内核有255个上限,新内核基本没限制,但太多IP会影响路由表性能
E5服务器虚拟IP和物理IP怎么选:价格与性能对比
很多人纠结“我到底要不要上虚拟IP”,这里直接给你对比表:
| 对比项 | 虚拟IP(别名) | 物理IP(独立网卡) |
|---|---|---|
| 成本 | 免费,已有服务器就能配 | 需要额外网卡或租用IP资源 |
| 性能 | 共享网卡带宽,多IP共用一个队列 | 独享队列,高并发下延迟更低 |
| 适用场景 | 站群、测试环境、轻量业务 | 高流量生产环境、视频推流 |
| 稳定性 | 受宿主机网络栈影响 | 各走各的,互不干扰 |
对于绝大多数个人站长和中小团队,E5服务器的虚拟IP完全够用,只有当你跑的是高并发业务,或者需要给不同客户做物理隔离时,才考虑上独立IP。
E5服务器虚拟IP搭建常见问题解答
Q1:E5服务器虚拟IP配置完ping不通怎么办?
先确认虚拟IP和主IP在同一网段,然后检查防火墙:firewall-cmd --list-all看有没有挡掉,最后看网关,ip route确认默认路由正常,多数情况下是子网掩码或网关写错了,仔细核对一下。
Q2:虚拟IP重启服务器后消失了怎么解决?
你用的是ip addr add临时命令吧?重启肯定丢,永久保存的办法:CentOS写/etc/sysconfig/network-scripts/ifcfg-eth0:1,Ubuntu写/etc/netplan/.yaml,Debian写/etc/network/interfaces,改完记得重启网络服务生效。
Q3:两台E5服务器能同时使用同一个虚拟IP吗?
不能,这正是Keepalived存在的意义,它通过VRRP协议让两台机器竞争同一个VIP,同时只有一台持有,如果你手动在两台机器上配了相同的IP,会造成IP冲突,网络直接瘫痪,想实现高可用就老老实实装Keepalived,别自己乱来。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/758026.html





