Linux如何配置VIP,Keepalived高可用集群怎么搭建?

Linux 配置 VIP (Virtual IP) 指南

VIP (Virtual IP) 是一种不绑定在特定物理网卡上的 IP 地址,通常用于实现高可用性 (High Availability)负载均衡,当主服务器发生故障时,VIP 可以快速漂移到备用服务器,确保服务不中断。

配置方法一:手动临时配置 (快速测试)

这种方法适用于临时测试,重启后配置会丢失。

Linux系统命令行1分钟搞定固定ip设置
加载中
Linux系统命令行1分钟搞定固定ip设置
  • 添加 VIP 命令
    使用 ip addr 命令将 VIP 绑定到现有网卡上(假设网卡名为 eth0,VIP 为 168.1.100)。
    sudo ip addr add 192.168.1.100/24 dev eth0

  • 删除 VIP 命令
    sudo ip addr del 192.168.1.100/24 dev eth0

  • 验证配置
    ip addr show eth0


配置方法二:使用 Keepalived 实现自动漂移 (生产环境推荐)

Keepalived 是最常用的 VIP 管理工具,基于 VRRP (Virtual Router Redundancy Protocol) 协议,能够实现主备自动切换。

Linux如何配置VIP,Keepalived高可用集群怎么搭建?

安装 Keepalived

  • CentOS/RHEL: sudo yum install keepalived -y
  • Ubuntu/Debian: sudo apt-get install keepalived -y

配置主节点 (Master)

编辑配置文件 /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {
    state MASTER           # 角色为 MASTER
    interface eth0         # 绑定网卡
    virtual_router_id 51   # 实例 ID,主备必须一致
    priority 100           # 优先级,数值越大优先级越高
    advert_int 1           # 检查间隔(秒)
    authentication {
        auth_type PASS
        auth_pass 1111     # 认证密码,主备必须一致
    }
    virtual_ipaddress {
        192.168.1.100      # 要配置的 VIP 地址
    }
}

配置备节点 (Backup)

编辑配置文件 /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {
    state BACKUP           # 

Linux如何配置VIP,Keepalived高可用集群怎么搭建?

角色为 BACKUP interface eth0 # 绑定网卡 virtual_router_id 51 # 实例 ID,必须与主节点一致 priority 90 # 优先级,必须低于主节点 advert_int 1 # 检查间隔 authentication { auth_type PASS auth_pass 1111 # 认证密码,必须与主节点一致 } virtual_ipaddress { 192.168.1.100 # 要配置的 VIP 地址 } }

启动并设置开机自启

在两台机器上分别执行:

  • sudo systemctl start keepalived
  • sudo systemctl enable keepalived

验证与测试

  • 检查 VIP 绑定情况
    在 Master 节点执行 ip addr,应能看到 168.1.100,在 Backup 节点执行则看不到。

  • 模拟故障切换

    1. 在 Master 节点停止服务:sudo systemctl stop keepalived
    2. 在 Backup 节点执行 ip addr,VIP 应自动漂移到 Backup 节点。
    3. Linux如何配置VIP,Keepalived高可用集群怎么搭建?

    4. 重新启动 Master 节点服务,VIP 将自动回漂到 Master 节点(因为其优先级更高)。

关键注意事项

  • 防火墙设置:Keepalived 使用 VRRP 协议(组播),如果开启了防火墙,必须允许 VRRP 流量,否则会导致脑裂(两台机器同时持有 VIP)。
    • sudo ufw allow in on eth0 to 224.0.0.18 (Ubuntu)
    • sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p vrrp -j ACCEPT (CentOS)
  • 网卡名称:请务必确认 interface 参数与实际网卡名称(如 ens33, eth0)一致。
  • 优先级:Master 的 priority 必须高于 Backup,否则无法实现主备逻辑。
  • 脑裂风险:若主备之间网络中断,两台机器都会认为对方宕机从而同时抢占 VIP,导致服务异常,建议配置健康检查脚本或确保网络链路稳定。

首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/492594.html

(0)
Linux系统怎么做笔记,Linux好用的笔记软件有哪些?
上一篇 2026年7月14日 00:00
AIoT物联网平台是什么?AIoT物联网平台哪个好用
下一篇 2026年3月20日 17:40

相关推荐

  • Linux如何安装pthreads,pthread怎么用?

    Linux pthreads无需独立安装,因为它集成在 GNU C Library (glibc) 中,开发者只需安装基础构建工具包(如 build-essential 或 glibc-devel)并在编译命令末尾添加 -lpthread 参数即可调用,pthreads 的本质与运行机制在深入操作之前,必须理清……

    2026年7月13日
    100
  • linux进程转换是什么?linux进程状态转换详解

    Linux进程转换的核心在于通过系统调用(如fork、exec、clone)改变进程的状态与资源归属,实现从创建、执行到销毁的完整生命周期管理,在Linux操作系统中,进程并非静止的代码块,而是动态运行的实体,理解进程转换,就是理解操作系统如何调度资源、隔离环境以及保证系统稳定,这不仅是系统管理员的必修课,也是……

    2026年7月5日
    10000
  • Linux如何安装nslookup,nslookup怎么用?

    在 Linux 系统中,nslookup 工具通常包含在 bind-utils(CentOS/RHEL)或 dnsutils(Ubuntu/Debian)软件包中,通过相应的包管理器(如 yum 或 apt)即可快速完成安装,Linux 环境下 nslookup 的安装路径与逻辑nslookup 并非一个独立的……

    2026年7月13日
    1400
  • linux统计总数怎么操作?Linux下如何统计文件数量

    在Linux系统中统计文件总数,最高效且通用的命令是结合使用find与wc,具体指令为find . -type f | wc -l,该命令能准确递归统计当前目录下所有普通文件的数量,日常运维或开发工作中,我们经常需要快速了解一个项目目录的规模,或者排查某个日志文件夹是否异常膨胀,面对成千上万个文件,手动数显然不……

    2026年7月6日
    19100
  • Linux Apache JK配置出错怎么办?apache jk mod_jk配置详解

    在 Linux 环境下,Apache 配合 JK (mod_jk) 是一种经典的架构,主要用于将 Apache 作为前端 Web 服务器(处理静态资源、SSL 终止等),并将动态请求转发给后端的 Tomcat 或 Jetty 等应用服务器,mod_jk 是 Apache 的一个模块,它使用 AJP (Apach……

    2026年7月10日
    5800
  • cpuburn for linux怎么用?linux cpu压力测试工具推荐

    CPUBurn for Linux 是一款轻量级、基于汇编指令的 CPU 压力测试工具,通过执行特定的浮点运算指令集来快速提升 CPU 温度,是验证散热系统效能和系统稳定性的首选方案,在 Linux 服务器运维或硬件发烧友的圈子里,验证散热方案是否达标往往不需要复杂的商业软件,CPUBurn 凭借其极低的资源占……

    2026年7月9日
    7000
  • ThinkPHP在Linux上怎么配置,Linux部署ThinkPHP需要什么环境?

    在Linux环境下部署ThinkPHP,核心在于构建稳定的LEMP(Linux, Nginx, MySQL, PHP)环境,并确保Web服务器的伪静态配置与项目目录的读写权限正确,Linux环境下ThinkPHP部署流程与环境搭建部署ThinkPHP框架并非简单的文件上传,而是一个涉及操作系统、Web服务器、数……

    2026年7月13日
    100
  • Linux如何安装JDBC驱动,安装JDBC驱动的具体步骤?

    Linux安装JDBC本质上是将对应数据库的JDBC驱动JAR包放置在应用程序的类路径(Classpath)中,并通过配置环境变量或启动参数使JVM能够加载该驱动,Linux环境下安装MySQL JDBC驱动步骤在Linux服务器上部署MySQL JDBC驱动是企业级开发最常见的场景,由于Linux系统对文件路……

    2026年7月13日
    13900
  • Linux系统如何联网?Linux配置网络连接教程

    Linux系统联网的核心在于正确配置网络接口IP地址、子网掩码及网关,并通过DNS服务器实现域名解析,通常使用nmcli或netplan命令即可完成,在服务器运维或开发环境中,Linux系统的网络连接稳定性直接决定了业务连续性,许多初学者面对黑底白字的终端界面时,往往因为找不到图形化设置入口而感到困惑,现代Li……

    2026年7月7日
    11600
  • Linux下如何安装Opera浏览器?Linux安装Opera详细教程

    在 Linux 系统上安装 Opera 浏览器通常非常简单,因为 Opera 官方提供了针对主流发行版的原生安装包,以下是针对不同 Linux 发行版的具体安装步骤:确认你的 Linux 发行版打开终端(Terminal),确认你使用的发行版:lsb_release -a# 或者cat /etc/os-rele……

    2026年7月10日
    18800

发表回复

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