本文最后更新于 1 分钟前,文中所描述的信息可能已发生改变。
在某些生产环境中,服务器无法连接互联网,需要采用离线方式安装Keepalived。本文详细介绍在Ubuntu 24.04系统上离线安装Keepalived 2.2.8的完整步骤,包括下载安装包、安装依赖项、按顺序安装Keepalived组件以及后续配置,帮助运维人员在离线环境下成功部署Keepalived高可用服务。
离线安装概述
离线安装Keepalived适用于以下场景:
- 内网环境或安全要求较高的生产环境
- 无法访问外网或需要严格网络隔离的服务器
- 需要离线部署高可用服务的场景
与在线安装相比,离线安装需要手动下载Keepalived安装包和依赖项,并按照正确的顺序进行安装,但能够保证在离线环境下正常运行。
一、下载离线安装包
1. 下载Keepalived安装包
从Ubuntu官方仓库下载适用于Ubuntu 24.04的Keepalived 2.2.8离线安装包。
下载地址:
- Ubuntu包仓库:https://ubuntu.pkgs.org/24.04/ubuntu-main-amd64/keepalived_2.2.8-1build2_amd64.deb.html
- 或使用apt命令下载:
apt-get download keepalived=2.2.8-1build2
安装包名称:
keepalived_2.2.8-1build2_amd64.deb注意事项:
- 确保选择与操作系统架构匹配的版本(amd64或arm64)
- 建议下载稳定版本,避免使用测试版本
- 下载完整的deb包,包含所有必要的组件
2. 确定依赖项
在有网络的Ubuntu 24.04系统上,使用以下命令查看Keepalived的所有依赖项:
apt-cache depends keepalived或者查看更详细的依赖信息:
apt-cache show keepalived二、Keepalived依赖项列表
Keepalived 2.2.8在Ubuntu 24.04上的主要依赖项包括:
1. 核心依赖包
libipset13:
- 用于IP集管理
- 下载命令:
apt-get download libipset13 - 包名:
libipset13_*_amd64.deb
libnl-3-200:
- Netlink库,用于Linux内核通信
- 下载命令:
apt-get download libnl-3-200 - 包名:
libnl-3-200_*_amd64.deb
libnl-genl-3-200:
- Netlink通用库
- 下载命令:
apt-get download libnl-genl-3-200 - 包名:
libnl-genl-3-200_*_amd64.deb
libnl-route-3-200:
- Netlink路由库
- 下载命令:
apt-get download libnl-route-3-200 - 包名:
libnl-route-3-200_*_amd64.deb
libsnmp40:
- SNMP库,用于网络管理
- 下载命令:
apt-get download libsnmp40 - 包名:
libsnmp40_*_amd64.deb
libssl3:
- OpenSSL库,用于加密通信
- 下载命令:
apt-get download libssl3 - 包名:
libssl3_*_amd64.deb
libsystemd0:
- systemd系统库
- 下载命令:
apt-get download libsystemd0 - 包名:
libsystemd0_*_amd64.deb
2. 间接依赖包
这些依赖包可能还需要其他依赖,需要递归下载:
- libc6:GNU C库
- libgcc-s1:GCC支持库
- libstdc++6:C++标准库
- libdbus-1-3:D-Bus消息总线库
- liblzma5:LZMA压缩库
- libzstd1:Zstandard压缩库
- libbz2-1.0:Bzip2压缩库
- liblz4-1:LZ4压缩库
- libz1:Zlib压缩库
3. 使用apt-get自动下载所有依赖
在有网络的Ubuntu 24.04系统上,使用以下命令自动下载Keepalived及其所有依赖:
# 创建下载目录
mkdir -p ~/keepalived-offline
cd ~/keepalived-offline
# 下载keepalived及其所有依赖
apt-get download keepalived=2.2.8-1build2
# 下载所有依赖包(递归下载)
apt-get download $(apt-cache depends keepalived | grep "Depends:" | cut -d: -f2 | tr -d ' ')
# 或者使用更完整的方法
apt-get install --download-only --reinstall keepalived=2.2.8-1build2下载的包会保存在 /var/cache/apt/archives/ 目录中,复制到目标目录:
# 复制所有下载的deb包
cp /var/cache/apt/archives/*.deb ~/keepalived-offline/4. 使用apt-rdepends获取完整依赖树(推荐)
安装apt-rdepends工具:
sudo apt-get install apt-rdepends获取完整的依赖树:
# 获取所有依赖(包括间接依赖)
apt-rdepends keepalived | grep "Depends:" | awk '{print $2}' | sort -u > keepalived-deps.txt
# 下载所有依赖包
while read pkg; do
apt-get download $pkg
done < keepalived-deps.txt三、安装依赖项
1. 上传安装包到离线服务器
使用FTP、SCP或其他文件传输工具,将下载的所有deb包上传到目标服务器:
# 使用SCP上传示例
scp -r ~/keepalived-offline user@server:/tmp/2. 安装依赖包
在离线服务器上,进入存放deb包的目录:
cd /tmp/keepalived-offline方法一:按顺序安装依赖包
先安装基础库,再安装其他依赖:
# 安装基础库
sudo dpkg -i libc6_*.deb
sudo dpkg -i libgcc-s1_*.deb
sudo dpkg -i libstdc++6_*.deb
# 安装压缩库
sudo dpkg -i libz1_*.deb
sudo dpkg -i liblzma5_*.deb
sudo dpkg -i libbz2-1.0_*.deb
sudo dpkg -i liblz4-1_*.deb
sudo dpkg -i libzstd1_*.deb
# 安装系统库
sudo dpkg -i libsystemd0_*.deb
sudo dpkg -i libdbus-1-3_*.deb
# 安装SSL库
sudo dpkg -i libssl3_*.deb
# 安装Netlink库
sudo dpkg -i libnl-3-200_*.deb
sudo dpkg -i libnl-genl-3-200_*.deb
sudo dpkg -i libnl-route-3-200_*.deb
# 安装IP集库
sudo dpkg -i libipset13_*.deb
# 安装SNMP库
sudo dpkg -i libsnmp40_*.deb方法二:批量安装(推荐)
如果所有依赖包都在同一目录,可以使用批量安装:
# 安装所有依赖包
sudo dpkg -i *.deb如果遇到依赖问题,使用以下命令修复:
sudo apt-get install -f注意:在完全离线环境中,apt-get install -f 无法从网络下载缺失的依赖,需要确保所有依赖包都已下载。
3. 验证依赖包安装
检查关键依赖包是否已安装:
# 检查核心依赖
dpkg -l | grep -E "libipset13|libnl-3-200|libnl-genl-3-200|libnl-route-3-200|libsnmp40|libssl3|libsystemd0"
# 检查所有依赖
dpkg -l | grep -E "libc6|libgcc-s1|libstdc++6"四、安装Keepalived
1. 安装Keepalived主包
在所有依赖包安装完成后,安装Keepalived:
cd /tmp/keepalived-offline
sudo dpkg -i keepalived_2.2.8-1build2_amd64.deb2. 处理安装错误
如果安装过程中出现依赖错误:
# 查看错误信息
sudo dpkg -i keepalived_2.2.8-1build2_amd64.deb 2>&1 | grep "depends on"
# 手动安装缺失的依赖
sudo dpkg -i <missing-package>.deb
# 再次尝试安装
sudo dpkg -i keepalived_2.2.8-1build2_amd64.deb3. 验证安装
检查Keepalived是否安装成功:
# 查看Keepalived版本
keepalived --version
# 查看安装的包信息
dpkg -l | grep keepalived
# 查看Keepalived配置文件位置
ls -la /etc/keepalived/五、配置Keepalived
1. 基本配置
Keepalived的主配置文件位于 /etc/keepalived/keepalived.conf:
sudo vi /etc/keepalived/keepalived.conf2. 主备模式配置示例
主服务器配置:
global_defs {
router_id LVS_DEVEL
script_user root
enable_script_security
}
vrrp_script chk_nginx {
script "/usr/bin/curl -f http://localhost/ || exit 1"
interval 2
weight -2
fall 3
rise 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
virtual_ipaddress {
192.168.1.100/24
}
track_script {
chk_nginx
}
}备服务器配置:
global_defs {
router_id LVS_DEVEL
script_user root
enable_script_security
}
vrrp_script chk_nginx {
script "/usr/bin/curl -f http://localhost/ || exit 1"
interval 2
weight -2
fall 3
rise 2
}
vrrp_instance VI_1 {
state 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
}
track_script {
chk_nginx
}
}3. 启动Keepalived服务
# 检查配置文件语法
sudo keepalived -t
# 启动Keepalived服务
sudo systemctl start keepalived
# 设置开机自启
sudo systemctl enable keepalived
# 查看服务状态
sudo systemctl status keepalived4. 验证Keepalived运行
# 查看Keepalived进程
ps aux | grep keepalived
# 查看虚拟IP是否已绑定
ip addr show
# 查看Keepalived日志
sudo journalctl -u keepalived -f六、常见问题排查
1. 依赖问题
如果安装过程中提示缺少依赖:
# 查看缺少的依赖
sudo dpkg -i keepalived_2.2.8-1build2_amd64.deb 2>&1 | grep "depends on"
# 检查已安装的包
dpkg -l | grep <package-name>
# 如果无法自动安装,需要手动下载缺失的依赖包2. 服务启动失败
如果Keepalived服务启动失败:
# 查看错误日志
sudo journalctl -u keepalived -n 50
# 检查配置文件语法
sudo keepalived -t
# 查看系统日志
sudo tail -f /var/log/syslog | grep keepalived3. 虚拟IP无法绑定
如果虚拟IP无法绑定:
# 检查网络接口名称
ip addr show
# 确认配置文件中的interface名称正确
# 检查是否有其他服务占用虚拟IP
ip addr show | grep <virtual-ip>
# 检查防火墙规则
sudo iptables -L -n4. 权限问题
如果遇到权限问题:
# 检查Keepalived用户
id keepalived
# 检查配置文件权限
ls -la /etc/keepalived/keepalived.conf
# 确保脚本有执行权限
chmod +x /path/to/script.sh七、后续配置建议
1. 配置日志
编辑Keepalived配置文件,添加日志配置:
global_defs {
router_id LVS_DEVEL
script_user root
enable_script_security
log_file /var/log/keepalived.log
log_facility 0
}2. 配置防火墙
如果需要允许VRRP协议通信:
# UFW防火墙
sudo ufw allow vrrp
sudo ufw allow from <peer-ip> to any port 112
# 或iptables
sudo iptables -A INPUT -p vrrp -j ACCEPT
sudo iptables -A INPUT -s <peer-ip> -p tcp --dport 112 -j ACCEPT3. 监控配置
配置监控脚本,确保服务健康:
# 创建健康检查脚本
sudo vi /usr/local/bin/check_service.sh#!/bin/bash
# 检查Nginx服务
if systemctl is-active --quiet nginx; then
exit 0
else
exit 1
fi# 添加执行权限
sudo chmod +x /usr/local/bin/check_service.sh在Keepalived配置中使用:
vrrp_script chk_service {
script "/usr/local/bin/check_service.sh"
interval 2
weight -2
fall 3
rise 2
}总结
通过以上步骤,可以在Ubuntu 24.04系统上成功离线安装Keepalived 2.2.8。关键步骤包括:
- 下载安装包:从Ubuntu官方仓库下载Keepalived 2.2.8及其所有依赖包
- 安装依赖项:按照正确的顺序安装所有依赖包,包括libipset13、libnl-3-200、libnl-genl-3-200、libnl-route-3-200、libsnmp40、libssl3等
- 安装Keepalived:在所有依赖满足后安装Keepalived主包
- 配置服务:配置Keepalived主备模式,设置虚拟IP和健康检查
- 验证安装:确认Keepalived正常运行,虚拟IP正确绑定
- 后续优化:根据实际需求配置日志、防火墙和监控
离线安装Keepalived虽然步骤相对复杂,但能够满足内网环境或安全隔离场景的需求。建议在实际部署前在测试环境验证所有步骤,确保生产环境部署顺利。同时,务必遵循安全最佳实践,配置强密码、限制访问权限,并定期进行服务健康检查。