温馨提示×

Ubuntu Sniffer如何实现负载均衡

小樊
45
2026-01-02 13:17:43
栏目: 云计算

概念澄清 “Sniffer”通常指网络嗅探/抓包工具(如 tcpdump、Wireshark、netsniff-ng),用于被动监听与分析流量,并不具备流量分发或连接调度的能力,因此不能直接实现负载均衡。若你的目标是“在 Ubuntu 上做负载均衡”,应选择专门的负载均衡方案,如 LVS(IPVS)NginxHAProxy,或用于链路冗余/带宽汇聚的 NIC Bonding。下面给出在 Ubuntu 上的主流做法与最小实践示例。

可行方案与快速示例

  • LVS + Keepalived(四层高性能转发,适合大流量)

    1. 在负载均衡器安装工具:sudo apt-get install ipvsadm keepalived
    2. 开启转发:sudo sysctl -w net.ipv4.ip_forward=1
    3. 配置 Keepalived(/etc/keepalived/keepalived.conf 关键片段):
      vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 virtual_ipaddress { 192.168.0.254/24 } }
      virtual_server 192.168.0.254 80 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 0 protocol TCP real_server 10.0.0.11 80 { weight 1 TCP_CHECK { connect_timeout 3 } } real_server 10.0.0.12 80 { weight 1 TCP_CHECK { connect_timeout 3 } } }
    4. 后端服务器(DR 模式)开启内核参数:echo 1 | sudo tee /proc/sys/net/ipv4/conf/all/arp_ignore; echo 2 | sudo tee /proc/sys/net/ipv4/conf/all/arp_announce;并配置 VIP 到回环(lo:0),如 ifconfig lo:0 192.168.0.254 netmask 255.255.255.255 up。
    5. 启动服务:sudo systemctl start keepalived
      说明:LVS 提供内核级转发,支持 NAT/DR/TUN 模式;配合 Keepalived 可做 VIP 漂移与健康检查。
  • Nginx(七层反向代理与负载均衡,易用)

    1. 安装:sudo apt-get install nginx
    2. 配置(/etc/nginx/conf.d/lb.conf):
      upstream backend { server 10.0.0.11:80; server 10.0.0.12:80; }
      server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
    3. 校验并生效:sudo nginx -t && sudo systemctl reload nginx
      说明:支持轮询、最少连接、IP 哈希等算法,适合 HTTP/HTTPS 与微服务网关场景。
  • HAProxy(四层/七层通用,强健康检查)

    1. 安装:sudo apt-get install haproxy
    2. 配置(/etc/haproxy/haproxy.cfg 片段):
      frontend http-in bind *:80 mode http default_backend servers
      backend servers mode http option httpchk GET /health server s1 10.0.0.11:80 check server s2 10.0.0.12:80 check
    3. 启动:sudo systemctl start haproxy
      说明:适合高可用与细粒度控制(ACL、限流、重试等)。
  • NIC Bonding(多网卡链路聚合/冗余,非应用层负载均衡)

    1. 安装工具:sudo apt-get install ifenslave
    2. 加载模块:echo bonding | sudo tee -a /etc/modules
    3. 配置(/etc/network/interfaces 片段,以 mode=4 802.3ad 为例):
      auto bond0 iface bond0 inet static address 192.168.0.201 netmask 255.255.255.0 gateway 192.168.0.1 bond-slaves eno1 eno2 bond-mode 802.3ad bond-miimon 100
    4. 交换机需启用 802.3ad LACP;mode=1 为主备,mode=0/5/6 为不同策略的负载/冗余组合。
      说明:提升链路吞吐与可靠性,不等同于服务请求分发。

如何选择

  • 面向公网/内网四层高并发:优先 LVS + Keepalived(DR/NAT),性能与可扩展性强。
  • HTTP/HTTPS 与微服务:优先 Nginx/HAProxy,路由与观测能力更友好。
  • 仅提升服务器出/入站链路能力:使用 NIC Bonding(注意交换机配合与模式选择)。

排错与最佳实践

  • 健康检查与回滚:为后端配置 HTTP/ TCP 健康检查,异常自动摘除;变更前灰度与回滚预案。
  • 会话保持:按业务选择源 IP 哈希或应用层会话粘滞,避免登录/购物车状态异常。
  • 监控告警:采集 连接数、队列、5xx、RT、后端存活 等指标,设置阈值告警。
  • 高可用:负载均衡器自身建议 VRRP/Keepalived 双机热备,避免单点。
  • 安全:对外暴露最小化端口,启用 TLS/ACL/限速,隐藏后端拓扑与版本信息。

0