两台服务器怎么设置虚拟一个IP地址,具体步骤是什么?

两台服务器虚拟一个IP的核心答案是:通过Keepalived结合VRRP协议,在两台服务器上配置同一个虚拟IP(VIP),由VRRP协议决定哪台服务器持有该VIP并对外提供服务,另一台作为热备实时待命,当主服务器宕机或网络异常时,VIP会自动“漂移”到备用服务器,整个过程对客户端完全透明。

虚拟IP工作的基本原理是什么?

理解虚拟IP之前,先举个直观的例子,传统架构里,一台服务器对应一个IP,用户通过这个IP访问服务,这就好比一家门店只有一个门牌号,一旦门店关门,客户就找不到你了。

如何查找游戏服务器ip地址——奇游联机
加载中
如何查找游戏服务器ip地址——奇游联机

虚拟IP(VIP)则不同,它不是绑定在物理网卡上,而是由软件在两台服务器之间“协商”出来的一个逻辑IP,两台服务器对外宣称“我们用同一个IP”,但同一时刻只有一台真正持有它,这个机制依赖两个核心协议:VRRP和心跳检测。

VRRP(虚拟路由冗余协议)是虚拟IP技术的基石,它允许一组服务器组成一个虚拟路由器,共享同一个IP地址,组内会选举出一个Master(主节点)和若干Backup(备用节点),Master负责接收VIP的流量,Backup则安静地等待,行业共识认为,VRRP协议的选举机制成熟可靠,在局域网环境中能确保VIP在毫秒级完成切换。

心跳检测是判断主服务器“死活”的依据,Keepalived会每隔一定时间(默认1秒)发送一次VRRP通告报文,如果备用服务器连续3次没收到主服务器的通告,就会立刻进入Master状态,抢占VIP,这个周期通常被称为“抢占延迟”,会直接影响到故障切换的速度。

对比一下单IP和虚拟IP的差异会更好理解:

维度 单IP部署 虚拟IP部署
故障恢复时间 需要人工干预,等待时间较长 自动切换,一般在几秒以内
维护成本 升级或重启时需停机 主备轮流维护,业务不中断
风险等级 单点故障风险较高 具备冗余能力,可靠性明显提升

现在清楚了,虚拟IP的本质是一套“自动故障转移”机制。

怎么用Keepalived在两台服务器上设置虚拟IP?

这是最常见的实施路径,这里以两台CentOS 7/8服务器为例,假设它们的IP分别为192.168.1.10和192.168.1.20,需要虚拟出一个192.168.1.100的VIP,整个操作分为三步:安装、配置、验证。

安装Keepalived软件包

在两台服务器上都执行相同的安装命令:

两台服务器怎么设置虚拟一个IP地址,具体步骤是什么?

yum install -y keepalived

安装完成后,使用keepalived --version确认版本号,接下来编辑主配置文件/etc/keepalived/keepalived.conf,这个文件控制着虚拟IP的一切行为。

配置主服务器的Keepalived

主服务器的配置文件如下(重点关注state和priority两个参数):

global_defs {
   router_id LB-MASTER   # 服务器唯一标识,主备不能相同
}
vrrp_instance VI_1 {
    state MASTER                  # 主服务器标记为MASTER
    interface eth0                # 承载VIP的物理网卡
    virtual_router_id 51          # 虚拟路由ID,主备必须一致
    priority 100                  # 优先级,主服务器通常设为100
    advert_int 1                  # 心跳通告间隔(秒)
    authentication {
        auth_type PASS
        auth_pass 1234            # 认证密码,主备保持一致
    }
    virtual_ipaddress {
        192.168.1.100/24 dev eth0 # 虚拟IP及子网掩码
    }
}

配置备用服务器的Keepalived

备用服务器除router_id、state和priority外,其余保持相同:

global_defs {
   router_id LB-BACKUP   # 与主服务器不同的标识
}
vrrp_instance VI_1 {
    state BACKUP                  # 备用服务器标记为BACKUP
    interface eth0
    virtual_router_id 51
    priority 90                   # 备用服务器优先级更低
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1234
    }
    virtual_ipaddress {
        192.168.1.100/24 dev eth0
    }
}

配置完成后,在两台服务器上分别执行:

systemctl enable keepalived
systemctl start keepalived

验证虚拟IP是否生效和切换

在主服务器上执行ip addr show eth0,会看到VIP已经出现在网卡上,此时用命令测试:

ping 192.168.1.100

能正常ping通,接着模拟故障,执行systemctl stop keepalived关闭主服务器的Keepalived服务,等待数秒后,在备用服务器上执行ip addr show,你就会看到192.168.1.100已经“漂移”到了备用服务器上,同时ping测试仍然保持正常。

这个验证过程证明,虚拟IP机制已经自动接管了故障。

如何配置Nginx健康检查避免异常切换?

默认情况下Keepalived只检测服务器是否宕机或网络是否断开,但如果Nginx进程还活着、端口却已无响应,就会出现“假死”状态,在这种情况下,Keepalived依然认为主服务器健康,不会触发切换,服务实则已经中断。

两台服务器怎么设置虚拟一个IP地址,具体步骤是什么?

业内专家指出,针对这种情况需要额外配置健康检查脚本,定期探测Nginx的实际服务状态,具体做法是在配置文件中添加脚本定义:

vrrp_script chk_nginx {
    script "/etc/keepalived/check_nginx.sh"
    interval 2          # 每2秒执行一次
    weight -20          # 检查失败时,优先级降低20
}

然后在vrrp_instance块中引用这个脚本:

vrrp_instance VI_1 {
    ...
    track_script {
        chk_nginx
    }
}

对应的/etc/keepalived/check_nginx.sh

#!/bin/bash
if [ "$(ps -ef | grep nginx | grep -v grep | wc -l)" -eq 0 ]; then
    exit 1
fi

给脚本赋予执行权限:chmod +x /etc/keepalived/check_nginx.sh,现在当Nginx进程异常退出时,脚本返回失败,当前服务器的优先级自动降低,备用服务器就会接管VIP,避免了服务中断。

两台服务器做虚拟IP一般用什么方案?

Keepalived是主流选择,但根据业务场景不同,还有其他常用方案,选型时可根据实际需求对比:

方案 实现方式 适用场景
Keepalived + VRRP Linux平台经典方案 Web服务、数据库、负载均衡器高可用
HAProxy + Keepalived 负载均衡结合VIP 大型Web集群入口层高可用
Corosync + Pacemaker 集群资源管理器 需要管理多个VIP或服务的高级场景
Windows故障转移集群 微软原生方案 Windows Server环境下的SQL Server等应用

对于绝大多数中小业务场景,Keepalived方案是成本最低、维护最简单、社区文档最丰富的选择,如果只是两台服务器做基础高可用,无需引入过于复杂的集群架构,毕竟Keepalived和Nginx搭配使用,是当前比较成熟的组合方式,涉及两台服务器如何设置虚拟IP的疑问,多数情况下都是通过这套组合来解决的。

常见故障排查和维护建议

虚拟IP的部署并不复杂,但运维中的一些细节值得注意,整理几个容易踩坑的点:

  • 防火墙拦截:Keepalived使用VRRP组播地址224.0.0.18和协议号112,如果云服务器安全组或本地iptables把这个协议拦了,就会一直出现主备抢占的奇怪现象,需要放行VRRP协议。
  • 网卡名称不一致:配置文件中interface

    两台服务器怎么设置虚拟一个IP地址,具体步骤是什么?

    参数必须与服务器实际网卡名一致,如果一台叫eth0、另一台叫ens33,VIP永远无法正常漂移。

  • 云环境限制:简米云、酷番云等公有云厂商默认不支持组播,直接使用Keepalived会报错,通常要改用云厂商自研的高可用IP方案,或者在VPC中配置组播白名单。
  • 脑裂问题:两台服务器同时持有VIP,称为脑裂,对业务影响较大,排查思路是优先检查心跳网络是否连通,建议为心跳使用独立的物理网卡或内网专线。

从维护角度来看,定期检查主备状态是基础动作,执行systemctl status keepalived能查看运行状态,tail -f /var/log/messages能观察VRRP切换日志,日志中出现“Entering MASTER STATE”说明当前服务器已成为主节点。

全方位解读两台服务器设置虚拟IP的细节

两台服务器能不能只用一个业务IP对外提供服务?答案是确定的,虚拟IP让运维团队在日常工作中获得了极大自由度,比如需要升级Nginx版本时,只需在主备服务器之间手动切换VIP,再对原主服务器做维护,业务全程不停顿,涉及到MySQL数据库高可用,也可以用虚拟IP挂载在VIP后面的方式保持连接稳定,不用担心客户端频繁报错,切换发生在网络层,应用层无感知。

一台服务器的成本与故障时的业务损失相比,多数情况下是划算的,两台服务器做冗余意味着在硬件故障、系统崩溃、网络中断等意外状态下,备用节点能在几秒内接管流量。

两台服务器设置虚拟IP常见问题

Keepalived部署后两台服务器频繁抢占VIP是什么原因?

优先检查两台服务器的priority值是否设置相同,如果相同会导致抢占竞争,其次确认advert_int心跳间隔是否一致,最后排查防火墙是否放行了VRRP协议,这是最容易被忽略的原因。

虚拟IP能否跨网段进行漂移?

理论上不能直接实现,VRRP协议设计之初是针对同一二层网络的设备进行协商,如果两台服务器部署在不同网段,需要借助VXLAN等隧道技术或者使用云厂商提供的跨可用区高可用VIP能力,才能实现类似效果。

两台服务器之间的心跳断了但业务正常,VIP会怎样切换?

心跳中断后,备用服务器失去主服务器的通告,会认为主服务器故障从而抢占VIP,导致两台服务器同时持有同一IP,即脑裂状态,为避免这种问题,生产环境建议配置独立的双心跳线路,并引入fencing机制,在检测到脑裂时强制关闭异常节点的网络端口。

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

赞 (0)
戴尔服务器管理IP密码忘了怎么办,如何重置密码?
上一篇 2026年8月27日 01:21
VS2017做好的工程怎么上传到服务器,有哪些方法?
下一篇 2026年8月27日 01:23

相关推荐

  • 怎么看云服务器JDK是否装好,用什么命令验证?

    判断云服务器JDK是否安装成功,只需要在终端窗口执行java -version和javac -version两条命令,若均能正常输出版本号信息,说明安装已完成,但要确认真正可用,还得看环境变量是否生效,尤其是配置了多个版本JDK的时候,光有版本号远远不够,最直接的检查指令:一行命令看清JDK真相坐在电脑前登录你……

    2026年10月4日
    000
  • 政务系统国产化替代如何起步,迁移步骤有哪些?

    政务系统国产化替代不是一步到位的推倒重来,而是从非核心业务切入、按“评估-适配-试点-迁移”四步走的渐进过程,起步阶段的关键是摸清家底和选择合适的小场景试水,政务系统国产化替代的起步思路:先摸清三个底牌再做规划很多单位一听到国产化替代就觉得要大动干戈,其实恰恰相反,起步阶段最忌讳的就是拍脑袋上全套,结果卡在兼容……

    2026年9月4日
    700
  • mc服务器如何设置单人跳过夜晚,我的世界睡觉指令怎么用?

    在Java版1.17及以上的服务器里,把 /gamerule playersSleepingPercentage 0 输入控制台或OP聊天栏,任意一名玩家上床就能跳过夜晚,版本不对或需要投票的服,再走插件、数据包或附加包路线,我的世界服务器怎么设置单人睡觉:先判断服务端类型很多人一上来就找插件,其实Java版新……

    2026年9月19日
    400
  • ai与我们的生活有哪些改变?人工智能对日常生活的影响

    人工智能技术已不再仅仅是科幻电影中的虚构情节或实验室里的高深算法,它正以惊人的速度渗透进我们日常的每一个角落,成为重塑现代社会运作模式的核心驱动力,AI与我们的生活已然形成了密不可分的共生关系,这种关系不仅体现在效率的指数级提升,更在于它从根本上改变了我们解决复杂问题、管理健康以及获取知识的方式, 接受并适应这……

    2026年3月9日
    11700
  • ZoroCloud双ISP节点支持TikTok吗?美国英国云服务器推荐

    ZoroCloud美国英国云服务器上线原生双ISP节点,凭借CN2、9929、CMIN2多线路优势,成为TikTok运营及跨境应用的高性价比首选方案,在跨境互联网业务中,网络延迟和IP质量往往是决定生死的关键因素,对于从事TikTok海外短视频、直播带货或独立站运营的用户来说,普通的云服务器节点常常因为线路拥堵……

    2026年7月4日
    4100
  • 国庆去美西SJC怎么买票最便宜?美国机票折扣信息

    国庆期间前往圣何塞(SJC)旅行,选择KuaiCheDao快車道不仅能享受全线69折的特惠,更能通过提前预订锁定高性价比的用车服务,避免节假日车辆短缺和价格飙升的风险,美西圣何塞出行痛点与69折优势解析为什么国庆去SJC要提前规划交通?圣何塞作为硅谷的核心城市,拥有独特的地理和交通特征,这里不像旧金山那样拥有密……

    2026年6月18日
    2400
  • Excel设置列公式怎么操作?如何批量填充单元格

    在Excel中设置列公式的核心方法是选中目标单元格输入等号开头公式后回车,利用绝对引用锁定特定单元格,并通过拖拽或双击填充柄快速应用到整列,很多职场人在面对成千上万行数据时,最头疼的不是数据本身,而是如何高效地让Excel自动计算,手动输入公式不仅效率低下,还极易出错,掌握正确的列公式设置技巧,能让数据处理速度……

    2026年7月9日
    17700
  • h3c服务器防火墙怎么关闭,关闭步骤有哪些?

    H3C服务器防火墙的关闭方法取决于设备型号与运行环境,绝大多数情况下通过Web管理界面或命令行(CLI)两种途径即可完成,操作前务必确认业务影响并备份配置,H3C服务器防火墙关闭前的必要判断许多运维人员遇到业务端口不通、数据包被丢弃或远程连接异常时,第一反应就是“先关防火墙试试”,这种思路在测试环境可以理解,但……

    2026年10月12日
    200
  • 广州税控盘服务器地址是什么?广州税控盘服务器地址怎么填写

    2026年广州地区税控盘/税务UKey的云端服务器地址统一为:skp.kdzf.com(端口443/7001),金税盘服务器地址为:kdsw.szhtxx.com,具体参数需根据开票软件版本自动匹配或手动配置,2026年广州税控盘服务器地址核心配置解析主流税控设备服务器参数对照在全面数字化的电子发票推进背景下……

    2026年4月29日
    6000
  • 我的世界服务器里怎么做32k附魔,有什么指令?

    在Minecraft服务器中制作32k武器,核心方法是拥有OP权限后使用/give指令配合NBT标签,或通过EssentialsX等插件快速生成附魔等级32767的装备, 32k指附魔等级达到32767,源于NBT标签中short类型最大值,常见于PVP小游戏服或创造模式测试,我的世界服务器32k怎么做?指令与……

    2026年8月27日
    1300

发表回复

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