1.什么是集群
集群(Cluster) 是指将多台独立的计算机(服务器)通过网络连接在一起,协同工作,对外表现为一个统一的整体,提供高性能、高可用或高计算能力的服务。(通俗一点就是把多台普通服务器"拧成一股绳",让它们协同工作,用户访问时感觉像在访问一台超级服务器。)
2.集群的分类
集群根据解决的问题不同,主要分为三大类:
| 集群类型 | 核心目标 | 生活比喻 |
|---|---|---|
| 负载均衡集群(LB) | 提高并发处理能力 | 餐厅叫号系统,把客人分给不同服务员 |
| 高可用集群(HA) | 保证服务不中断 | 足球队替补队员,主力受伤替补上场 |
| 高性能计算集群(HPC) | 集中算力解决复杂计算 | 多台电脑一起算一道数学题 |
2.1.负载均衡集群LB
-
目标:将大量用户请求分摊到多台服务器上
-
解决:高并发场景下单台服务器性能不足的问题
-
代表技术:LVS、Nginx、HAProxy

2.2 高可用集群HA
-
目标:保证服务7×24小时不间断
-
解决:单点故障问题(SPOF)
-
代表技术:Keepalived、Heartbeat

3.LVS的作用
LVS(Linux Virtual Server) 是Linux内核层面实现的一个四层负载均衡软件,由章文嵩博士于1998年发起。
核心作用
| 作用 | 说明 |
|---|---|
| 流量分发 | 将客户端请求按指定算法分发到后端真实服务器 |
| 高可用保障 | 配合Keepalived实现调度器主备切换,避免单点故障 |
| 透明代理 | 客户端只看到LVS调度器的IP(VIP),不知道后端真实服务器 |
| 性能扩展 | 通过增加后端服务器数量来横向扩展系统处理能力 |
4.LVS的四种模式及原理
4.1.NAT 模式(Network Address Translation)
核心原理
NAT 模式是 LVS 最基本的负载均衡模式,其核心是 目标地址转换(DNAT)。LVS 调度器收到客户端的请求后,将请求的目标 IP 地址从 VIP 修改为后端真实服务器的 IP 地址,然后转发给 RS。RS 处理完成后,将响应返回给 LVS,LVS 再将响应的源 IP 从 RS 的 IP 修改为 VIP,返回给客户端。
关键特点
| 特点 | 说明 |
|---|---|
| 双向流量经过 LVS | 请求和响应都必须经过 LVS,LVS 成为网络瓶颈 |
| RS 无需配置 VIP | RS 使用普通内网 IP 即可,完全感知不到 VIP 的存在 |
| 支持端口映射 | 可以将 VIP:80 映射到 RS:8080,灵活度高 |
| 支持跨网段 | LVS 和 RS 可以在不同网段,只要路由可达 |
| 客户端真实 IP 可见 | RS 收到的请求中源 IP 是客户端的真实 IP,可直接获取 |
| RS 需要改网关 | RS 的默认网关必须指向 LVS,否则响应无法回到 LVS |

环境配置
LVS: eth0(nat模式):172.25.254.100 eth1(仅主机模式):192.168.0.100
RS1:eth0(仅主机模式):192.168.0.10 网关:192.168.0.100
RS2:eth0(仅主机模式):192.168.0.20 网关:192.168.0.100
LVS调度器
bash
[root@LVS ~]# vmset.sh eth0 172.25.254.100 vsnode
[root@LVS ~]# vmset.sh eth1 192.168.0.100 vsnode noroute
[root@LVS ~]# dnf install ipvsadm-1.31-6.el9.x86_64 -y
RS1
bash
[root@RS1 ~]# vmset.sh eth0 192.168.0.10 RS1 noroute
[root@RS1 ~]# nmcli connection modify eth0 ipv4.gateway 192.168.0.100
[root@RS1 ~]# nmcli connection reload
[root@RS1 ~]# nmcli connection up eth0
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)
[root@RS1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.100 0.0.0.0 UG 100 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
#设定访问业务真实数据
[root@RS1 ~]# dnf install httpd -y
[root@RS1 ~]# systemctl enable --now httpd
[root@RS1 ~]# echo 192.168.0.10 RS1 > /var/www/html/index.html
RS2
bash
#网络设定
[root@RS1 ~]# vmset.sh eth0 192.168.0.20 RS1 noroute
[root@RS1 ~]# nmcli connection modify eth0 ipv4.gateway 192.168.0.100
[root@RS1 ~]# nmcli connection reload
[root@RS1 ~]# nmcli connection up eth0
[root@RS1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.100 0.0.0.0 UG 100 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
#设定访问业务真实数据
[root@RS1 ~]# dnf install httpd -y
#开机自启动
[root@RS1 ~]# systemctl enable --now httpd
[root@RS1 ~]# echo 192.168.0.20 RS2 > /var/www/html/index.html
NAT模式实现方法
bash
#开启内核路由功能
[root@LVS ~]# echo net.ipv4.ip_forward=1 > /etc/sysctl.conf
[root@LVS ~]# sysctl -p
net.ipv4.ip_forward = 1
#编写策略
[root@LVS ~]# ipvsadm -A -t 172.25.254.100:80 -s wrr
[root@LVS ~]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10 -m -w 1
[root@LVS ~]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.20 -m -w 1
[root@LVS ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.25.254.100:80 wrr
-> 192.168.0.10:80 Masq 1 0 0
-> 192.168.0.20:80 Masq 1 0 0
#测试------保证LVS是可达后端服务器
[root@LVS ~]# for i in {1..10};do curl 172.25.254.100;done
192.168.0.10 RS1
192.168.0.20 RS2
192.168.0.10 RS1
192.168.0.20 RS2
192.168.0.10 RS1
192.168.0.20 RS2
192.168.0.10 RS1
192.168.0.20 RS2
192.168.0.10 RS1
192.168.0.20 RS2
4.2.DR 模式(Direct Routing)
核心原理
DR 模式是 LVS 四种模式中性能最高 的模式。其核心是 MAC 地址改写 。LVS 调度器收到客户端的请求后,根据调度算法选择一台 RS,将请求数据包的目标 MAC 地址 修改为 RS 的 MAC 地址,然后通过二层网络直接转发给 RS。RS 处理完成后,直接将响应返回给客户端,不再经过 LVS。
关键特点
| 特点 | 说明 |
|---|---|
| 响应不经过 LVS | RS 直接将响应返回客户端,大幅减轻 LVS 压力,性能最高 |
| RS 必须配置 VIP | RS 需要在回环接口(lo:0)上配置 VIP,并抑制 ARP 响应,避免 IP 冲突 |
| 不支持跨网段 | LVS 和 RS 必须在同一个二层网络(同一交换机/广播域) |
| 不支持端口映射 | LVS 的 VIP:80 必须对应 RS 的 80 端口 |
| 客户端真实 IP 可见 | RS 收到的请求中源 IP 是客户端的真实 IP |
| RS 不需要改网关 | 响应直接返回客户端,不需要经过 LVS |

环境配置
路由器(router): eth0(nat模式):172.25.254.100 eth1(仅主机模式):192.168.0.100
LVS:eth0(仅主机模式):192.168.0.50
RS1:eth0(仅主机模式):192.168.0.10 网关:192.168.0.100
RS2:eth0(仅主机模式):192.168.0.20 网关:192.168.0.100
客户端(client):eth0(nat)172.25.254.99
路由器
bash
#在路由器中
[root@router ~]# systemctl disable --now ipvsadm.service
Removed "/etc/systemd/system/multi-user.target.wants/ipvsadm.service".
[root@router ~]# ipvsadm -C
#在路由器中
[root@router ~]# vmset.sh eth0 172.25.254.100 vsnode
[root@router ~]# vmset.sh eth1 192.168.0.100 vsnode noroute、
#设定内核路由功能
[root@router ~]# echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
[root@router ~]# sysctl -p
net.ipv4.ip_forward = 1
#数据转发策略
[root@router ~]# iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.0.100
[root@vsnode ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.100
调度器
bash
#vsnode 调度器
[root@vsnode ~]# vmset.sh eth0 192.168.0.50 vsnode norouter
[root@vsnode ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0
[ipv4]
method=manual
address1=192.168.0.50/24
gateway=192.168.0.100
[root@vsnode ~]# cd /etc/NetworkManager/system-connections/
#复制eth0的内容及权限
[root@vsnode system-connections]# cp -p eth0.nmconnection lo.nmconnection
[root@vsnode system-connections]# vim lo.nmconnection
[connection]
id=lo
type=loopback
interface-name=lo
[ipv4]
method=manual
address1==127.0.0.1/8
address2=192.168.0.200/32
[root@RS1 system-connections]# nmcli connection reload
[root@RS1 system-connections]# nmcli connection up eth0
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)
[root@RS1 system-connections]# nmcli connection up lo
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/8)
#检测
root@vsnode system-connections]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.100 0.0.0.0 UG 100 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
[root@vsnode system-connections]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet 192.168.0.200/32 brd 192.168.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:41:e5:8b brd ff:ff:ff:ff:ff:ff
altname enp3s0
altname ens160
inet 192.168.0.50/24 brd 192.168.0.255 scope global secondary noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::e40:8975:6b9:fea8/64 scope link noprefixroute
valid_lft forever preferred_lft forever
RS1,RS2
bash
#RS1
[root@RS1 ~]# vmset.sh eth0 192.168.0.10 RS1 noroute
[root@RS1 ~]# nmcli connection modify eth0 ipv4.gateway 192.168.0.100
[root@RS1 ~]# nmcli connection reload
[root@RS1 ~]# nmcli connection up eth0
[root@RS1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.100 0.0.0.0 UG 100 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
#在lo上设定vip
[root@RS1+2 ~]# cd /etc/NetworkManager/system-connections/
[root@RS1+2 system-connections]# cp -p eth0.nmconnection lo.nmconnection
[root@RS1+2 system-connections]# vim lo.nmconnection
[connection]
id=lo
type=loopback
interface-name=lo
[ethernet]
[ipv4]
address1=127.0.0.1/8
address2=192.168.0.200/32
method=manual
[root@RS1+2 system-connections]# nmcli connection reload
[root@RS1+2 system-connections]# nmcli connection up lo
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/6)
[root@RS1 system-connections]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet 192.168.0.200/32 scope global lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
#arp禁止响应------防止后端服务器都响应导致混乱
[root@rs1+2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@rs1+2 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@rs1+2 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@rs1+2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
client
bash
客户端
[root@client ~]# vmset.sh eth0 172.25.254.99 client norouter
[root@client ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0
[ipv4]
method=manual
address1=172.25.254.99/24
gateway=172.25.254.100
dns=8.8.8.8;
[root@client ~]# nmcli connection reload
[root@client ~]# nmcli connection up eth0
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)
[root@client ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.254.100 0.0.0.0 UG 100 0 0 eth0
172.25.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
验证
bash
#检测
[root@client ~]# ping 192.168.0.200
PING 192.168.0.200 (192.168.0.200) 56(84) 比特的数据。
64 比特,来自 192.168.0.200: icmp_seq=1 ttl=128 时间=1.08 毫秒
4.3.TUN 模式(IP Tunneling)

核心原理
TUN 模式的核心是 IP 封装(IP-in-IP Tunneling) 。LVS 调度器收到客户端的请求后,将原始 IP 数据包封装 在一个新的 IP 包中,通过隧道发送给后端的真实服务器。真实服务器收到后解封装 ,获取原始请求,处理完成后直接将响应返回给客户端。
关键特点
| 特点 | 说明 |
|---|---|
| 响应不经过 LVS | RS 处理后直接将响应返回客户端,大幅减轻 LVS 压力 |
| 支持跨网段 | LVS 和 RS 可以通过公网或不同网段部署(只要路由可达) |
| 需要隧道支持 | RS 需要加载 ipip 内核模块,配置 tunl0 隧道接口 |
| 性能损耗 | 封装/解封装消耗 CPU,但效率仍高于 NAT |
| MTU 问题 | 隧道封装增加 20 字节 IP 头,可能超过 MTU,需减小 RS 的 MTU |
4.4.FULLNAT 模式

核心原理
FULLNAT 模式是 NAT 模式的增强版,同时修改源 IP 和目标 IP 。LVS 收到请求后,将请求的源 IP 改为 LVS 自身的 IP ,目标 IP 改为 RS 的 IP;RS 处理完成后,将响应返回给 LVS,LVS 再反方向修改 IP 后返回给客户端。
关键特点
| 特点 | 说明 |
|---|---|
| 双 NAT | 同时修改源 IP 和目标 IP,是真正的全 NAT |
| RS 无需配置 VIP | RS 完全不需要知道 VIP 的存在,使用普通内网 IP 即可 |
| 响应经过 LVS | 响应流量必须回到 LVS,LVS 压力较大(同 NAT) |
| 支持任意网络拓扑 | LVS 和 RS 可在不同网段、不同机房、甚至不同云环境 |
| 客户端真实 IP 丢失 | RS 看到的源 IP 是 LVS 的 IP,丢失了客户端真实 IP,需要 TOA 模块补偿 |
| 非 LVS 原生 | FULLNAT 由阿里/淘宝团队开发,标准 Linux 内核不支持,需打补丁 |
5.LVS的十三种调度算法
5.1 固定调度算法(静态算法)
| 算法名称 | 核心原理与特点 | 适用场景 |
|---|---|---|
| 轮询调度(RR) | 将请求按顺序轮流分配给后端服务器,所有服务器一视同仁。 | 服务器硬件配置完全相同的场景,实现最简单、平均的负载分发。 |
| 加权轮询调度(WRR) | RR的增强版,根据服务器性能为其设置权重,权重高的服务器分配更多请求。 | 服务器性能差异明显的集群,能更合理地利用资源。 |
| 目标地址散列调度(DH) | 根据请求的目标IP地址进行哈希计算,将请求固定分配给一台服务器。 | 主要用于缓存服务器集群,提高缓存命中率。 |
| 源地址散列调度(SH) | 根据请求的源IP地址进行哈希计算,将同一客户端的请求固定分配给一台服务器。 | 需要保持会话粘滞(Session Sticky)的场景,如需要维持用户登录状态的Web应用。 |
5.2 动态调度算法(动态算法)
| 算法名称 | 核心原理与特点 | 适用场景 |
|---|---|---|
| 最少连接调度(LC) | 将新请求分配给当前活跃连接数最少的服务器。 | 各服务器性能相近,但请求处理时间差异大的场景(如长连接),能实现动态负载均衡。 |
| 加权最少连接调度(WLC) | LC的进阶版,用"连接数 / 权重 "的比值来决定,比值最小的服务器接收新请求。这也是LVS的默认算法。 | 通用生产环境,兼顾了服务器性能差异和当前负载,是最均衡的通用选择。 |
| 最短预期延迟调度(SED) | 基于WLC改进,计算公式为"(连接数+1) / 权重",计算结果最小的服务器接收新请求,更主动地为新请求预估延迟。 | 对请求响应时间有较高要求的场景。 |
| 永不排队调度(NQ) | SED的改进版。如果服务器中有空闲节点(连接数为0),则直接分配过去,无需进行复杂的SED计算。 | 服务器数量较多,且时常有空闲节点的场景,能进一步提升效率。 |
| 基于局部性的最少连接调度(LBLC) | 针对目标IP地址进行负载均衡。会优先将请求分配给之前为该IP服务的服务器,以提高访问局部性。 | 主要用于Cache集群系统,通过保持"目标IP-服务器"的映射来提高缓存命中率。 |
| 带复制的基于局部性最少连接调度(LBLCR) | LBLC的升级版。它维护的是"目标IP地址到一组服务器"的映射,而不是一台。当"热门"网站访问量激增时,可动态增加服务器来处理负载。 | 大型、高流量的Cache集群,能更好地应对"热点"数据访问。 |
| 目标地址散列调度(DH) | (已在上文静态算法中列出,其实现依赖静态哈希表,也常归入静态算法) | (同上) |
| 源地址散列调度(SH) | (已在上文静态算法中列出,其实现依赖静态哈希表,也常归入静态算法) | (同上) |
| 加权故障转移调度(FO) | 一种较新的算法,核心是故障转移 。它总是将请求分配给当前可用且权重最高的服务器,当高权重服务器故障时,会自动转移到次高权重的服务器。 | 对服务可用性要求极高,希望请求优先由"主力"服务器处理的主备或分层架构。 |
| 加权溢出调度(OVF) | 同样是故障转移的变种。它会优先选择权重最高的服务器,但当该服务器的活跃连接数超过其权重时,会将请求"溢出"到下一台服务器,以防止单点过载。 | 需要防止高权重服务器因过载而性能下降,同时又要保障它优先处理的混合场景。 |
6.LVS多端口轮询问题解决方案
核心原理
使用 Linux 内核的 Netfilter 防火墙标记 功能,将访问 VIP 的 80 和 443 端口的流量打上同一个标记(如 6666),然后让 LVS 对这个标记进行负载均衡,而不是分别对 80 和 443 端口做负载均衡。
在 RS1 和 RS2 上安装 HTTPS 支持
bash
#在 RS1 和 RS2 上同时执行
# 1. 安装 mod_ssl 模块(提供 HTTPS 支持)
[root@RS1+RS2 ~]# dnf install mod_ssl -y
# 2. 重启 httpd 服务加载 SSL 模块
[root@RS1+RS2 ~]# systemctl restart httpd
在 LVS 调度器上分别配置 HTTP 和 HTTPS 的轮询策略
bash
# 在 vsnode (LVS 调度器) 上执行
# 1. 清空所有已有规则
[root@vsnode boot]# ipvsadm -C
# 2. 配置 HTTP 虚拟服务 (80端口)
[root@vsnode boot]# ipvsadm -A -t 192.168.0.200:80 -s rr
[root@vsnode boot]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10:80 -g
[root@vsnode boot]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20:80 -g
# 3. 配置 HTTPS 虚拟服务 (443端口)
[root@vsnode boot]# ipvsadm -A -t 192.168.0.200:443 -s rr
[root@vsnode boot]# ipvsadm -a -t 192.168.0.200:443 -r 192.168.0.10:443 -g
[root@vsnode boot]# ipvsadm -a -t 192.168.0.200:443 -r 192.168.0.20:443 -g
# 4. 查看当前规则
[root@vsnode boot]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.200:80 rr
-> 192.168.0.10:80 Route 1 0 0
-> 192.168.0.20:80 Route 1 0 0
TCP 192.168.0.200:443 rr
-> 192.168.0.10:443 Route 1 0 0
-> 192.168.0.20:443
轮询错误
bash
[root@client ~]# curl 192.168.0.200;curl -k https://192.168.0.200
RS2 - 192.168.0.20
RS2 - 192.168.0.20
#当上述设定完成后http和https是独立的service,轮询会出现重复问题
解决方案:火墙标记
bash
[root@vsnode boot]# iptables -t mangle -A PREROUTING -d 192.168.0.200 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 6666
[root@vsnode boot]# ipvsadm -A -f 6666 -s rr
[root@vsnode boot]# ipvsadm -a -f 6666 -r 192.168.0.10 -g
[root@vsnode boot]# ipvsadm -a -f 6666 -r 192.168.0.20 -g
#测试:在客户端
[root@client ~]# curl 192.168.0.200;curl -k https://192.168.0.200
RS2 - 192.168.0.20
RS1 - 192.168.0.10
7. LVS会话粘滞解决方案
核心原理
持久连接(Persistence)让 LVS 在指定时间内,将来自同一个源 IP 的所有请求都转发到同一台真实服务器。
配置持久连接
bash
[root@vsnode ~]# ipvsadm -E -f 6666 -s rr -p 1
[root@vsnode ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
FWM 6666 rr persistent 1
-> 192.168.0.10:0 Route 1 0 0
-> 192.168.0.20:0
测试
bash
[root@client ~]# curl 192.168.0.200
RS1 - 192.168.0.10
[root@client ~]# curl 192.168.0.200
RS1 - 192.168.0.10
#观察
root@vsnode ~]# watch -n 1 ipvsadm -Lnc
IPVS connection entries
pro expire state source virtual destination
TCP 01:56 FIN_WAIT 172.25.254.99:42420 192.168.0.200:80 192.168.0.20:80
IP 00:57 ASSURED 172.25.254.99:0 0.0.26.10:0 192.168.0.20:0
TCP 01:54 FIN_WAIT 172.25.254.99:46216 192.168.0.200:80 192.168.0.20:80
TCP 01:55 FIN_WAIT 172.25.254.99:46222 192.168.0.200:80 192.168.0.20:80