跳转到内容

DIY 代理农场:如何搭建与配置

Гайды
DIY 代理农场:如何搭建与配置

自建(DIY)代理农场需要搭建一套专用硬件——通常由 4G/LTE 调制解调器或单板计算机组成——并配置专门的软件,把流量通过多个网络接口转发出去。这样的架构为大规模网页抓取、社交媒体自动化和广告核验提供了私有基础设施,让您完全掌控 IP 轮换与数据隐私。

移动代理农场的硬件要求

最有效的 DIY 代理农场都建立在移动网络之上,因为 4G/LTE IP 地址由成千上万真实用户共用,极难被列入黑名单。要搭建一个 20 通道的移动代理农场,您需要一套面向 7×24 小时稳定运行的特定硬件组件。

  • 单板计算机(SBC):Raspberry Pi 4(8GB 内存)是业界标准。它能承载 Linux 环境并高效管理 USB 总线。规模更大的农场(50 台以上调制解调器)建议使用独立 x86 服务器或 Intel NUC,以避免 CPU 瓶颈。
  • USB 4G 调制解调器:兼容性最好的是华为 E3372(尤其是非 HiLink 版本,可控性更强)和中兴 MF833V。这类设备支持通过 AT 命令直接进行串口通信,从而触发 IP 轮换。
  • 带供电的 USB 集线器:普通无源集线器会出问题。每台 4G 调制解调器在数据传输峰值时最高可拉到 500mA 至 1A。每 10 台调制解调器需要配备工业级、带独立供电的 USB 集线器(如 Orico 或 TP-Link),专用功率至少 60W 到 100W。
  • 散热系统:调制解调器在负载下发热明显。请使用 120mm USB 风扇或机架式散热方案,防止因过热降频而导致连接中断。

如果您觉得硬件投入和维护负担过重,GProxy 提供企业级移动代理和住宅代理,可在没有物理基础设施成本的前提下,带来同等水平的信任度与匿名性。

DIY 代理农场:如何搭建与配置

操作系统与网络配置

推荐使用 Ubuntu Server 22.04 LTS,因为它对 USB 调制解调器和网络协议栈的驱动支持最完善。系统装好后,首要难题是避免系统把每台调制解调器都当成默认网关,否则会引发路由冲突。

关闭调制解调器自动配置

现代 Linux 发行版使用 NetworkManager,它往往会试图自动接管 USB 调制解调器。在代理农场中,必须禁用它,才能通过配置文件或自定义脚本保持手动控制。

sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager

usb_modeswitch 的作用

大多数 USB 调制解调器最初会挂载为虚拟光驱以安装驱动。您必须使用 usb_modeswitch 工具把它们切换到"调制解调器模式",系统才会将其识别为网络接口(例如 eth1、wwan0)。

项目 DIY 方案 商业替代方案(GProxy)
搭建耗时 10–20 小时 即时开通
前期投入 $500 - $2,000(硬件) $0(按量付费)
维护 手动排查硬件/软件故障 由服务商托管
IP 池规模 受限于自有 SIM 卡数量 数百万轮换 IP

配置代理服务器软件

当硬件被识别为网络接口后,您还需要一个代理服务器来接收请求并通过指定的调制解调器转发。3proxy 是最轻量、最灵活的工具。

3proxy 配置示例

创建一个 3proxy.cfg 文件。以下配置开启了两个不同的代理端口(3128 和 3129),分别绑定到特定的网络接口(eth1 和 eth2)。

daemon
nserver 8.8.8.8
nserver 8.8.4.4
nscache 65536
timeouts 1 5 30 60 180 1800 15 60

# 身份验证
users "admin:CL:strongpassword123"
auth strong

# 将 3128 端口的流量走 1 号调制解调器
external 192.168.8.100
internal 0.0.0.0
proxy -p3128

# 将 3129 端口的流量走 2 号调制解调器
flush
external 192.168.9.100
internal 0.0.0.0
proxy -p3129

在这套配置中,192.168.8.100192.168.9.100 是分配给 USB 调制解调器的静态 IP。此时 Raspberry Pi 上的每个端口都相当于通往不同移动 IP 地址的网关。

DIY 代理农场:如何搭建与配置

用 Python 实现 IP 轮换自动化

移动代理农场的主要优势之一,是可以让调制解调器重新接入蜂窝网络,从而按需更换 IP 地址。具体做法是向调制解调器的串口发送 AT 命令。

下面的 Python 脚本演示了如何触发华为调制解调器重新连接,迫使 ISP 为设备分配新的 IP 地址。

import serial
import time

def rotate_ip(port='/dev/ttyUSB0'):
    try:
        ser = serial.Serial(port, 115200, timeout=1)
        # 检查连接
        ser.write(b'AT\r\n')
        time.sleep(1)

        # 断开网络连接
        ser.write(b'AT^NDISDUP=1,0\r\n')
        print(f"Disconnecting {port}...")
        time.sleep(5)

        # 重新接入网络
        ser.write(b'AT^NDISDUP=1,1,"internet"\r\n')
        print(f"Reconnecting {port} for new IP...")
        time.sleep(10)

        ser.close()
    except Exception as e:
        print(f"Error: {e}")

if __name__ == "__main__":
    # 示例:为第一台调制解调器轮换 IP
    rotate_ip('/dev/ttyUSB0')

把这段脚本接入 Web API,就能通过一次简单的 HTTP 请求完成 IP 轮换,效果类似 GProxy 等专业服务提供的"Rotation API"。

扩容与性能优化

当规模超过 10 台调制解调器后,您会遇到 Linux 内核限制和供电问题。要维持农场稳定,必须针对高并发优化系统。

内核调优

修改 /etc/sysctl.conf,以支撑更多并发连接并减少 time-wait 状态。这些设置可避免重度抓取任务中常见的"Too many open files"或"Connection refused"错误。

  • net.ipv4.ip_local_port_range = 1024 65535 — 扩大可用端口范围。
  • net.core.somaxconn = 1024 — 增大入站连接队列长度。
  • fs.file-max = 1000000 — 提高打开文件描述符的上限。
  • net.ipv4.tcp_tw_reuse = 1 — 允许内核复用处于 TIME_WAIT 状态的套接字。

带宽管理

移动网络是非对称的。下行也许有 50 Mbps,上行却可能被限制在 5 Mbps。如果在一台 Raspberry Pi 上跑 20 台调制解调器,USB 2.0/3.0 总线带宽就可能成为瓶颈。把调制解调器分散到多台 SBC 上,再用千兆交换机互联,才是专业的扩容方式。

安全与远程管理

DIY 农场等于是通往您本地网络的一道入口。放任其不设防是重大风险。您必须用 iptablesnftables 制定严格的防火墙规则,确保只有授权 IP 才能访问代理端口。

此外,由于移动 IP 是动态的,您需要一套跟踪每台调制解调器健康状况的手段。用 Prometheus 和 Grafana 搭建一个简易监控面板,可以直观查看每张 SIM 卡的延迟、丢包和流量消耗,从而在故障调制解调器或被限速的 SIM 影响业务之前就发现问题。

如果管理硬件、散热、SIM 卡套餐和内核调优的复杂度已经开始分散您在主营业务上的精力,GProxy 可以让您平滑迁移到托管环境。使用 GProxy,您将获得高速、地域多样的 IP 池,可用率 99.9%,无需再维护物理硬件。

要点总结

搭建 DIY 代理农场是一个复杂但值得的技术项目,能让您对自己的数字足迹拥有无与伦比的掌控力。您已经了解了必备的硬件要求、基于 3proxy 的软件配置,以及如何用 Python 脚本实现 IP 轮换自动化。

  • 供电优先:务必使用工业级带供电的 USB 集线器;供电不足是调制解调器不稳定的头号原因。
  • 关注温度:7×24 小时运行必须配备主动散热,以防硬件老化和连接中断。
  • 软件灵活性:选用 3proxy,因为它资源占用低,并且能把指定端口映射到指定网络接口。
  • 评估投资回报:对静态、长期的项目而言,DIY 农场具有成本优势;但若追求大规模和多地域覆盖,GProxy 这类专业服务在可靠性和运维成本上更有优势。
support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.