两台服务器如何设置漂移IP,什么是漂移IP?

两台服务器设置一个漂移IP,核心方案是部署keepalived软件,借助VRRP协议虚拟出一个浮动IP,这个IP在主备服务器之间自动漂移,对外始终可用。

漂移IP到底解决什么问题

先理解场景,你手上有两台服务器,一台跑业务,一台闲置,业务这台突然宕机了,用户访问的IP不变,但请求自动切到了另一台,这就是漂移IP(也叫浮动IP、VIP)的价值,它不是某个网卡上的固定IP,而是运行在keepalived这样的软件里,由主备服务器共同持有的虚拟地址。

《童虎学习笔记》5分钟用Keepalived搭建MySQL高可用实现虚ip自动漂移
加载中
《童虎学习笔记》5分钟用Keepalived搭建MySQL高可用实现虚ip自动漂移

行业内给的方案其实很统一:keepalived加VRRP协议,据行业共识,90%以上的自建高可用架构都跑在keepalived上,这是Linux生态里最成熟的漂移IP方案,它做的事儿很简单主服务器定时发送心跳包,备服务器收不到心跳,就立刻把VIP抢到自己身上,整个过程控制在1到3秒内。

keepalived vrrp配置漂移ip完整实操

配置漂移IP的核心是写好keepalived.conf文件,下面用的是CentOS系统,Ubuntu同样适用,命令差别不大。

两台服务器都装keepalived

yum install -y keepalived   # CentOS
apt install -y keepalived   # Ubuntu

装完先别急着配置,记住一个原则:配置文件要从主备两侧分别编写,VRRP实例名字和虚拟IP必须完全一致,优先级不能一样。

主服务器配置

主服务器的/etc/keepalived/keepalived.conf这样写:

global_defs {
    router_id LVS_MASTER
}
vrrp_instance VI_1 {
    state MASTER
    interface eth0        # 换成你实际网卡名
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.1.100/24 dev eth0
    }
}

priority是优先级,主服务器给100,备服务器要给低一点的数字,比如90,virtual_router_id在同一个网段内要保持唯一,如果别的keepalived集群用了51,你就得换52、53之类。

备服务器配置

备服务器除了state改成BACKUP,priority改成90,其他完全一致,注意备服务器的state一定写BACKUP,这样即使它先启动也不会抢占VIP,避免脑裂场景下的地址冲突。

启动验证

systemctl enable keepalived
systemctl start keepalived
ip addr show eth0

主服务器上能看到192.168.1.100/24绑定在eth0上,备服务器上这个IP不存在,手动停掉主服务器的keepalived:

两台服务器如何设置漂移IP,什么是漂移IP?

systemctl stop keepalived

然后去备服务器上执行ip addr show eth0,3秒内VIP已经出现在备服务器上,这个漂移过程就完成了。

业务服务要跟着VIP走

VIP切过去了,但你的Nginx、MySQL这些服务不会自动跟着切,需要让keepalived监控业务进程,进程挂了就自动切VIP,在vrrp_instance里加一段:

vrrp_script check_nginx {
    script "/etc/keepalived/check_nginx.sh"
    interval 2
}
vrrp_instance VI_1 {
    track_script {
        check_nginx
    }
}

核心就一行:

#!/bin/bash
if [ $(systemctl is-active nginx) != "active" ]; then
    killall keepalived
fi

两台服务器做热备用什么方案

这里延展一下,两台服务器做热备,不只有keepalived一种方案,按场景选适合自己的。

Nginx加keepalived:最适合Web网关

适合做反向代理、API网关、静态资源服务的高可用,Nginx负责转发流量,keepalived负责IP漂移,具体架构是:两台Nginx服务器,VIP绑定在它们之间,请求先打到VIP,VIP落在哪台,Nginx就从哪台处理。

配置顺序有讲究:先装Nginx并确认业务正常,再配keepalived,很多新手先配keepalived,结果VIP漂过去了Nginx没起来,服务照样不可用,Nginx本身要把监听端口改为0.0.0.0:80,这样才能接收来自VIP的访问。

LVS加keepalived:扛高并发流量

只用两台服务器做LVS,是性价比很高的方案,Keepalived整合了LVS的配置管理,不需要额外装ipvsadm工具,VIP承载入口流量,两台LVS做负载均衡,后端挂真实业务服务器,二三十万并发以内,两台LVS加keepalived的组合足够撑住。

云厂商高可用IP方案:不想运维就交给云平台

酷番云和简米云有HAVIP(高可用虚拟IP)产品。HAVIP的精髓是能绑定到云服务器的主网卡和弹性网卡上,配合云平台的API自动切换,区别在于,自建keepalived得自己写脚本监控业务,云厂商HAVIP在控制台点几下手动绑定就行。

自建和云平台的区别主要在这几个维度:

对比项 keepalived自建 云厂商HAVIP
费用 服务器费用,无额外收费

两台服务器如何设置漂移IP,什么是漂移IP?

免费创建,但占用配额

切换时间1-3秒秒级(通常在1秒内)
维护成本需要自己管理VRRP控制台操作,免运维
适用场景物理机、混合云、IDC机房纯云上环境

这两者还有一个选择标准:自建方案支持跨机房、跨地域,只要二层能通就能跑;HAVIP严格绑定同一可用区和同一VPC,所以混合云架构下的漂移IP,基本都得靠keepalived。

数据库做热备的漂移IP

两台MySQL或两台Redis做主从,也需要漂移IP让应用层无感知切换,MySQL双主模式加keepalived是常见架构,VIP漂移时主从切换脚本跟着执行,把备库提升为新的主库,这个场景要特别关注脑裂问题两台服务器都认为自己是主,都持有VIP,请求就会被打到两个节点上,解决思路是加fencing脚本,检测到对端存活但自己接收不到心跳时,主动关闭自身业务或释放VIP。

漂移IP切换后的验证清单

配置漂移IP不是配完就完事,要反复做演练,以下是完整的验证步骤:

验证VIP地址归属

  • 在主服务器执行ip addr show | grep 192.168.1.100,确认VIP存在
  • 在备服务器执行同样的命令,确认VIP不存在

验证业务可用性

  • 在外部机器执行curl http://192.168.1.100/health,确认业务返回200
  • 持续循环请求VIP地址,同时手动停掉主服务器
while true; do
    curl -s -o /dev/null -w "%{http_code}n" http://192.168.1.100/
    sleep 1
done

循环期间观察输出,最多出现2到3个错误请求,之后恢复200,说明切换和回切都正常。

检查日志确认切换原因

tail -f /var/log/messages | grep Keepalived

日志中会明确记录Entering BACKUP STATE或Entering MASTER STATE,判断切换是否由预期事件触发。

局域网里设置漂移IP注意什么

如果你在两台内网服务器上配漂移IP,有几件事比配置本身更容易踩坑:

网卡名称要一致,一台服务器网卡是ens33,另一台是eth0,keepalived配置里interface写死了,必须分别适配各自的网卡名。

两台服务器如何设置漂移IP,什么是漂移IP?

防火墙要放行VRRP协议,VRRP跑在IP协议号112上,不是TCP也不是UDP,CentOS用firewalld的话:

firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --protocol vrrp -j ACCEPT

这个不放行,两台服务器永远互相发现不了,VIP自然也不会漂移。

交换机端口如果开了端口安全或静态绑定,需要把VIP加入白名单,否则VIP广播出去的ARP包会被交换机直接丢弃,业务机器感知不到漂移。

云服务器漂移ip和高可用组区别

这个问题经常出现在生产环境选型时,云服务器漂移IP是思路上的差异高可用组是云厂商把两台云服务器放在同一个故障域里,底层物理机出问题时自动迁移到健康的物理机上,漂移IP则是把VIP绑定在服务器网卡上,故障时利用VRRP协议把VIP从故障机器切到存活机器上。

这两者并不互斥,生产环境最稳的做法是同时启用高可用组保证物理层面的故障切换,漂移IP保证应用层面的快速切换,双保险。

常见问题解答

漂移IP的切换时间一般多长?

默认配置下,keepalived每1秒发送一次心跳,连续3次未收到即触发切换,整体切换时间在3秒左右,如果业务对中断极其敏感,可以把advert_int调整为0.3秒,切换时间能压缩到1秒内,但对网络质量和CPU占用要求会提高。

主备服务器配置漂移IP后,VIP会出现在备机上吗?

正常情况下不会,备机的keepalived会监听主机的组播心跳,心跳正常时不进入MASTER状态,VIP只绑定在主服务器上,只有主服务器的keepalived挂掉或者链路中断,备机才会接管VIP。

一台物理服务器需要配置几张网卡接漂移IP?

最少一张网卡就够了,VIP绑定在物理网卡上做二层广播,同网段内生效,如果你需要VIP跨网段访问别的子网,需要交换机配置对应的ARP代理,并且业务服务器要明确路由指向,多网卡场景可以绑定在虚拟网桥或独立管理网卡上,但至少要保证VIP所在的网卡和业务通信链路是通的。

两台服务器配一个漂移IP,本质上就是用keepalived的VRRP协议模拟出一个不会宕机的虚拟网络入口,自建用keepalived,云上用HAVIP,核心都是让IP自身具备故障转移能力,把握好主备优先级、防火墙放行、业务监测这三个关键点,一个稳定的漂移IP架构就能落地。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/603556.html

赞 (0)
杀毒软件服务器有哪些品牌推荐,哪个最可靠?
上一篇 2026年8月27日 13:56
电信备ntp服务器连接异常怎么办,如何快速修复?
下一篇 2026年8月27日 14:06

相关推荐

  • 批量代付与实时扣款如何切分算力,预算怎么分配

    批量代付与实时扣款的算力切分没有万能比例,成熟做法是按“峰谷特征”区分资源池,再用调度层做动态补偿,核心是让两类业务各自拥有独立预算上限,而不是在一个池子里抢资源,先看懂两类业务的算力脾气批量代付和实时扣款放在一起规划算力,前提是认清它们对计算资源的消耗方式完全不一样,很多团队上来就谈“几比几拆分”,实际是跳过……

    2026年9月7日
    200
  • 为何要收藏9个JS代码高亮脚本?哪些JS代码高亮库最好用

    果断收藏这9个JavaScript代码高亮脚本,能显著提升前端开发效率与文档可读性,其中Prism.js和Highlight.js是兼顾性能与易用性的首选方案,在2026年的Web开发环境中,代码展示早已超越了简单的“变色”功能,它直接关系到技术博客的加载速度、SEO优化效果以及读者的阅读体验,面对琳琅满目的库……

    2026年5月26日
    5900
  • 贵阳物理机租用哪家速度更快更稳定,怎么选?

    贵阳物理机租用,速度和稳定性综合表现最突出的当属贵州电信机房和本地头部IDC,同时华西南区域的主流云厂商物理机也值得考虑,贵阳物理机租用哪家快?速度的关键决定因素速度不是单靠配置堆出来的,网络延迟、带宽冗余与机房物理位置共同决定了业务响应快不快,在贵阳本地,骨干网接入质量直接拉大不同服务商之间的差距,延迟与丢包……

    2026年7月26日
    1100
  • AIoT物联网格局如何?AIoT物联网格局现状分析

    AIoT(人工智能物联网)的本质是人工智能与物联网的深度融合,其核心结论在于:单纯的连接已不再具备竞争壁垒,智能化处理能力与场景化落地深度才是决定未来市场格局的关键变量,当前产业正经历从“万物互联”向“万物智联”的跨越,在这个阶段,硬件只是载体,数据和算法才是核心资产,能够提供端到端解决方案的企业将在产业链中占……

    2026年3月17日
    14100
  • 多地域CDN缓存分层设计怎么做,CDN缓存策略有哪些?

    多地域CDN缓存分层设计的核心思路,是放弃“一套配置打天下”的旧模式,把边缘节点、区域中心节点、源站三层拆开,各自定义不同的缓存策略和回源路径,让数据在离用户最近的地方完成绝大多数响应,这个思路不是凭空来的,过去十年国内CDN市场从粗放转向精细化,单一缓存策略在跨地域场景下暴露出明显的短板:华东用户访问快、西北……

    2026年9月4日
    000
  • Excel文本怎么实现快速递增,Excel文本自动填充怎么设置?

    Excel文本递增的核心实现方式是通过“填充柄”拖拽、使用TEXT函数配合ROW函数,或利用SEQUENCE函数结合文本连接符,快速生成带有特定前缀且数字连续增长的序列,Excel文本递增的基础操作逻辑在处理企业级数据时,文本递增并非简单的数字增加,而是“文本前缀+数字序列”的组合,这种需求在生成订单号、员工工……

    2026年7月13日
    18400
  • 三星服务器内存条如何辨认真假,鉴别方法有哪些?

    三星服务器内存条怎么辨认真假?答案是:不要只看外观,必须拆机后核对颗粒编码、PCB板面和上机实测三关,任何一关对不上就直接退货,三星服务器内存条怎么辨认真假,先看这三个硬指标市面上的三星服务器内存条来源复杂,有正规代理行货、拆机原装条、翻新条、回收颗粒重打条,甚至还有打磨后冒充高容量的假条,行业共识认为,鉴别核……

    程序编程 2026年9月5日
    1800
  • RackNerd美国多IP VPS值得买吗?美国VPS推荐

    RackNerd这款主打多IP的VPS是搭建批量业务或海外营销矩阵的高性价比选择,其1核1.5GB内存搭配3TB大流量和5个默认IPv4地址,年付仅60美元,适合对IP独立性有刚需但预算有限的用户,在云计算市场日益内卷的2026年,单纯比拼CPU主频或内存大小已经无法满足细分场景的需求,对于需要大量独立出口IP……

    2026年6月18日
    2600
  • u8忘了服务器名字登录不上咋办,服务器名怎么找回?

    U8忘记服务器名字导致无法登录时,先别重装软件,多数情况下服务器名就藏在U8安装目录的Login.ini文件或系统管理的数据源配置里,本机单机版可直接用127.0.0.1登录验证,先判断你登录时“服务器名字”具体指什么U8登录界面里那个服务器框,可能指数据库服务器名、应用服务器名,有时还是加密服务器地址,不同部……

    2026年9月20日
    200
  • lol为什么观战服务器数据请求失败怎么办

    当LOL观战服务器数据请求失败时,最直接的原因是客户端与观战服务器之间的连接受阻,通常由网络延迟、游戏版本不一致或服务器临时过载导致,解决方法包括重启客户端、切换网络、修复游戏文件或更换观战节点,lol为什么观战服务器数据请求失败观战功能依赖独立的数据流通道,一旦请求失败,说明这个通道被某种因素阻塞,业内专家指……

    2026年8月19日
    1400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注