ipvsadm如何开始使用?,ipvsadm怎么安装

ipvsadm是Linux内核中IPVS模块的管理工具,用于配置四层负载均衡规则,是LVS(Linux Virtual Server)的核心组件,能在内核态直接转发数据包,性能远高于同场景下的用户态代理工具。

ipvsadm是什么:内核态负载均衡的核心工具

IPVS(IP Virtual Server)内置于Linux内核,工作在TCP/UDP协议栈层面,ipvsadm是它的命令行管理接口,负责增删改查虚拟服务器(VIP)、真实服务器(RS)以及调度策略,与Nginx、HAProxy等七层代理相比,ipvsadm不解析应用层协议,只做报文的转发和改写,因此吞吐量极高,响应延迟极低。

IPTV接线及配置
加载中
IPTV接线及配置

行业共识认为,在纯四层分发场景下,ipvsadm的转发性能远优于常规用户态软件,单机承载百万级并发连接是可行的,这也是为什么电商、直播、金融等对稳定性要求极高的业务,普遍采用“LVS(ipvsadm)+ Keepalived”作为入口负载均衡层。

ipvsadm命令详解与安装配置教程

安装与基础环境检查

大多数Linux发行版默认未安装ipvsadm,需要手动操作,以CentOS/RHEL系为例:

yum install -y ipvsadm

Debian/Ubuntu系使用:

apt install -y ipvsadm

安装完成后,先确认内核是否加载了IPVS相关模块:

lsmod | grep ip_vs

若没有输出,手动加载:

modprobe ip_vs
modprobe ip_vs_rr
modprobe ip_vs_wrr
modprobe ip_vs_sh

查看当前内核支持的调度算法:

cat /etc/haproxy/../ipvsadm -h

更直接的方式是执行ipvsadm不带参数,若显示空列表则说明运行正常。

核心命令参数速览

ipvsadm的参数体系不复杂,熟练后五分钟内即可完成一套完整的负载均衡配置,常用命令如下:

  • 添加虚拟服务器:ipvsadm -A -t 192.168.1.100:80 -s rr
    • -A 表示新增,-t 指定TCP协议和VIP端口,-s 指定调度算法(rr为轮询)。
  • 添加真实服务器:ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.11:80 -g
    • -a 追加真实服务器,-r 指定RS地址,-g 使用DR模式,-m 为NAT模式,-i 为TUN模式。
  • 删除规则:ipvsadm -D -t 192.168.1.100:80 删除整条虚拟服务器规则,ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.11:80 仅移除某台RS。
  • 查看当前配置:ipvsadm -L -n 以数字形式显示规则和连接状态,ipvsadm -L --stats 查看流量统计,

    ipvsadm如何开始使用?,ipvsadm怎么安装

    ipvsadm -L --rate 查看速率统计。

  • 清空所有规则:ipvsadm -C
  • 保存规则:ipvsadm-save > /etc/sysconfig/ipvsadm
  • 恢复规则:ipvsadm-restore < /etc/sysconfig/ipvsadm

一段完整的配置流程示例如下:

# 定义一个VIP为192.168.1.100的HTTP虚拟服务,使用加权轮询
ipvsadm -A -t 192.168.1.100:80 -s wrr
# 添加三台后端真实服务器,权重分别为1、2、3
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.11:80 -g -w 1
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.12:80 -g -w 2
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.13:80 -g -w 3
# 查看结果
ipvsadm -L -n

注意,DR模式下需要确保真实服务器的lo接口绑定VIP并关闭ARP响应,否则回包会异常。

ipvsadm调度算法选型指南

静态与动态算法对比

ipvsadm内置十种调度算法,分为两大类,静态算法不关心后端实时负载,纯按预设规则分发;动态算法会参考当前连接数,如下表所示:

算法 类型 核心逻辑 适用场景
rr 静态 轮询,平均分配 后端性能一致时
wrr 静态 加权轮询 后端性能差异明显
sh 静态 源地址哈希 需要会话保持
dh 静态 目标地址哈希 缓存集群
lc 动态 最少连接 长连接服务
wlc 动态 加权最少连接 最常用,默认推荐
lblc 动态 基于最少连接+源地址 兼具会话保持
lblcr 动态 带复制的lblc 缓存数据库场景
sed 动态 最少期望延迟 响应时间差异大
nq 动态 永不排队 快速响应场景

场景选择建议

HTTP短连接服务多数情况下使用wrr或wlc即可,如果后端服务器配置参差不齐,wrr配合合理的权重比rr效果更可控。

数据库读写分离或Redis集群这类长连接应用,建议使用lc或wlc,避免连接数堆积在某一台机器上。

需要会话保持的Web应用,若不想引入额外的Cookie机制,sh按源IP哈希是最直接的做法,但要注意,当某台RS宕机时,哈希到该机器的用户会全部受影响,此时可配合后端Session共享解决。

ipvsadm如何开始使用?,ipvsadm怎么安装

业内专家指出,调度算法本身没有绝对优劣,关键看业务模型,选错算法导致的连接倾斜,往往比流量突增更容易拖垮后端。

ipvsadm常见问题与实战排查

连接数查看与超时调整

有段时间线上反馈某些请求特别慢,排查后发现是ipvsadm的TCP超时设置过短,导致长连接被内核提前回收,查看超时参数:

ipvsadm -L --timeout

默认输出类似:

Timeout (tcp tcpfin udp): 900 120 300

意思是TCP空闲连接900秒回收,TCP FIN_WAIT状态120秒回收,UDP 300秒回收,若业务层有心跳保活,可适当调大:

ipvsadm --set 3600 120 300

持久连接配置

部分场景需要同一源IP在固定时间内始终分发到同一台RS,即使调度算法是rr,ipvsadm通过-p参数实现:

ipvsadm -A -t 192.168.1.100:80 -s rr -p 600

-p 600表示持久连接超时600秒,该参数在需要记录用户登录态、且后端未做Session共享时非常有用。

规则不生效的排查路径

配置完成后访问VIP不通,建议按以下顺序排查:

  1. 确认内核转发开关:sysctl net.ipv4.ip_forward 需为1。
  2. 确认防火墙放行:iptables/firewalld是否拦截了VIP的流量。
  3. 确认RS回包路由:DR模式下RS的lo是否绑定VIP,且ARP抑制是否配置正确。
  4. 确认RS端口健康:在后端本机执行curl 127.0.0.1:端口验证服务正常。
  5. 查看ipvsadm连接表:ipvsadm -L -n --stats,若连接数持续增长但RS无流量,大概率是转发模式配置错误。

ipvsadm与nginx在负载均衡场景下的区别

两者常被放在一起比较,但定位完全不同,ipvsadm是内核态四层转发,nginx是用户态七层代理,具体差异如下:

  • 性能:ipvsadm直接在内核空间处理报文,避免了用户态与内核态之间的拷贝,单机吞吐量通常比nginx高一个数量级。
  • 功能:nginx能基于URL、Header、Cookie做精细化路由,ipvsadm只能基于IP和端口。
  • 健康检查:nginx自带丰富的后端健康检查机制,ipvsadm本身不具备该能力,需要依赖Keepalived或第三方脚本实现。
  • 数据修改:nginx可以在转发时改写请求头、压缩响应,ipvsadm对报文内容不做任何修改。

实际架构中,两者通常不是替代关系而是配合关系,客户端流量先经过ipvsadm分发到多台nginx,再由nginx完成七层路由转发到后端应用集群,这种组合兼顾了四层的高性能和七层的灵活性。

ipvsadm如何开始使用?,ipvsadm怎么安装

ipvsadm的keepalived高可用配置要点

单台LVS调度器本身存在单点故障风险,生产环境必须搭配Keepalived实现主备切换,配置核心思路是:主备节点共享一个VIP,Keepalived通过VRRP协议检测对方存活,主节点故障时VIP自动漂移到备节点。

关键配置项包括:

  • virtual_ipaddress:指定VIP地址,需与ipvsadm中配置的VIP一致。
  • virtual_server 块内定义RS列表和调度算法,Keepalived会自动调用ipvsadm生成规则,无需手动执行ipvsadm -A。
  • real_server 块内可配置HTTP_GET或TCP_CHECK健康检查,这样后端RS宕机时,Keepalived会自动将其从ipvsadm规则中摘除。

一个简化的TCP健康检查配置示例:

virtual_server 192.168.1.100 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    protocol TCP
    real_server 192.168.1.11 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

注意,Keepalived接管后,不要再手动执行ipvsadm命令修改规则,否则主备切换时配置可能被覆盖。

关于ipvsadm调度算法和conntrack关联的常见问题解答

问题:ipvsadm如何查看当前活跃连接数?

执行ipvsadm -L -n --stats可以查看每台RS的活跃连接数(ActiveConn)和非活跃连接数(InactConn),活跃连接指当前正在传输数据的连接,非活跃连接指已建立但空闲的连接,若InactConn持续偏高,说明后端应用处理完请求后未及时关闭连接,需检查应用层的连接池设置。

问题:ipvsadm在华为云和简米云这类云环境上能用吗?

云厂商的负载均衡产品(如简米云SLB、华为云ELB)底层也基于类似LVS的技术实现,但普通云服务器默认禁用了IPVS模块的某些操作权限,若坚持自建,需确认云安全组是否放行VIP流量,且云服务器的网卡是否支持绑定辅助私网IP,多数情况下,云平台自带的负载均衡服务比自建ipvsadm更省心,因为其健康检查、弹性伸缩和DDoS防护能力是开箱即用的。

问题:ipvsadm规则重启后丢失怎么办?

使用ipvsadm-save > /etc/sysconfig/ipvsadm保存规则,并在系统服务中启用ipvsadm自启动,以systemd为例,执行systemctl enable ipvsadm即可,若分发规则完全由Keepalived管理,则无需手动保存,Keepalived启动时会自动重建虚拟服务器和RS列表。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/556841.html

赞 (0)
if函数在Excel中是什么意思,具体怎么用
上一篇 2026年8月8日 13:28
IIS部署安装的具体步骤是什么,有哪些注意事项
下一篇 2026年8月8日 13:30

相关推荐

  • 如何正确、规范地书写服务器地址格式,如何配置

    服务器地址的标准格式由协议、主机地址和端口三部分组成,http://192.168.1.1:8080 或 ssh://user@host:22,任何网络应用都遵循这一通用结构,服务器地址格式怎么写 常见错误与对比服务器地址的通用组成根据 IETF 发布的 URI 标准 RFC 3986,完整的服务器地址格式为……

    2026年7月15日
    800
  • AI语言大模型原理是什么?大模型是如何训练出来的

    AI语言大模型的核心原理是基于Transformer架构,通过海量文本数据训练,利用注意力机制捕捉上下文关联,从而以概率预测的方式生成自然语言,从“猜词游戏”到“逻辑推理”的技术跃迁很多人误以为大模型像人类一样拥有真正的意识或理解能力,但业内专家指出,其本质更像是一个极其复杂的“超级猜词机器”,它并不真正懂得什……

    2026年6月15日
    2400
  • 哪家AI大模型测评机构靠谱?国内权威AI大模型测评机构排名

    选择AI大模型测评机构时,核心在于考察其测试场景的真实性、评测标准的透明度以及是否提供针对企业私有化部署的专项评估,而非仅仅关注基准测试的绝对高分,在2026年的今天,人工智能技术已经从“能用”迈向了“好用”和“敢用”的关键阶段,对于企业决策者、技术负责人以及资深开发者而言,面对市场上琳琅满目的开源与闭源模型……

    2026年6月13日
    2810
  • ISBN在线查询的方法是什么?,怎么查最快

    想在线查询ISBN,不用下载任何软件,直接打开中国国家版本馆的“中国国家书目”或国家图书馆的“联机公共目录查询系统”就能免费搞定,但如果你要买书或查具体版本,用电商平台和豆瓣的扫码功能其实更快更准,先搞清楚ISBN到底是什么号码很多人把ISBN和条形码搞混,ISBN是国际标准书号(International S……

    2026年8月20日
    400
  • 安第斯AI大模型是什么?安第斯AI大模型有哪些功能

    安第斯AI大模型是专为垂直行业打造的深度定制化工具,它通过私有化部署和专属数据训练,解决了通用大模型在专业领域知识不足、数据隐私泄露及响应延迟高的核心痛点,安第斯AI大模型的核心优势解析在2026年的企业数字化转型浪潮中,通用型大模型虽然功能强大,但在面对特定行业的复杂逻辑时往往显得力不从心,安第斯AI大模型正……

    2026年6月16日
    2600
  • 服务器安装win10是否可行,服务器装win10需要什么配置?

    服务器可以装Win10,但前提是你能接受稳定性和驱动兼容性上的妥协,从技术层面看,只要硬件支持,Win10完全能在服务器上跑起来,但为什么绝大部分生产环境仍选择Windows Server?这涉及内核优化、驱动生态、更新策略和长期运维成本,本文将从实际场景出发,拆解服务器装Win10的利弊、适用边界以及具体操作……

    2026年7月28日
    1500
  • 服务器客户端字符集不一致怎么办?如何设置utf8编码

    服务器与客户端字符集不一致是导致乱码的根本原因,解决核心在于确保数据库、后端服务、前端页面及HTTP传输头统一使用UTF-8编码,在Web开发的全链路中,字符集(Character Set)就像是一种通用的语言协议,如果服务器用中文说话,而客户端只听得懂英文,结果就是满屏的“???”或者奇怪的符号,这不仅仅是技……

    2026年7月7日
    18000
  • AI大模型为何如此火爆?AI大模型最新应用案例

    技术突破带来的能力质变早期的AI助手往往局限于简单的问答或文本生成,容易陷入逻辑混乱或事实错误,随着多模态融合技术的成熟,现代大模型已经能够同时理解并处理文本、图像、音频甚至视频数据,业内专家指出,这种多模态能力的提升,使得AI在处理复杂任务时的准确率有了显著改善,在医疗影像分析场景中,AI不仅能识别病灶,还能……

    2026年6月13日
    4710
  • 服务器主机休眠功能如何正确开启,有哪些好处

    服务器主机休眠功能并非万能节能方案,其适用性取决于业务负载类型和恢复时间要求,盲目开启可能带来性能抖动,服务器休眠功能怎么设置?从BIOS到系统的完整指南不少运维人员在接手老旧服务器或规划绿色数据中心时,都会搜索“服务器休眠功能怎么设置”这个关键词,服务器休眠与普通PC的睡眠模式有本质区别,配置路径也因硬件平台……

    2026年7月25日
    900
  • 如何跨命名空间删除指定命名空间下ingress,怎么删除

    删除指定namespace下的ingresses,最直接的方法是使用kubectl delete ingress命令配合-n参数指定namespace,即可精准删除目标资源,无需切换上下文,kubectl delete ingress 指定namespace:基础操作与实现原理很多运维同学第一次接触Kubern……

    2026年8月11日
    500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注