本文最后更新于 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