查看LVS(Linux Virtual Server)分配的连接信息,可以通过以下步骤和工具实现:
1. 使用 ipvsadm
命令
ipvsadm
是管理LVS的核心工具,可以查看当前分配的连接、转发规则及状态。
查看所有活动连接
sudo ipvsadm -lcn
- 输出示例:
TCP 00:01:23 ESTABLISHED 192.168.1.100:1234 -> 10.0.0.1:80 -> 172.16.1.1:80
- 字段说明:
ESTABLISHED
:连接状态(还有TIME_WAIT
、SYN_RECV
等)。192.168.1.100:1234
:客户端IP和端口。10.0.0.1:80
:虚拟服务IP(VIP)。172.16.1.1:80
:真实服务器IP(RIP)。
- 字段说明:
查看统计信息
sudo ipvsadm -ln --stats
- 显示每个服务的连接数、入站/出站流量等。
2. 通过 /proc/net/ip_vs_conn
直接读取内核中的连接表(需root权限):
sudo cat /proc/net/ip_vs_conn
- 输出格式:
Pro SrcIP:Port DestIP:Port State RIP:Port TCP C000020A:1234 A000001:0050 ESTABLISHED B000101:0050
- IP和端口为十六进制格式,需转换(如
C000020A
→192.0.2.10
)。
- IP和端口为十六进制格式,需转换(如
3. NAT模式下的连接跟踪
如果LVS使用NAT模式,可通过 conntrack
工具查看:
sudo conntrack -L | grep VIP_IP
4.DR/TUN模式的补充检查
在DR或TUN模式下,真实服务器需启用ARP抑制。若需验证请求是否到达后端:
- 在真实服务器上抓包:
sudo tcpdump -i eth0 host VIP_IP and port SERVICE_PORT
5.LVS日志记录
默认不记录详细日志,如需调试可启用内核日志:
echo "1" > /proc/sys/net/ipv4/vs/debug_level
dmesg | grep IPVS
关键点总结
项目 | 命令/文件 | 用途 |
---|---|---|
活动连接 | ipvsadm -lcn |
查看实时连接状态 |
LVS配置 | ipvsadm -ln |
显示虚拟服务和真实服务器 |
内核连接表 | /proc/net/ip_vs_conn |
RAW格式的连接信息 |
流量统计 | ipvsadm -ln --stats --rate |
查看数据包和字节计数 |
遇到具体问题时,可结合上述工具分析负载均衡策略或网络配置是否正确。
内容由零声教学AI助手提供,问题来源于学员提问