在香港VPS服务器上配置 Failover IP(故障切换 IP)是一种常见的高可用性方案,允许将备用 IP 地址快速切换到另一台服务器或实例,以确保业务连续性。
1. 什么是 Failover IP?
Failover IP 是提供高可用性的虚拟 IP 地址(VIP)。它可以在主服务器故障时,快速切换到备用服务器,常用于以下场景:
- 高可用性:在主服务器宕机时,备用服务器接管业务。
- 业务迁移:将流量从一台服务器切换到另一台服务器。
- 负载分担:通过手动或自动切换,将流量分配到不同的服务器。
2. 配置 Failover IP 的准备工作
2.1 确认服务商支持
- 确保你的服务商(如 OVH、Hetzner、阿里云香港节点)支持 Failover IP,并已分配给你的 VPS。
- 服务商通常会要求将 Failover IP 与某台服务器绑定。
2.2 获取以下信息
你需要以下信息来配置 Failover IP:
- Failover IP 地址
- 子网掩码(一般为
255.255.255.255
或 /32
,具体以服务商为准)
- 网关地址(通常使用主服务器的默认网关)
- 主服务器的网络接口名称(如
eth0
、ens3
)
3. 配置 Failover IP
3.1 手动绑定 Failover IP
步骤 1:检查主网卡名称
运行以下命令,确认网络接口名称:
输出示例:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
在此示例中,网卡名称为 eth0
。
步骤 2:绑定 Failover IP
使用 ip
命令临时绑定 Failover IP:
sudo ip addr add <Failover-IP>/32 dev eth0
示例:
sudo ip addr add 203.0.113.100/32 dev eth0
步骤 3:添加路由
因为 Failover IP 是一个独立的 /32 子网地址,可能需要手动添加路由到网关:
sudo ip route add <网关地址> dev eth0
sudo ip route add default via <网关地址>
示例:
sudo ip route add 192.168.1.1 dev eth0
sudo ip route add default via 192.168.1.1
步骤 4:验证配置
检查是否成功绑定和路由:
ip addr show eth0
ip route
使用 ping
测试 Failover IP 是否可用:
3.2 持久化配置
方法 1:通过 NetworkManager 配置
如果你的系统使用 NetworkManager 管理网络,可通过修改配置文件实现 Failover IP 的持久化。
- 编辑网络接口配置文件:
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
- 添加以下内容:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=203.0.113.100
PREFIX=32
GATEWAY=192.168.1.1
- 重启网络服务:
sudo systemctl restart NetworkManager
方法 2:通过 /etc/network/interfaces
配置(Debian/Ubuntu 系列)
- 编辑网络接口文件:
sudo nano /etc/network/interfaces
- 添加以下内容:
auto eth0:1
iface eth0:1 inet static
address 203.0.113.100
netmask 255.255.255.255
broadcast 203.0.113.100
post-up ip route add 192.168.1.1 dev eth0
post-up ip route add default via 192.168.1.1
- 重启网络服务:
sudo systemctl restart networking
3.3 配置 ARP 广播(防止冲突)
某些服务商(如 OVH)要求配置 ARP 广播(Gratuitous ARP),以确保路由器知道 Failover IP 已绑定到新VPS服务器。
方法 1:通过命令
执行以下命令发送 ARP 广播:
sudo arping -c 3 -I eth0 <Failover-IP>
方法 2:设置 ARP 广播自动化
在 /etc/rc.local
文件中添加以下内容:
arping -c 3 -I eth0 203.0.113.100
确保文件可执行:
sudo chmod +x /etc/rc.local
4. 自动化切换 Failover IP
4.1 使用 Keepalived 配置高可用性
Keepalived 是一个常用的高可用工具,支持 Failover IP 的自动切换。
安装 Keepalived
-
安装 Keepalived:
sudo apt install keepalived -y # Ubuntu/Debian
sudo yum install keepalived -y # CentOS
-
编辑配置文件:
sudo nano /etc/keepalived/keepalived.conf
示例配置:
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 12345
}
virtual_ipaddress {
203.0.113.100
}
}
-
启动并启用服务:
sudo systemctl start keepalived
sudo systemctl enable keepalived
4.2 使用脚本自动切换
如果不使用 Keepalived,可以编写简单的脚本实现 Failover IP 的切换:
示例脚本
-
创建脚本文件:
sudo nano /usr/local/bin/failover.sh
-
添加以下内容:
#!/bin/bash
IP="203.0.113.100"
GATEWAY="192.168.1.1"
INTERFACE="eth0"
# 绑定 Failover IP
ip addr add $IP/32 dev $INTERFACE
# 添加路由
ip route add $GATEWAY dev $INTERFACE
ip route add default via $GATEWAY
-
保存并赋予执行权限:
sudo chmod +x /usr/local/bin/failover.sh
-
执行脚本切换 IP:
sudo /usr/local/bin/failover.sh
5. 测试配置
-
检查 Failover IP 是否绑定成功:
-
测试 IP 切换:
- 在主服务器和备用服务器之间手动切换 Failover IP,确保切换过程无误。
-
检查连接性:
- 使用
ping
测试 Failover IP 是否可访问:
6. 总结
配置 Failover IP 是实现高可用性的重要步骤。以下是关键步骤:
- 获取 Failover IP 和相关信息(子网掩码、网关)。
- 使用
ip
命令或网络配置文件绑定 Failover IP。
- 配置 ARP 广播以确保路由器更新。
- 使用 Keepalived 或脚本实现自动化 Failover。
通过上述方法,你可以在香港VPS服务器上快速配置和管理 Failover IP,确保业务的高可用性和连续性。