ipvsadm命令用于在Linux内核中设置,维护或检查虚拟服务器表。 Linux虚拟服务器可用于基于两个或更多节点的集群构建可伸缩网络服务。 群集的主节点将服务请求重定向到将实际执行服务的服务器主机集合。 支持的功能包括两种协议(TCP和UDP),三种数据包转发方法(NAT,隧道和直接路由),以及八种负载均衡算法(roundrobin,加权循环,最小连接,加权最小连接,基于位置) 最小连接,基于位置的最小连接,具有复制,目标哈希和源哈希)。
**语法格式:** ipvsadm [参数]
**常用参数:**
| -A/--add-service | 添加一条新的虚拟服务 |
| ---------------------------------- | --------------------------------------------------------------------------------------------- |
| -E/--edit-service | 编辑虚拟服务 |
| -D/--delete-service | 删除虚拟服务 |
| -C/--clear | 清除所有的虚拟服务规则 |
| -R/--restore | 恢复虚拟服务规则 |
| -S/--save | 保存虚拟服务器规则 |
| -a/--add-server | 在一个虚拟服务中添加一个新的真实服务器 |
| -e/--edit-server | 编辑某个真实服务器 |
| -d/--delete-server | 删除某个真实服务器 |
| -L/-l/--list | 显示内核中的虚拟服务规则 |
| -Z/--zero | 将转发消息的统计清零 |
| --set tcp/tcpfin/udp | 配置三个超时时间(tcp/tcpfin/udp) |
| --start-daemon | 启动同步守护进程。 |
| --stop-daemon | 停止同步守护进程 |
| -h/--help | 显示帮助信息 |
| -t/--tcp-service service-address | TCP协议的虚拟服务 |
| -u/--udp-service service-address | UDP协议的虚拟服务 |
| -f/--fwmark-service fwmark | 说明是经过iptables 标记过的服务类型。 |
| -s/--scheduler scheduler | 使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc. |
| -p/--persistent [timeout] | 持久稳固的服务。 |
| -M/--netmask | 指定客户地址的子网掩码 |
| -r/--real-serverserver-address | 真实的服务器 |
| -g/--gatewaying | 指定LVS 的工作模式为直接路由模式 |
| -i/--ipip | 指定LVS 的工作模式为隧道模式 |
| -m/--masquerading | 指定LVS 的工作模式为NAT 模式 |
| -w/--weightweight | 真实服务器的权值 |
| --mcast-interface interface | 指定组播的同步接口 |
| -c/--connection | 显示ipvs中目前存在的连接 |
| -6: | 如果fwmark用的是ipv6地址需要指定此选项。 |
**参考实例**
管理虚拟服务:
添加一个虚拟服务192.168.1.100:80,使用轮询算法:
```
[root@anycode ~]# ipvsadm -A -t 192.168.1.100:80 -s rr
```
修改虚拟服务的算法为加权轮询:
```
[root@anycode ~]# ipvsadm -E -t 192.168.1.100:80 -s wrr
```
删除虚拟服务:
```
[root@anycode ~]# ipvsadm -D -t 192.168.1.100:80
```
管理真实服务:
添加一个真实服务器192.168.1.123,使用DR模式,权重2:
```
[root@anycode ~]# ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.123 -g -w 2
```
修改真实服务器的权重:
```
[root@anycode ~]# ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.123 -g -w 5
```
删除真实服务器:
```
[root@anycode ~]# ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.123
```
查看统计:
查看当前配置的虚拟服务和各个RS的权重:
```
[root@anycode ~]# ipvsadm -Ln
```
查看当前ipvs模块中记录的连接(可用于观察转发情况):
```
[root@anycode ~]# ipvsadm -lnc
```
查看ipvs模块的转发情况统计:
```
[root@anycode ~]# ipvsadm -Ln --stats | --rate
```