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短连接服务多数情况下使用wrrwlc即可,如果后端服务器配置参差不齐,wrr配合合理的权重比rr效果更可控。

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

需要会话保持的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_GETTCP_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

相关推荐

  • IPv6双栈的正确开启方法是什么,需要注意什么?

    IPv6双栈是在网络设备上同时启用IPv4和IPv6协议栈,实现两种协议共存和平滑过渡,开启双栈需要网络运营商、路由器、终端设备同步支持,现阶段多数操作系统默认开启,路由器端需手动配置,IPv6双栈如何开启?从路由器到终端的完整配置双栈的本质是让设备同时拥有IPv4和IPv6地址,既能访问传统IPv4网站,也能……

    2026年8月10日
    900
  • 服务器引擎的性能和性价比怎么样,哪个品牌好?

    服务器引擎是服务器的核心计算单元,直接决定数据处理能力与系统稳定性,选型需根据负载需求、预算规模和未来扩展综合考量,服务器引擎是什么?它如何影响服务器性能服务器引擎,通俗讲就是服务器的大脑,负责执行所有计算指令,在硬件层面,它通常指代服务器的中央处理器,也就是我们常说的CPU,但服务器引擎的概念比普通CPU更聚……

    2026年7月21日
    700
  • MySQL数据库慢日志如何查询?,数据库慢查询怎么优化

    查询MySQL慢日志的核心方法是开启slow_query_log并设置long_query_time,然后通过mysqldumpslow或直接查询mysql.slow_log表获取慢查询语句,对于纯真IP数据库的查询,这类IP范围查询常因缺少索引出现在慢日志中,优化的关键是建立复合索引或使用空间索引,MySQL……

    2026年8月19日
    300
  • 机器学习如何做风险评估?机器学习风险评估模型有哪些

    风险评估机器学习通过整合多源异构数据与动态算法模型,能够显著降低误报率并提升对潜在欺诈或信用违约的预测精度,是目前企业构建智能风控体系的核心技术底座,传统的规则引擎往往依赖人工设定的静态阈值,面对日益复杂的黑产手段显得力不从心,机器学习技术通过从海量历史数据中自动挖掘非线性关系,实现了从“事后拦截”向“事前预警……

    2026年7月9日
    4400
  • isset和empty与充值和续费怎么区分,有什么区别?

    isset和empty在PHP中分别用于判断变量是否定义与非空,而充值与续费对应业务中的首次购买与周期延长,理解这两组区别能帮助开发者避免逻辑错误,运营者优化收益结构,isset和empty的用法区别定义与返回值isset是一个语言结构,用于检查变量是否已设置并且值不为NULL,当变量存在且值不是NULL时返回……

    2026年8月8日
    400
  • 房产网站开发公司哪家专业靠谱?,价格合理吗?

    选择房产网站开发公司,核心要看其技术栈、行业案例和售后服务,而非单纯比价格,房产网站开发公司哪家好——三个核心判断维度你判断一家开发公司是否靠谱,不能只看官网的炫酷页面,真正的价值藏在技术底层、实战经验和长期服务里,下面这三个维度,是行业内普遍认可的筛选标准,技术实力与开发语言技术选型直接决定网站未来的扩展性和……

    2026年7月29日
    500
  • 服务器安装win10是否可行,服务器装win10需要什么配置?

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

    2026年7月28日
    1500
  • 如何修改IIS网站主目录和已绑定域名?,IIS怎么绑定域名

    修改IIS网站绑定的域名,只需在IIS管理器中选择对应站点,通过“绑定”功能调整域名、IP和端口,即可完成切换,同时网站主目录路径保持不变或按需调整,IIS网站主目录怎么设置?理解它与域名绑定的关系网站主目录是IIS站点存放网页文件的根文件夹,所有访问请求默认指向该目录,域名绑定则是将域名与站点的IP、端口、主……

    2026年7月31日
    600
  • 大模型Top-P采样原理是什么?大模型Top-P采样参数怎么设置

    大模型的Top-P采样是一种通过设定概率阈值来动态过滤低概率候选词,从而在生成内容的多样性和连贯性之间取得平衡的核心算法机制,在理解这一概念之前,我们需要先厘清大语言模型(LLM)生成文本的基本逻辑,模型并不是在“思考”,而是在进行一场极其复杂的概率预测游戏,当你输入一个提示词后,模型会基于海量训练数据,为下一……

    2026年6月22日
    4100
  • AI大模型哪家强?2026最新大模型排行榜

    整合所有AI大模型并非将多个模型物理连接,而是通过智能路由、多智能体协作及统一API网关,构建一个能根据任务自动选择最优模型的分布式智能系统,从而实现效率与成本的双重优化,在2026年的技术语境下,单一的大语言模型已经无法满足复杂业务场景的需求,企业和个人用户不再纠结于“哪个模型最好”,而是关注“如何用好所有模……

    2026年6月14日
    2700

发表回复

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