LVS安装配置详解
LVS(Linux Virtual Server)是Linux环境下实现负载均衡的经典方案,通过内核模块IPVS实现四层(TCP/UDP)负载均衡,结合Keepalived实现高可用,广泛应用于Web服务器、应用服务器等场景,本文将详细介绍LVS的安装、配置及常见问题,帮助读者快速部署负载均衡环境。

LVS
LVS通过主控节点(Master)和后端节点(Backend)协同工作实现负载均衡:主控节点负责分发请求至后端节点,后端节点提供实际服务,其核心组件包括:
- IPVS:内核模块,负责请求分发和会话保持;
- Keepalived:实现主控节点高可用,当主控节点故障时,备节点接管虚拟IP(VIP);
- 后端服务器:接收分发请求并提供服务。
环境准备
硬件要求
- 主控节点:至少1台,配置双网卡(用于内网通信和虚拟IP);
- 后端节点:至少2台,配置与主控节点内网互通的网络接口。
软件要求
- 操作系统:CentOS 7/8(或Ubuntu 18.04+),需安装EPEL源(CentOS)或 Universe源(Ubuntu);
- 核心组件:
ipvsadm(负载均衡工具)、keepalived(高可用工具)、net-tools(网络工具)。
网络规划
| 组件 | 内网IP | 虚拟IP(NAT/DR模式) |
|——|——–|————————|
| 主控节点1 | 192.168.1.100 | 192.168.1.200(NAT) / 192.168.1.200(DR) |
| 后端节点1 | 192.168.1.10 | – |
| 后端节点2 | 192.168.1.11 | – |
LVS安装
安装依赖包
- CentOS 7/8:
sudo yum install -y epel-release net-tools ipvsadm keepalived
- Ubuntu 18.04+:
sudo apt update && sudo apt install -y net-tools ipvsadm keepalived
- CentOS 7/8:
启用内核参数
编辑/etc/sysctl.conf文件,确保以下参数生效(需重启后生效):net.ipv4.ip_forward = 1 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.all.arp_ignore = 2 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.all.arp_filter = 1 net.ipv4.conf.all.route_localnet = 1
重启内核参数:
sudo sysctl -p
LVS配置
LVS支持三种负载均衡模式,根据业务需求选择:

- NAT模式:四层负载均衡,适合HTTP/HTTPS等无状态服务,后端服务器使用私有IP;
- DR模式:四层负载均衡,后端服务器需配置共享IP,数据包不经过主控节点转发;
- TUN模式:四层负载均衡,通过隧道连接后端服务器,适合跨网段场景。
NAT模式配置(以WRR调度为例)
主控节点配置:
# 创建虚拟服务(虚拟IP:80,WRR调度) ipvsadm -A -t 192.168.1.200:80 -s wrr # 添加后端服务器(NAT模式,端口80) ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.10:80 -m # 添加第二个后端服务器 ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.11:80 -m
后端节点配置:
- 确保后端节点网络可达主控节点;
- 防火墙允许80端口(如CentOS):
sudo firewall-cmd --add-port=80/tcp --permanent sudo firewall-cmd --reload
DR模式配置(以RR调度为例)
主控节点配置:
# 创建虚拟服务(虚拟IP:80,RR调度) ipvsadm -A -t 192.168.1.200:80 -s rr # 添加后端服务器(DR模式,权重1) ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.10:80 -d 192.168.1.10 -w 1 # 添加第二个后端服务器 ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.11:80 -d 192.168.1.11 -w 1
后端节点配置:
- 在后端节点配置网络接口(如eth0)使用虚拟IP(192.168.1.200),并设置网关为虚拟IP:
sudo ifconfig eth0:0 192.168.1.200 netmask 255.255.255.255 up sudo route add -host 192.168.1.200 dev eth0:0
- 防火墙允许80端口。
- 在后端节点配置网络接口(如eth0)使用虚拟IP(192.168.1.200),并设置网关为虚拟IP:
TUN模式配置(以RR调度为例)
主控节点配置:
# 创建虚拟服务(虚拟IP:80,RR调度) ipvsadm -A -t 192.168.1.200:80 -s rr # 添加后端服务器(TUN模式,隧道接口为eth0) ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.10:80 -i eth0 -w 1 # 添加第二个后端服务器 ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.11:80 -i eth0 -w 1
后端节点配置:
- 在后端节点安装
iproute2并配置隧道接口:sudo apt install -y iproute2 sudo ip tunnel add sit0 mode sit remote 192.168.1.100 local 192.168.1.10 sudo ip link set sit0 up sudo ip addr add 192.168.1.200/32 dev sit0
- 防火墙允许80端口。
- 在后端节点安装
测试与验证
访问虚拟IP:
在客户端执行:curl http://192.168.1.200
若配置正确,请求会随机分配至后端节点(可通过后端服务器的访问日志验证)。

会话保持:
使用curl多次访问,检查后端节点的访问日志(如/var/log/httpd/access_log),若会话ID一致,说明LVS会话保持生效。
常见问题与优化
无法访问虚拟IP:
- 检查内核参数是否启用IP转发(
net.ipv4.ip_forward=1); - 验证
ipvsadm配置是否正确(使用ipvsadm -L查看规则); - 确保后端节点网络可达主控节点。
- 检查内核参数是否启用IP转发(
负载均衡效果不明显:
- 调整调度算法(如从RR改为WRR),根据业务需求优化权重分配;
- 监控后端节点的CPU/内存使用率,避免过载。
FAQs
Q:LVS NAT模式和DR模式的主要区别是什么?
- NAT模式:主控节点通过NAT将请求转发至后端服务器,后端服务器使用私有IP,适合无状态服务;
- DR模式:后端服务器配置与主控节点相同的虚拟IP,数据包直接发送至后端,无需主控节点转发,性能更高,但后端需配置共享IP。
Q:如何实现LVS的高可用?
使用Keepalived实现主控节点虚拟IP漂移:- 在主控节点配置
keepalived,设置虚拟IP(如192.168.1.200)漂移至备节点; - 当主节点故障时,备节点自动接管虚拟IP,客户端无需修改配置即可访问服务。
- 在主控节点配置
通过以上步骤,可快速部署LVS负载均衡环境,实现高并发下的服务扩展和高可用保障。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/215836.html


