本文最后更新于 2025-12-20,文章内容可能已经过时。
ipvsadm
1. 基本管理命令(最常用)
命令 | 选项含义 | 示例 | 说明 |
|---|
-A | 添加虚拟服务(Add Virtual Server) | ipvsadm -A -t 192.168.1.100:80 | 创建一个新的 VIP 服务 |
-E | 修改已有虚拟服务(Edit) | ipvsadm -E -t 192.168.1.100:80 -s rr | 修改调度算法等 |
-D | 删除虚拟服务(Delete) | ipvsadm -D -t 192.168.1.100:80 | 删除整个 VIP 服务 |
-C | 清空所有规则(Clear) | ipvsadm -C | 慎用!清空所有虚拟服务和真实服务器 |
-R | 从标准输入恢复规则(Restore) | ipvsadm -R < rules.txt | 常配合 -S 使用 |
-S | 保存规则到标准输出(Save) | ipvsadm -S > rules.txt | 用于备份规则 |
2. 真实服务器管理
命令 | 选项含义 | 示例 |
|---|
-a | 添加真实服务器(add real server) | ipvsadm -a -t 192.168.1.100:80 -r 10.0.0.10 -m |
-e | 修改真实服务器(edit) | ipvsadm -e -t 192.168.1.100:80 -r 10.0.0.10 -w 2 |
-d | 删除真实服务器(delete) | ipvsadm -d -t 192.168.1.100:80 -r 10.0.0.10 |
3. 常用参数选项
选项 | 含义 | 常用值/示例 |
|---|
-t vip:port | TCP 虚拟服务 | -t 192.168.1.100:80 |
-u vip:port | UDP 虚拟服务 | -u 192.168.1.100:53 |
-f fwmark | 防火墙标记(fwmark)服务 | -f 100 |
-s scheduler | 指定调度算法 | -s rr / wrr / lc / wlc / sh 等(见下文) |
-p [timeout] | 启用持久化(会话保持),可选超时秒数 | -p 3600(1小时) |
-r real_server:port | 指定真实服务器 IP 和端口 | -r 192.168.1.10:80 |
-g | DR 模式(gatewaying,直接路由) | 最常用 |
-i | TUN 模式(ip tunneling) | |
-m | NAT 模式(masquerading) | |
-w weight | 设置权重(0 表示剔除该节点) | -w 2 |
4. 查看与统计选项(非常实用)
命令 | 含义 | 示例 |
|---|
-L 或 ipvsadm | 列出所有规则(默认) | |
-Ln | 数字格式显示(推荐,最清晰) | ipvsadm -Ln |
-L --stats | 显示连接/包/流量统计 | |
-L --rate | 显示速率(CPS、PPS、BPS) | |
-L -c | 显示当前连接表(connection) | 排查会话用 |
--list | 同 -L | |
5. 常用调度算法(-s 参数)
算法 | 名称 | 说明 |
|---|
rr | Round Robin(轮询) | 简单平均分配 |
wrr | Weighted RR(加权轮询) | 按权重分配(推荐) |
lc | Least Connection(最少连接) | 连接数最少的优先 |
wlc | Weighted LC(加权最少连接) | 生产常用 |
sh | Source Hashing(源哈希) | 会话保持,同一客户端固定后端 |
dh | Destination Hashing(目标哈希) | 常用于缓存代理 |
lblc | Locality-Based LC | 动态反馈负载 |
lblcr | 带复制的 lblc | 高可用缓存 |
6. 快速示例组合(日常最常用)
Bash
# 清空并新建一个 DR 模式的 HTTP 负载均衡(wrr + 会话保持)
ipvsadm -C
ipvsadm -A -t 192.168.1.100:80 -s wrr -p 1800
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.10:80 -g -w 1
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.11:80 -g -w 2
# 查看效果
ipvsadm -Ln