目录
-
- 写在前面
-
- 选型说明
-
- [基础设施侧:如何「造」出一个 VIP](#基础设施侧:如何「造」出一个 VIP)
- [接入侧:域名怎么接到 VIP](#接入侧:域名怎么接到 VIP)
- [一、原理:VIP 到底是什么](#一、原理:VIP 到底是什么)
-
- [1.1 先分清两种「IP」](#1.1 先分清两种「IP」)
- [1.2 VIP 不是「神秘协议」,而是一种用法](#1.2 VIP 不是「神秘协议」,而是一种用法)
- [1.3 和「浮动 IP / EIP」别混](#1.3 和「浮动 IP / EIP」别混)
- [二、VIP 有什么用](#二、VIP 有什么用)
-
- [2.1 用处一:高可用入口(机器挂了,地址别换)](#2.1 用处一:高可用入口(机器挂了,地址别换))
- [2.2 用处二:负载均衡入口(一台入口,多台干活)](#2.2 用处二:负载均衡入口(一台入口,多台干活))
- [2.3 用处三:运维与发布更省事](#2.3 用处三:运维与发布更省事)
- [2.4 VIP 解决不了什么](#2.4 VIP 解决不了什么)
- [三、VIP 和域名是什么关系](#三、VIP 和域名是什么关系)
-
- [3.1 分层看:名字层 vs 地址层 vs 机器层](#3.1 分层看:名字层 vs 地址层 vs 机器层)
- [3.2 两种常见挂法](#3.2 两种常见挂法)
- [3.3 为什么生产更爱「域名 → VIP」,而不是「域名 → 某台物理 IP」](#3.3 为什么生产更爱「域名 → VIP」,而不是「域名 → 某台物理 IP」)
- [3.4 一个生活化类比(方便对业务同学解释)](#3.4 一个生活化类比(方便对业务同学解释))
- 四、串起来:一次真实访问长什么样
- 五、对照实验(可选,加深印象)
-
- [5.1 看一个公网域名最终落到什么 IP](#5.1 看一个公网域名最终落到什么 IP)
- [5.2 区分「入口」和「后端」](#5.2 区分「入口」和「后端」)
- [5.3 自建双机时 VIP 长什么样(概念配置,勿直接当生产)](#5.3 自建双机时 VIP 长什么样(概念配置,勿直接当生产))
- 六、生产建议与扩展方向
- 七、一句话总结

比基尼海滩开课啦!🌻
RFC 5798(VRRP 说明):https://datatracker.ietf.org/doc/html/rfc5798
Keepalived 官网:https://www.keepalived.org/
Keepalived GitHub:https://github.com/acassen/keepalived
Linux Virtual Server(LVS):http://www.linuxvirtualserver.org/
阿里云「什么是负载均衡」:https://help.aliyun.com/zh/slb/product-overview/what-is-slb
腾讯云「负载均衡 CLB」:https://cloud.tencent.com/document/product/214
MDN:DNS 概述:https://developer.mozilla.org/zh-CN/docs/Glossary/DNS
写在前面
日常运维、上云、做高可用时,同事常说:「流量打到 VIP」「域名解析到 VIP」「主备切换后 VIP 漂过去了」。
听多了容易把几件事搅在一起:
| 容易混淆的说法 | 它实际更接近什么 |
|---|---|
| VIP | 一组机器对外共用的「虚拟」入口 IP |
| 物理 IP / 真实 IP | 网卡上真正配死在某台机器上的地址 |
| 域名 | 给人记的名字,本身不是 IP |
| DNS | 把域名翻译成某个 IP(常常就是 VIP)的系统 |
一句话记:域名是门牌上的店名,VIP 是店门口统一的街道号;后面真正干活的可能是多台机器,街道号可以在机器之间「挪」。
本文只做概念讲解,不绑定某一家云、某一份源码;读完你应能回答三个问题:
- VIP 和普通 IP 差在哪?
- VIP 主要解决什么问题?
- 域名、DNS、VIP、后端机器各自站在哪一层?
| 组件 | 角色 | 读者需要记住什么 |
|---|---|---|
| 域名 | 人类可读入口 | www.example.com |
| DNS | 名字 → 地址 | 常把域名指到 VIP |
| VIP | 稳定的服务入口 IP | 可漂移 / 可挂在负载均衡上 |
| 后端机器真实 IP | 真正处理请求 | 一般不直接给用户记 |
选型说明
基础设施侧:如何「造」出一个 VIP
自建机房和上云,实现 VIP 的常见路径不同,不必混用同一套话术。
| 方案 | 特点 | 上手难度 | 典型场景 | 本文是否展开 |
|---|---|---|---|---|
| Keepalived + VRRP | 主备争抢同一个 VIP,故障时漂移 | 中 | 自建双机高可用 | 原理重点:是 |
| LVS / IPVS | 内核级四层转发,常与 Keepalived 搭配 | 中高 | 高并发四层入口 | 概念提及:是 |
| 云负载均衡(SLB/CLB/ALB) | 厂商提供入口 VIP,后端挂 ECS | 低 | 上云业务主路径 | 对照说明:是 |
| 仅用单机公网 IP | 简单,无漂移能力 | 很低 | 演示环境 | 对比用:否(不推荐当生产入口) |
接入侧:域名怎么接到 VIP
域名本身不负责高可用;它只负责「名字指向哪里」。
| 方案 | 特点 | 上手难度 | 典型场景 | 本文是否展开 |
|---|---|---|---|---|
| DNS A 记录 → VIP | 域名直接解析到入口 IP | 低 | 自建 VIP / 部分云产品 | 是 |
| DNS CNAME → 厂商域名 | 再由厂商解析到 VIP 集群 | 低 | 云 SLB / CDN 常见 | 是 |
| 客户端写死 IP | 跳过 DNS | 极低 | 临时联调 | 仅提醒风险 |
一、原理:VIP 到底是什么
图 1:物理 IP 绑在某台机器上;VIP 是对外共用的虚拟入口,可在主备之间漂移。

1.1 先分清两种「IP」
| 类型 | 绑在谁身上 | 用户是否直接感知 | 机器挂了会怎样 |
|---|---|---|---|
| 物理 IP(真实 IP) | 某台服务器的某块网卡 | 通常不希望用户长期依赖它 | 这个 IP 跟着机器一起「没了」 |
| VIP(虚拟 IP) | 由软件/云产品声明的逻辑地址 | 常作为对外服务入口 | 可漂移到另一台,或由负载均衡继续承接 |
可以把物理 IP 想成「工位座机号」:人(机器)不在,这个号就打不通。
VIP 更像「总机号」:总机号不变,后面接听的人可以换。
1.2 VIP 不是「神秘协议」,而是一种用法
严格说,VIP 仍然是一个普通的 IPv4/IPv6 地址。特别之处在于谁持有、如何持有:
- 它不永久独占某一台物理机的身份;
- 常由 Keepalived、云负载均衡等组件动态声明「现在我拥有这个地址」;
- 对客户端来说,只需要一直访问这个稳定入口。
自建场景里,常见实现是 VRRP(Virtual Router Redundancy Protocol):多台设备竞争「谁当 Master」,Master 对外宣布自己持有 VIP。Keepalived 是把这类能力工程化落地的典型软件。
云场景里,你在控制台创建负载均衡实例后,厂商会给你一个服务地址(对外常也叫 VIP / 入口 IP)。你不必自己配 VRRP,漂移与健康检查由云产品完成。
1.3 和「浮动 IP / EIP」别混
口头上大家有时都叫「浮动」,但产品语义不同:
| 名称 | 常见含义 |
|---|---|
| VIP | 高可用 / 负载均衡场景下的服务入口虚拟地址 |
| 云厂商弹性公网 IP(EIP) | 可绑定到实例或负载均衡上的公网地址资源 |
| Anycast | 多地宣告同一地址,路由把流量送到「相对近」的节点(CDN/DNS 常见) |
本文说的 VIP,默认指:给业务当稳定入口的那个虚拟服务 IP。
二、VIP 有什么用
图 2:主节点故障时,VIP 漂移到备节点,客户端仍访问同一入口地址。

2.1 用处一:高可用入口(机器挂了,地址别换)
没有 VIP 时:
text
用户 → 服务器 A 的物理 IP
服务器 A 宕机 → 用户必须改 IP,或等人工切流量
有 VIP 时:
text
用户 → VIP(始终这个地址)
主挂 → VIP 漂到备 → 用户无感(或短暂闪断后恢复)
这就是运维口中常说的「VIP 漂移」。对数据库双机、网关双机、自建 LB 主备都很常见。
2.2 用处二:负载均衡入口(一台入口,多台干活)
图 3:云负载均衡对外暴露 VIP,对内把流量分到多台后端。

生产上更常见的是:
text
用户 → VIP(负载均衡入口)
→ 后端机 1 / 2 / 3(真实 IP)
这时 VIP 的价值不只是「能漂移」,还包括:
| 能力 | 说明 |
|---|---|
| 统一入口 | 扩缩容后端时,对外地址尽量不变 |
| 健康检查 | 坏节点摘除,流量只打健康机 |
| 四层/七层转发 | TCP/UDP 或 HTTP/HTTPS 策略由 LB 统一做 |
| 证书与策略收敛 | TLS、限流、访问控制可集中在入口 |
一句话:VIP 把「对外承诺的地址」和「对内可变的机器集合」解耦开了。
2.3 用处三:运维与发布更省事
有了稳定入口后,下面这些事会轻松很多:
- 换机器、滚动升级:先换后端,VIP 不动;
- 灰度:在 LB 上调权重,而不是让所有人改域名配置;
- 排障:先看 VIP 是否可达、健康检查是否绿,再下钻某台真实机;
- 安全组 / 防火墙:优先围绕入口地址收敛规则。
2.4 VIP 解决不了什么
VIP 很有用,但不是万能药:
| 误区 | 实际情况 |
|---|---|
| 「有了 VIP 就永不宕机」 | 入口层也会故障;还要看多可用区、跨地域 |
| 「VIP = 自动扩容」 | 扩容靠后端池与编排,VIP 只是入口 |
| 「配了 VIP 就不需要域名」 | 人仍然更适合记域名;证书、多环境也常绑域名 |
| 「DNS TTL 一改就等于 VIP 漂移」 | DNS 变更受缓存影响;VIP 漂移通常更快、更局部 |
三、VIP 和域名是什么关系
图 4:用户输入域名 → DNS 解析到 VIP → 再到达负载均衡或高可用入口 → 后端真实机器。

3.1 分层看:名字层 vs 地址层 vs 机器层
| 层次 | 例子 | 负责什么 |
|---|---|---|
| 名字层 | api.example.com |
给人(和证书、配置)用的稳定名字 |
| 地址层 | VIP 203.0.113.10 |
给网络转发用的稳定入口地址 |
| 机器层 | 10.0.1.11、10.0.1.12 |
真正跑进程的节点 |
关系可以写成:
text
域名 --(DNS)--> VIP --(LB / Keepalived)--> 后端真实 IP
所以:
- 域名不替代 VIP:域名解析的结果,往往就是 VIP(或再经 CNAME 落到厂商入口)。
- VIP 不替代域名:用户、浏览器、证书 SAN、配置中心,通常仍写域名。
- 两者配合:域名提供「好记且可换解析」的名字;VIP 提供「对内可漂移/可分发」的入口。
3.2 两种常见挂法
挂法 A:A 记录直接指向 VIP
text
api.example.com. A 203.0.113.10 ← 这就是 VIP
适合:自建 VIP、或云产品直接给你固定入口 IP 时。
挂法 B:CNAME 到厂商域名,再落到 VIP 集群
text
www.example.com. CNAME xxx.lb.aliyuncs.com.
xxx.lb.aliyuncs.com. → 厂商侧多个 VIP / Anycast 入口
适合:云负载均衡、CDN 等。你维护的是「名字指到厂商」,厂商维护「名字背后的 VIP」。
3.3 为什么生产更爱「域名 → VIP」,而不是「域名 → 某台物理 IP」
| 做法 | 优点 | 风险 |
|---|---|---|
| 域名 → 单机物理 IP | 简单 | 换机就要改 DNS;TTL 缓存导致切换慢 |
| 域名 → VIP | 换后端时常不用改 DNS | 仍要保证 VIP 本身高可用 |
| 客户端写死 IP | 联调快 | 证书、迁移、多环境都难受 |
经验法则:
- 给用户和业务配置写域名;
- 让 DNS 指向 VIP(或厂商入口);
- 让 VIP 后面再谈主备 / 负载 / 扩缩容。
3.4 一个生活化类比(方便对业务同学解释)
| 现实世界 | 网络世界 |
|---|---|
| 店名「星航咖啡馆」 | 域名 |
| 查号台 / 地图 App | DNS |
| 商场统一门牌「A 座 1 层 1001」 | VIP |
| 今天是张三值班、明天李四 | 后端真实机器 |
| 店员换了,门牌不变 | VIP 漂移 / 后端替换 |
客户记住的是店名;地图把店名指到门牌;门牌背后谁服务,客户通常不关心。
四、串起来:一次真实访问长什么样
以访问 https://api.example.com/health 为例:
text
1. 浏览器拿到域名 api.example.com
2. DNS 查询:A/CNAME 最终得到 VIP(或厂商入口 IP)
3. 客户端与该 VIP 建连(TLS 证书通常仍校验域名)
4. 负载均衡 / Keepalived 入口接收连接
5. 请求被转到某台健康后端的真实 IP
6. 应用返回结果;对外仍表现为「打到了 api.example.com」
排障时也可按同一顺序想:
| 步骤 | 先看什么 | 常见问题 |
|---|---|---|
| ① 域名 | 解析结果是否符合预期 | 指错环境、TTL 未生效 |
| ② VIP | 入口是否通、监听是否在 | 安全组、VIP 未绑定、主备异常 |
| ③ 负载/健康检查 | 后端是否被摘除 | 探活路径错、端口错 |
| ④ 后端真实机 | 进程、日志、本机网络 | 应用挂了但 VIP 还在 |
五、对照实验(可选,加深印象)
不搭整套集群,也可以用「观察」建立直觉。
5.1 看一个公网域名最终落到什么 IP
bash
# 看解析链
dig +trace www.example.com
# 或更简单
nslookup www.example.com
你看到的最终 A 记录,业务上经常就是「入口 VIP / Anycast 地址」,而不是某台应用机的私网 IP。
5.2 区分「入口」和「后端」
在云控制台打开负载均衡详情,一般能同时看到:
- 服务地址(VIP);
- 后端服务器组(多台 ECS 私网 IP)。
把这两个列表并排看一遍:对外只有一个入口,对内可以有很多台------这就是 VIP 存在的直观证据。
5.3 自建双机时 VIP 长什么样(概念配置,勿直接当生产)
Keepalived 思路通常是:两台机器配同一 virtual_ipaddress,通过优先级选举 Master。Master 持有 VIP;Backup 在 Master 失联后接管。具体参数因网卡、网段、云厂商 ARP 限制而异,上云前请对照厂商文档(部分云环境对「自建 VIP 漂移」有限制,更推荐用云 LB)。
六、生产建议与扩展方向
| 建议 | 原因 |
|---|---|
| 对外暴露域名,DNS 指 VIP/厂商入口 | 名字稳定,证书与配置好维护 |
| 能用云 LB 就优先用云 LB | 少维护 VRRP,多可用区更省心 |
| 自建 VIP 要验证 ARP / 安全组 / 抢占 | 漂移失败往往出在二层与云网络策略 |
| DNS TTL 与 VIP 漂移分工清晰 | 秒级切换靠 VIP;全局改入口才动 DNS |
| 监控同时盯 VIP 存活与后端健康 | 只盯单机 IP 会漏掉入口层故障 |
| 文档里写清「域名 / VIP / 真实 IP」三列 | 减少沟通时互相指错对象 |
可继续延伸阅读的方向:
- VRRP 选举与脑裂(split-brain);
- LVS 的 NAT / DR / TUN 模式;
- 七层负载与四层 VIP 的差异;
- CDN CNAME 与源站 VIP 的回源关系;
- 双活多 VIP、全局负载(GSLB)与就近接入。
七、一句话总结
VIP 是对外稳定的虚拟服务入口地址;它的用处是把「用户打到哪里」和「哪台机器真正干活」解耦,从而支撑高可用与负载均衡。域名通过 DNS 指向 VIP(或厂商入口),二者是「名字」与「入口地址」的配合关系,不是互相替代。
内容仅供参考:不同云厂商产品名、是否允许自建 VIP、公网/私网形态会有差异,落地时以当前环境官方文档为准。
目录:20260804_VIP虚拟IP通俗讲解 · 海绵宝宝配图:images_spongebob/ · 2026-08-04