ipvsadm 安装在 LVS 调度器(Director Server)所在的那台 Linux 服务器上,用来向内核 IPVS 模块写入负载均衡规则,后端真实服务器不用装。 这个工具本质上是一个管理命令,不是独立服务,装错位置会导致规则无法生效,下面按部署角色、安装步骤、高可用组合、云环境成本、与 Nginx 的对比几个维度展开说明。
ipvsadm到底装在哪台服务器上
ipvsadm 的管理对象是 Linux 内核里的 IPVS 框架,IPVS 只在负责流量分发的调度器上运行,所以安装位置很明确。
- 调度器(Director Server):必须安装 ipvsadm,客户端请求先到达这台服务器,再由内核 IPVS 按规则转发给后端。
- 真实服务器(Real Server):通常不需要安装 ipvsadm,它们只运行实际业务,Nginx、Apache、Tomcat,只需正常提供端口。
- 备用调度器:如果做了主备高可用,两台调度器都要装 ipvsadm,规则通过 keepalived 或手工同步保持一致。
具体到常见的三种工作模式,架构不同,但安装位置不变。
- LVS-DR 模式:调度器只改写 MAC 地址,回包由真实服务器直接返回给客户端,ipvsadm 依然只装在调度器上。
- LVS-NAT 模式:调度器同时做地址转换,进出流量都经过调度器,ipvsadm 同样只装在调度器上。
- LVS-TUN 模式:调度器把请求封装后发给后端,真实服务器解包后直接响应,ipvsadm 的安装位置没有变化。
很多新手会问:真实服务器上要不要装 ipvsadm 来接收转发?答案是不用,真实服务器只需配置好 VIP 和 ARP 抑制,具体操作跟 ipvsadm 无关。
Linux服务器安装ipvsadm详细步骤
安装过程不复杂,但需要确认内核模块是否正常,近年来,主流 Linux 发行版的内核已经默认包含 IPVS 相关模块,一般不需要重新编译内核。
安装前检查
- 确认操作系统为 Linux,内核版本 2.6 以上。
- 使用 root 或具备 sudo 权限的账号操作。
- 确认 yum 或 apt 软件源可用。
CentOS/RHEL 系列安装命令
yum install -y ipvsadm

安装完成后加载 IPVS 内核模块,生产环境常用以下模块:
modprobe ip_vs modprobe ip_vs_rr modprobe ip_vs_wrr modprobe ip_vs_sh
查看模块是否加载成功:
lsmod | grep ip_vs
如果输出包含 ip_vs 相关行,说明内核支持正常。
Ubuntu/Debian 系列安装命令
apt update apt install -y ipvsadm
同样需要加载模块,命令与 CentOS 一致:
modprobe ip_vs modprobe ip_vs_rr
验证安装结果
查看 ipvsadm 版本:
ipvsadm -v
能正常输出版本号,说明命令可用,此时还没有任何转发规则,可以用以下命令查看空规则表:
ipvsadm -L -n
添加一条测试规则
假设调度器对外提供 VIP 为 168.1.100,后端真实服务器为 168.1.10,使用 DR 模式分发 HTTP 流量。
ipvsadm -A -t 192.168.1.100:80 -s rr ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.10:80 -g
-A:添加虚拟服务-t:指定 TCP 协议和 VIP 端口-s rr:使用轮询调度算法-a:添加真实服务器-r:指定真实服务器地址和端口-g:DR 模式(NAT 模式用-m,TUN 模式用-i)
保存规则以便重启后恢复:
ipvsadm-save > /etc/sysconfig/ipvsadm
不同发行版保存路径可能不同,Ubuntu 可以重定向到任意可读文件,再用 ipvsadm-restore 恢复。
ipvsadm和keepalived需要装在同一台服务器上吗
做高可用时,ipvsadm 和 keepalived 通常装在同一台调度器上,但它们的分工并不相同。
- keepalived 负责调度器之间的主备选举,以及后端真实服务器的健康检查。
- ipvsadm 负责手工写入或查看 IPVS 转发规则。
- keepalived 本身可以直接操作内核 IPVS,不依赖 ipvsadm 命令也能生成规则。
生产环境里建议两个都装,原因很实际:当 keepalived 自动生成的规则出现问题时,运维人员需要靠

ipvsadm -L -n 来排查,没有这个命令会非常被动。
如果只有单台调度器,不需要主备切换,只装 ipvsadm 完全够用,真实服务器既不装 ipvsadm,也不装 keepalived,除非打算在本机做额外的健康检查脚本。
云服务器安装ipvsadm要花钱吗
ipvsadm 本身是开源软件,安装不产生任何授权费用,花钱的部分在于云服务器实例、带宽和公网 IP。
国内云服务器安装 ipvsadm 时,软件源里通常已经包含该包,直接 yum install -y ipvsadm 或 apt install -y ipvsadm 即可,不需要额外购买商业许可证。
- 软件授权费用:0 元。
- 云服务器实例费用:按规格计费,安装 ipvsadm 不会额外增加费用。
- 带宽费用:调度器处于流量入口,带宽消耗可能较大,这部分按云厂商标准收费。
- 测试成本:如果只是学习或验证,可以使用按量付费的低配实例,用完释放。
需要提醒的是,云服务器安全组要放行对应的 VIP 端口,例如用 168.1.100:80 做转发,云平台安全组和系统防火墙都要放行 80 端口,否则客户端请求根本到不了调度器。
ipvsadm和nginx负载均衡哪个好?部署位置对比
这个问题经常出现在选型阶段,答案不是谁更好,而是看业务层和流量规模,行业共识认为,LVS+keepalived 是 Linux 环境下高可用四层负载均衡的主流组合,而 Nginx 在七层 HTTP 路由上更灵活。
| 对比维度 | ipvsadm/LVS | Nginx 负载均衡 |
|---|---|---|
| 工作层级 | 内核态四层转发 | 用户态七层代理 |
| 转发性能 | 高,适合大流量入口 | 有协议解析开销,适合中小流量 |
| 支持协议 | TCP/UDP | HTTP/HTTPS 为主 |
| 部署位置 | 独立调度器服务器 | 可独立部署,也可与 Web 同机 |
| 规则管理 | 命令行,直白但相对繁琐 |
配置文件,支持复杂路由 |
| 健康检查 | 依赖 keepalived 或其他脚本 | 自带被动检查和主动检查 |
如果流量主要走 TCP 四层,比如数据库代理、TCP 长连接,用 ipvsadm 更合适,如果要做按 URL 路径分发、缓存、SSL 卸载,Nginx 更顺手,生产环境里常见做法是:外层用 LVS+ipvsadm 做四层入口,后层用 Nginx 做七层业务路由。
部署位置常见误区
- 把 ipvsadm 装在真实服务器上:真实服务器不需要安装,除非它同时承担调度器角色,否则规则无法正确下发。
- 只在调度器上装 keepalived,不装 ipvsadm:虽然 keepalived 能管理 IPVS,但缺少 ipvsadm 命令行会导致排障和备份困难。
- 把 ipvsadm 装在 Windows 服务器上:ipvsadm 只支持 Linux 内核,Windows 环境要用其他负载均衡组件。
- 装完不加载内核模块:只安装命令包,没有
modprobe ip_vs,规则写入时会报错或无法转发。
把安装位置搞对,后续配置才有意义,调度器上 ipvsadm -L -n 能看到规则,真实服务器上查不到任何 ipvsadm 相关信息,这是正常现象。
Q&A 模块
ipvsadm安装在哪个服务器上才生效?
装在 LVS 调度器所在的 Linux 服务器上才生效,调度器负责接收客户端流量,并在内核 IPVS 模块中执行转发规则,如果装在真实服务器上,由于真实服务器不参与流量分发,规则不会起作用。
ipvsadm需要装在每台真实服务器上吗?
不需要,真实服务器只需要运行真实业务,并正确配置 VIP 和 ARP 行为,每台真实服务器都安装 ipvsadm 不仅没有意义,还可能造成管理混乱,安装范围应严格限制在调度器和备用调度器上。
ipvsadm安装在云服务器和物理服务器有区别吗?
安装命令和内核模块加载方式没有区别,都是通过 yum 或 apt 安装,并用 modprobe ip_vs 加载模块,区别在于云服务器需要在安全组放行转发端口,物理服务器则需要考虑交换机、网卡绑定和机房网络策略,云服务器安装 ipvsadm 后,配置规则前必须检查云平台安全组。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/806737.html

