介绍

您手中拿着的是一个详细的逐步指南,将教会您如何从零开始在迷你PC Raspberry Pi或Orange Pi上构建和配置一个经济实惠的移动代理节点。我们将详细讲解整个过程:从选择板卡、调制解调器和电源,到操作系统、驱动程序和程序的安装,再到代理服务器的配置、自动启动、稳定性和测试。最终结果是,您将拥有一个基于4G/5G调制解调器的本地或远程可用的HTTP(S)/SOCKS5移动代理,能够重新启动会话以获取新的移动IP,并具备基本的监控和日志系统。

适合对象:适合初学者,尤其是首次接触Raspberry Pi或Orange Pi的人,想要一份无“漏洞”的清晰指南。同时,我们也将为那些希望充分利用硬件的进阶用户提供一些技巧。这份指南适合家庭实验室、移动产品测试部门、公司内部基础设施以及教育项目。

事先您需要了解的:具备使用Linux终端的基本技能,如复制粘贴命令,能够在microSD卡上写入系统映像并连接电缆。其他的我们会逐一解释。我们会有意避免使用专业术语,或者立刻对其进行解释。

所需时间:具备所有配件的情况下,2至4小时,包括操作系统的安装和更新。如果网络较慢,下包和刷机可能会耗费更多时间。

快速跳转各部分: 跳转到选择板卡、调制解调器和电源, 跳转到代理服务器的设置

⚠️ 注意:仅在遵守现行法律的范围内使用本指南。请勿使用代理进行违法行为,也不要尝试绕过限制或封锁。遵守与您的通信运营商的合同条款。

建议:如果您需要一个无需自建的移动IP云管理方案,可以考虑专业服务。比如,mobileproxy.space可作为了解这类解决方案及其功能的参考,您可以部分重复其功能于自己的节点。

准备工作

在开始之前,请确保您拥有所有工具、访问权限和软件。本节将避免您在过程中因缺少材料而中断。

所需工具、程序和权限

  • 可以在Windows、macOS或Linux下记录系统映像的电脑。
  • microSD卡读卡器。
  • 用于下载操作系统映像和软件的互联网连接。
  • SSH客户端的终端(Windows:内置PowerShell或任何SSH客户端;macOS/Linux:内置终端)。
  • 用于写入映像的程序:Raspberry Pi Imager或任何写入microSD卡的工具。

系统要求

  • 迷你计算机:Raspberry Pi 3B/3B+/4B/5或Orange Pi(如Orange Pi PC、Orange Pi Zero2、Orange Pi 3 LTS、Orange Pi 5)。建议使用不低于Raspberry Pi 3B+或相当的Orange Pi。
  • 存储:16–32GB A1/A2级的microSD卡。为了稳定性,推荐使用32GB。
  • 电源:对于Raspberry Pi 4 — 5V 3A USB-C;对于Raspberry Pi 3 — 5V 2.5A micro-USB;对于Orange Pi — 根据型号,一般为5V 3A USB-C或5V 2–3A DC。
  • 移动调制解调器:4G/5G USB调制解调器或以mini-PCIe/M.2形式存在于USB适配器中的调制解调器。常用型号有:华为E3372(Stick或HiLink)、ZTE MF833、Quectel EC25/EG25-G/EP06/EM12、Sierra Wireless EM7455/EM7565(通过USB适配器)。对于5G:Quectel RM500Q/RM520N(通过带供电和天线的M.2-USB适配器)。
  • 包含有效数据传输套餐的SIM卡。请向运营商确认APN和限制。
  • 以太网线或Wi-Fi接入,以便完成初步设置。

需要提前下载和安装的内容

  1. 下载Raspberry Pi Imager或准备好写入映像的工具。
  2. 对于Raspberry Pi:使用Raspberry Pi OS Lite(Bookworm, 64位)构建最简系统。对于Orange Pi:下载适合的Armbian(基于Debian 12,内核6.x),选择无图形界面的Lite版本。
  3. 准备SSH客户端(例如,标准的OpenSSH)。
  4. 收集您运营商的APN参数:APN的名称,必要时的登录和密码。例如:APN — internet,登录 — 空,密码 — 空。准确数据请在运营商文档中查找。

创建备份

如果您重新使用已配置的microSD卡,请先备份映像。在Windows上可以使用任何读卡器工具;在macOS/Linux上使用dd命令创建文件映像。将备份保存在外部硬盘上。

建议:记录所有命令和设置的笔记。这样在重新设置或迁移到其他板时可以节省时间。

基础概念

简单易懂的关键术语

  • 移动代理 — 通过移动网络(4G/5G)上网的代理服务器。网站看到的是移动IP。
  • ModemManager — 管理移动调制解调器的Linux服务,通过标准接口(QMI、MBIM、PPP、AT命令)实现。
  • QMI/MBIM/NCM — Linux与调制解调器的连接方式。QMI和MBIM是现代快速的方式;PPP是过时的慢方式;NCM是某些调制解调器的以太网仿真。
  • 3proxy — 一个轻量级的代理服务器,支持HTTP、HTTPS(CONNECT)、SOCKS5、授权和日志记录。
  • IP变更 — 通过重启调制解调器会话(或“飞行模式”)来获取新的移动IP,运营商没有保证:可能会返回相同地址。

工作原理的基本原则

迷你计算机通过USB连接到移动调制解调器。调制解调器在网络中注册,激活移动接口并从运营商获取IP。然后,在迷你计算机上启动代理服务器,监听指定端口并接受来自本地网络或路由器端口转发的连接。客户端的流量通过调制解调器传输。根据请求,您可以重启调制解调器会话以轮换IP。

开始之前需要理解的重要内容

  • 电源至关重要:USB调制解调器在高峰时消耗高达0.5–1 A。需要优质电源和好的USB线缆。对于5G调制解调器,考虑使用带外部电源的主动USB集线器。
  • 散热:Raspberry Pi 4/5和强大的Orange Pi会发热。请安装散热器和风扇。
  • 信号覆盖:速度和稳定性取决于LTE/NR信号的质量。使用外部天线和正确的放置方法。
  • 合法性:严格遵守法律和运营商的规则。

⚠️ 注意:不要尝试修改IMEI或其他设备标识符。这是违法的。本指南中的所有设置都是合法的,并基于Linux的标准工具。

步骤1:选择迷你计算机、调制解调器和电源

步骤目标

选择兼容和可靠的硬件组件,以避免在开始时遇到问题。

详细逐步指南

  1. 选择板卡。如果您希望获得尽可能稳定的起步 — 选择内存为2–4GB的Raspberry Pi 4B。如果需要现代强劲的性能 — 选择Raspberry Pi 5。替代品:Orange Pi 3 LTS或Orange Pi 5(请注意Armbian映像的差异)。
  2. 选择USB调制解调器。为了简便,选择华为E3372 Stick模式或ZTE MF833;为了灵活性和速度,选择Quectel EG25-G或EP06/EM12通过带电源和天线的USB适配器;对于5G,选择Quectel RM520N-GL与USB 3.0适配器和外部电源。
  3. 检查频率。确认调制解调器和运营商支持您所在地区所需的LTE/5G频段。
  4. 准备电源。对于Raspberry Pi 4,5V 3A优质电源和好线缆;对于5G调制解调器,使用5V 2–3A的主动USB集线器。
  5. 获取32GB A1/A2的microSD卡。可靠品牌的卡将减少故障的概率。
  6. 准备散热设备:机壳内的散热器和风扇。
  7. 如果调制解调器没有附带,请购买天线。Quectel通常需要2×LTE/NR天线SMA。

重要事项

  • 供电的稳定性决定了调制解调器在负荷下是否会断线。
  • 天线和放置会改善信号和最终速度。
  • 兼容性:Raspberry Pi OS和Armbian通过ModemManager和驱动程序(qmi_wwan/cdc_mbim/option)支持大多数调制解调器。

建议:如果不确定调制解调器的兼容性,请选择Quectel EG25-G作为4G兼容性和稳定性的“黄金标准”。

预期结果

您的桌面上组装了一个完整的组件:迷你计算机、存储卡、电源、USB调制解调器和SIM卡、天线、线缆和散热设备。

可能出现的问题及其解决方案

  • 问题:调制解调器发热严重。解决方案:使用主动集线器,使用USB延长线将调制解调器移到远离PC的位置,并在适配器上添加散热器。
  • 问题:房间内信号弱。解决方案:使用外部天线,将调制解调器移至窗边,使用长USB线缆。
  • 问题:不确定使用华为E3372的Stick模式还是HiLink模式。解决方案:我们将为这两种类型配置;若使用HiLink会有不同的连接管理方式。

✅ 检查:检查组件齐全与否,确认符合要求。记录调制解调器的IMEI和型号以便清点(仅做记录,不要修改IMEI)。

步骤2:安装操作系统和基本软件包

步骤目标

部署最新的无图形操作系统,启用SSH,更新系统并安装后续所需的工具。

详细逐步指南

  1. 写入映像。插入microSD卡到读卡器,打开Raspberry Pi Imager或您的工具。选择Raspberry Pi OS Lite(Bookworm, 64位)用于Raspberry Pi,或者选择适合的Armbian Lite用于Orange Pi。指定存储卡并点击写入。等待完成和验证。
  2. 启用SSH。对于Raspberry Pi:写入后,取出并重新插入存储卡到PC。在启动分区内创建一个名为ssh的空文件,无扩展名。对于Armbian,SSH默认情况下是启用的。
  3. 首次启动。将microSD插入板卡,接入以太网到路由器,接通电源。等待1-2分钟以完成系统的首次部署。
  4. 找到板卡的IP地址。请在路由器上查看DHCP客户端列表,找到Raspberry Pi/Orange Pi设备。或者使用网络扫描器。假设地址为192.168.1.50。
  5. 通过SSH连接。在Windows上打开PowerShell,输入:ssh pi@192.168.1.50(对于Raspberry Pi,默认密码为raspberry,如果没在映像中修改)。对于Armbian,首次登录将要求设置密码并创建用户。
  6. 更新系统。依次执行:sudo apt update,然后sudo apt full-upgrade -y。请等待完成后重启:sudo reboot。再通过SSH连接。
  7. 安装基本软件包:sudo apt install -y modemmanager usb-modeswitch usbutils psmisc jq curl socat netcat-traditional。对于QMI/MBIM调制解调器,添加:sudo apt install -y libqmi-utils libmbim-utils
  8. 安装网络工具:sudo apt install -y iproute2 iptables ufw ca-certificates
  9. 设置时区:sudo timedatectl set-timezone Europe/Moscow(或您所在城市)。启用时间同步:sudo timedatectl set-ntp true

重要事项

  • 使用无图形的Lite镜像。它们消耗更少的资源,稳定性更好。
  • 在重大更新内核和固件后进行重启。
  • 保管好访问权限:更改默认密码并将其记录在安全位置。

建议:指定静态主机名:sudo hostnamectl set-hostname mobi-proxy-01。这将简化网络中的导航。

预期结果

迷你计算机可以通过SSH访问,已更新,安装了ModemManager、QMI/MBIM工具及网络工具。

可能出现的问题及其解决方案

  • 问题:无法通过SSH连接。解决方案:检查启动分区是否启用了ssh文件(针对Raspberry Pi)、网络线缆和路由器上的DHCP表。
  • 问题:更新卡在某一处。解决方案:耐心等待,然后检查存储卡是否已满。有时可以通过sudo reboot重新启动。如果反复卡在同一处,重写映像。
  • 问题:软件包不可用。解决方案:检查日期/时间、DNS及通过命令ping 1.1.1.1ping debian.org的路径。修复网络。

✅ 检查:执行mmcli -L。虽然此时可能没有调制解调器,但命令应能运作,并且不应返回未找到ModemManager的错误。

步骤3:连接并配置移动调制解调器

步骤目标

使调制解调器在系统中稳定识别、注册到网络并在Linux上建立移动连接。

详细逐步指南

  1. 将调制解调器连接至板卡。对于耗电较大的调制解调器,使用主动USB集线器。安装SIM卡后再连接。
  2. 检查设备识别情况:lsusb。您应能看到调制解调器名称(华为、ZTE、Qualcomm、Quectel)的行。保存输出以作记录。
  3. 检查端口:dmesg | tail -n 50。应出现/dev/ttyUSBx或网络接口,如wwan0cdc-wdm0usb0eth1,具体视模式而定。
  4. 检查ModemManager是否识别调制解调器:mmcli -L。应出现调制解调器,例如/org/freedesktop/ModemManager1/Modem/0
  5. 输入PIN以解锁调制解调器:mmcli -m 0 --pin=1234(如果设置了PIN,请替换为您的PIN)。建议提前在手机中关闭PIN。
  6. 设置APN。对于默认配置:mmcli -m 0 --simple-connect="apn=internet,user=,password=",如有需要请输入mmcli -m 0 --3gpp-operator-format=long。对于MBIM:使用mbimcli -d /dev/cdc-wdm0 --attach-packet-service,之后通过ModemManager进行配置 — 通常使用mmcli --simple-connect会更简单。
  7. 检查状态:mmcli -m 0。在Status部分,您应能看到state: connected,而在Bearer部分显示连接参数。
  8. 检查接口:ip a。应出现类型为wwan0usb0/ncm0的接口,具体视模式。而后执行ip route以查看通过移动接口的默认路由。
  9. 检查互联网连接:curl -4 ifconfig.mecurl -4 ipinfo.io/ip(或任何类似服务)。您应看到公开的移动IP。

重要事项

  • 调制解调器模式: E3372可以作为HiLink(路由器)或Stick(调制解调器)工作。在HiLink模式下,接口如eth1/usb0,带有内部分配的地址,通过调制解调器的Web界面管理。在Stick模式下则通过QMI/NCM/PPP来管理。我们建议使用Stick模式,或完整的QMI/MBIM调制解调器(Quectel)。
  • 没有必要的情况下,不使用第三方补丁:现代内核支持大多数调制解调器。
  • 天线:连接两根MIMO天线以增强4G/5G稳定性。

建议:对于Quectel调制解调器,通常主要AT端口为/dev/ttyUSB2。命令echo -e "AT+CSQ\r" | socat - /dev/ttyUSB2,crnl可以显示信号强度。如果CSQ在15及以上,会比较好。

建议:如果您使用的是HiLink调制解调器,请首先在浏览器中打开其Web界面,访问ip a中显示的地址(通常为192.168.8.1),然后启用移动数据并检查连接状态。

预期结果

调制解调器成功注册并连接到网络。curl命令返回公开的移动IP。

可能出现的问题及其解决方案

  • 问题:在mmcli -L中未出现调制解调器。原因:模式不正确或电源不足。解决方案:通过主动USB集线器连接;对于华为,确保其处于Stick模式,安装usb-modeswitch(已安装),然后重启。
  • 问题:设备被PIN锁定。解决方案:在手机中对SIM卡关闭PIN;或者通过mmcli -m 0 --pin=XXXX解锁。
  • 问题:没有互联网连接。原因:APN错误。解决方案:向运营商确认APN;某些套餐可能需要登录/密码,使用--simple-connect提供参数。
  • 问题:重连时IP不改变。原因:运营商可能缓存地址。解决方案:等待超时或执行完整的重新注册(请参照以下轮换部分)。

✅ 检查:执行mmcli -m 0ip a。您应能看到状态为connected,并且有活动接口。curl -4 ifconfig.me应返回移动IP。

步骤4:配置代理服务器

步骤目标

安装和配置轻量级代理服务器3proxy,通过移动调制解调器分发互联网接入。

详细逐步指南

  1. 安装3proxy。在Debian/Ubuntu类系统中,通常可用该软件包:sudo apt install -y 3proxy。如果软件包不可用,可以通过源代码构建或选择tinyproxy/dante作为替代。我们将继续讨论3proxy。
  2. 创建目录用于配置和日志(如果没有的话):sudo mkdir -p /etc/3proxy /var/log/3proxy。检查您的构建中配置文件存放的位置(通常为/etc/3proxy/3proxy.cfg)。
  3. 创建配置文件:sudo nano /etc/3proxy/3proxy.cfg并插入基本配置:daemon nscache 65536 config /etc/3proxy/3proxy.cfg monitor /etc/3proxy/3proxy.cfg log /var/log/3proxy/3proxy.log D logformat "%d %H:%M:%S %u %C:%c %R:%r %O %I %T" rotate 10 users user:CL:strongpassword auth strong allow user proxy -p3128 -a socks -p1080 flush。说明:我们启用守护进程、日志记录,指定用户user和密码strongpassword,在3128端口启动HTTP代理和在1080端口启动SOCKS5。如果需要,可以更改端口和凭据。
  4. 限制IP访问(建议)。在启动代理之前添加行:allow user * 192.168.0.0/16或特定的信任IP/子网;或使用防火墙。简化的行示例:allow user,仅允许授权访问。
  5. 允许绑定到所有接口。默认情况下,服务监听0.0.0.0。如果要仅侦听本地网络 — 使用参数-i与迷你计算机在LAN的IP,例如:proxy -p3128 -a -i192.168.1.50. 使用SOCKS时同理:socks -p1080 -i192.168.1.50
  6. 创建systemd单元(如果未通过软件包创建)。打开:sudo nano /etc/systemd/system/3proxy.service。插入:[Unit] Description=3proxy After=network-online.target Wants=network-online.target [Service] Type=simple ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy.cfg Restart=always RestartSec=3 LimitNOFILE=65536 [Install] WantedBy=multi-user.target。保存文件,然后执行:sudo systemctl daemon-reloadsudo systemctl enable --now 3proxy
  7. 检查状态:systemctl status 3proxy。您应看到状态为active (running)。如果出错 — 查看journalctl -u 3proxy -e
  8. 配置UFW。启用防火墙:sudo ufw default deny incomingsudo ufw default allow outgoingsudo ufw allow 22/tcp(SSH),sudo ufw allow 3128/tcpsudo ufw allow 1080/tcp如有需要。启动UFW:sudo ufw enable。检查规则:sudo ufw status
  9. 在本地网络的客户端检查对代理的访问。指定迷你计算机的IP地址和3128端口(HTTP)或1080端口(SOCKS5),输入用户名/密码user/strongpassword。打开IP识别网站,确认显示为移动IP。

重要事项

  • 不要让代理开放。始终使用授权和IP限制或防火墙。
  • 将密码保存在密码管理器中。定期更改它们。
  • 日志:定期检查/var/log/3proxy/3proxy.log

建议:如果您只想使用SOCKS5,删除行proxy -p3128 -a,保留socks -p1080。这将减少攻击面。

建议:对于多个用户,通过冒号将它们添加到users部分,例如:users alice:CL:pass1 bob:CL:pass2

预期结果

3proxy作为服务成功启动,可以通过所需端口访问,并受到密码和防火墙的保护。

可能出现的问题及其解决方案

  • 问题:服务未启动。原因:配置文件错误。解决方案:检查语法,将其简化到最小配置,然后逐个添加选项。
  • 问题:客户端无法连接。原因:UFW阻塞。解决方案:检查ufw status和获准端口的正确性。
  • 问题:授权未通过。解决方案:检查users部分,确保没有多余空格,重启服务。

✅ 检查:在客户端指定代理服务器,进行身份验证并打开显示IP的网站。应显示调制解调器的移动IP。

步骤5:设置自动启动并提高稳定性

步骤目标

确保所有组件在重启后自动启动,添加连接自我恢复和安全的IP轮换。

详细逐步指南

  1. 检查3proxy的自动启动。我们已经启用了systemctl enable --now 3proxy。请确保在sudo reboot后服务启动。
  2. 增加服务以在启动时连接调制解调器。尽管ModemManager会自行启动Bearer通过--simple-connect,但将其包装成一个小的服务是更安全的。创建文件/usr/local/bin/cell-up.sh,内容为:通过mmcli -m 0 --simple-connect="apn=internet"连接并检查状态。使文件可执行:sudo chmod +x /usr/local/bin/cell-up.sh
  3. 创建单元/etc/systemd/system/cell-up.service,内容为:[Unit] Description=Cellular bring-up After=ModemManager.service network-online.target Wants=network-online.target [Service] Type=oneshot ExecStart=/usr/local/bin/cell-up.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target。应用命令:sudo systemctl daemon-reload && sudo systemctl enable --now cell-up
  4. IP轮换的脚本。创建/usr/local/bin/cell-rotate.sh。对于QMI/MBIM/Quectel的方案1:断开、等待后再连接:mmcli -m 0 --disconnect; 然后mmcli -m 0 --set-power-state=low,暂停3–5秒,然后mmcli -m 0 --set-power-state=on再使用--simple-connect连接。对于AT支持,发送AT+CFUN=1,1至端口/dev/ttyUSB2以重启调制解调器。若使用HiLink,请通过调制解调器的HTTP API进行断开/连接(如果可用)。添加日志和10-30秒的注册超时。
  5. 确保轮换正常工作。执行sudo /usr/local/bin/cell-rotate.sh并比较curl -4 ifconfig.me的结果前后。根据需要规划cron任务,但请勿过于频繁轮换,以免违反运营商规则。
  6. 调制解调器的看门狗。创建/usr/local/bin/cell-watchdog.sh,每60秒ping一个可靠的地址(例如1.1.1.1),在连续3个失败时执行cell-rotate.sh。创建systemd单元,类型设为simple并Restart=always
  7. 日志监控。请确保启用3proxy日志里边的轮换,已在参数中指定rotate 10。对于系统日志,请确保journald具有默认的存储限制。
  8. UFW的细致调整。仅开放所需的端口。如果通过互联网访问,请对路由器设置端口转发,并在3proxy或UFW级别进行IP限制。

重要事项

  • 轮换间隔不应过于频繁。这会影响稳定性,并可能违反运营商的政策。
  • 安全性:对于远程访问,仅使用封闭的IP列表和强密码。
  • 日志和指标:由于日志量限制,避免填满microSD。

建议:如果您有多个调制解调器,请通过udev规则为它们命名,以便在重启时不会混淆。例如,根据序列号创建符号链接。

建议:对于5G调制解调器,务必使用主动USB集线器和优质电源。这是高负荷下稳定工作的关键。

预期结果

系统在启动时自动提升移动连接和代理服务,如发生故障,则自动重启连接,恢复服务。

可能出现的问题及其解决方案

  • 问题:轮换未改变IP。原因:运营商返回同一池。解决方案:将断开/连接间隔加长至30-60秒;执行调制解调器的完整断电重启;必要时更改接入点(Band)或位置。
  • 问题:看门狗重启过于频繁。解决方案:提高触发阈值(例如,5-7次失败检查)和检查间隔。

✅ 检查:重启迷你计算机。确保在1-2分钟内3proxy可用,移动互联网活跃,轮换脚本确实改变IP。

步骤6:测试、监控、记录

步骤目标

检查最终配置,测量基本性能,设置简单的节点状态观察。

详细逐步指南

  1. 检查端口可用性。客户端执行:打开带代理配置的浏览器,访问任意网站。或者使用工具:curl -x http://user:strongpassword@IP:3128 http://example.com。对于SOCKS5:curl --socks5 user:strongpassword@IP:1080 http://example.com
  2. 检查IP是否变化。比较执行curl -4 ifconfig.me的结果,前后是否一致。
  3. 评估速度。使用speedtest-cli(安装:sudo apt install -y speedtest-cli)通过客户端的代理或直接在设备上进行。请注意速度取决于运营商与信号。
  4. 检查3proxy日志:tail -f /var/log/3proxy/3proxy.log。应显示有关连接、用户和流量的记录。
  5. 检查系统日志:journalctl -u ModemManager -ejournalctl -u 3proxy -e。确保没有出现错误。
  6. 开启基本遥测。可以规划对于信号强度的AT命令(例如,AT+CSQ)的测量并记录到文件中,以分析信号趋势。

重要事项

  • 现实的期待:移动通道经常会波动。请提前计划好预留。
  • 日志记录将帮助您处理不当事宜并优化配置。

建议:如果为同一设备使用多个代理,请分配不同的端口和用户,并在日志名称中标记节点以避免混淆。

预期结果

通过代理连接正常工作,IP显示为移动IP,轮换有效,日志记录和系统日志能正常写入。

可能出现的问题及其解决方案

  • 问题:速度较慢。原因:信号弱或基站拥堵。解决方案:更换调制解调器位置,使用外部天线,尝试其他运营商。
  • 问题:负荷下不稳定。原因:电源不足。解决方案:更换更强的电源,使用主动集线器,确保优质线缆,并开启散热设备。

✅ 检查:通过代理获取移动IP,确保视频等简单网站快速打开。运行Speedtest并与预期对比。

结果验证

检查清单

  • SSH访问迷你计算机正常。
  • ModemManager识别调制解调器,连接自动建立。
  • 3proxy作为服务启动,监听记录的端口。
  • 代理的访问受到密码和防火墙的限制。
  • IP轮换在部分情况下改变公共地址。
  • 日志记录正常,系统不超温、不掉电。

测试方法

  • 通过代理打开2-3个IP识别网站。比较在轮换前后的地址。
  • 通过代理执行一系列短请求,评估延迟:curl -w "%{time_connect} %{time_starttransfer}\n" -o /dev/null -s http://example.com
  • 重启设备,确保所有服务自行启动。

成功指标

  • 重启后恢复到完全功能状态的时间少于2分钟。
  • IP变换的成功率不低于50-70%(取决于运营商)。
  • 负荷下的稳定速度为1-2Mbit/s,数小时内无波动。

常见错误及解决方案

  • 问题:代理在没有密码的情况下可从互联网访问。原因:未配置授权和UFW。解决方案:在3proxy中启用auth strongusers,并在UFW中限制访问。
  • 问题:调制解调器时常掉线。原因:电源不足或过热。解决方案:使用主动USB集线器,更换更强的电源、散热及看门狗以执行重启脚本。
  • 问题:重启后mmcli未找到调制解调器。原因:初始化顺序问题。解决方案:在cell-up.service中添加After=ModemManager.service依赖,添加延迟并检查udev规则。
  • 问题:轮换不产生新IP。原因:运营商政策。解决方案:增加断开/连接之间的间隔,改变位置;使用HiLink时,执行完整的调制解调器重新注册。
  • 问题:日志溢出microSD。原因:过于详细的日志记录。解决方案:降低详细程度,启用日志轮换和自动清理,将日志迁移到/var/log并进行轮换。
  • 问题:5G调制解调器速度慢。原因:使用USB 2.0或线缆质量差。解决方案:接入USB 3.0,使用短的屏蔽线,启用集线器,必要时对调制解调器进行固件更新。
  • 问题:端口冲突。原因:其他服务已在这些端口上监听。解决方案:在3proxy和UFW中更改端口,检查ss -tulpen

高级功能

进阶设置

  • 多调制解调器配置。通过主动集线器连接2-4个调制解调器。为每个调制解调器创建独立的3proxy实例,使用不同的端口和凭据。通过ip ruleip route强制流量分发(策略路由),如果需要明确分流。
  • 轮换的API。启动轻量HTTP服务,通过socat或tiny web server,通过GET请求调用cell-rotate.sh。添加基本授权及IP限制。
  • 接口绑定。在3proxy配置中使用-e选项用于外向IP/接口,如果有多个活跃通道并需要强制通过特定调制解调器进行连接。

优化

  • 文件系统稳定性。启用zram或将高负载日志迁移至/tmp或外部SSD。
  • 降低延迟。将调制解调器放近窗户,使用优质天线,关闭系统中的其他多余守护进程。
  • 固件更新。必要时通过厂商的官方软件更新调制解调器至最新稳定版本。始终备份并确保更新过程顺利。

还有什么可以做的

  • 与控制面板集成。实现简单的HTML页面,提供“连接”、“断开连接”、“轮换”的按钮,并显示状态。
  • 用户负载均衡。如果有多个调制解调器,可以手动将用户分配到不同3proxy实例的端口中,以实现负载均匀。
  • 与现成解决方案对比。如果需要可扩展性、计费自动化、灵活的API,建议关注专业服务,如mobileproxy.space,作为适应您本地环境的功能的参考。这可以帮助您找出未来的发展方向。

建议:将所有脚本保存在/usr/local/bin,并标记版本和日期。这样将便于维护。

建议:在本指南及文档中添加内部书签,例如“见步骤4以配置3proxy”。

常见问题解答

  1. 可以将多少调制解调器连接到一台迷你PC?通常,依赖于电源和集线器,通常是2至4个而不成问题。确保每个调制解调器都能获取足够的电流,并使用主动集线器。
  2. 是否可以不使用以太网,仅使用Wi-Fi?可以。将迷你PC连接到Wi-Fi,确保路由器识别设备。代理将通过Wi-Fi IP提供服务。
  3. 能否只使用SOCKS5?可以。只在3proxy中保留socks行,删除HTTP代理。这样将简化配置。
  4. 入口是否需要白色静态IP?如果仅限于您的本地网络,则不需要。如果需要从互联网访问,请在路由器上配置端口转发,并限制IP和密码的访问。请考虑提供商的政策。
  5. IP轮换的频率是多少?安全范围内为每小时不超过几次。过于频繁的轮换会降低稳定性,并可能违反运营商的政策。
  6. 能否在旧的Raspberry Pi 2上部署?技术上是可行的,但性能会受到限制。推荐使用Pi 3B+或更新版本。
  7. 如果3proxy在存储库中缺失怎么办?可以选择从源代码构建或使用tinyproxy(HTTP)和dante-server(SOCKS)作为替代。配置方式基本相同。
  8. 如何判断信号强度?对于Quectel:向调制解调器的主端口发送AT+CSQ,解释为:15–20为中等,20+为良好。对于HiLink — 在调制解调器的网页界面查看状态。
  9. 如何防止过热?安装散热器和风扇,监测Raspberry Pi上的温度vcgencmd measure_temp,保持其在负载下低于70–75°C。
  10. 是否可以将脚本在其他板子上重复使用?可以。将文件从/usr/local/bin和systemd单元迁移,调整调制解调器和APN的路径。

总结

您已在Raspberry Pi或Orange Pi上构建了一个完整的移动代理节点:选择了板卡、调制解调器和电源,安装了操作系统,激活了ModemManager,建立了连接,配置了3proxy,并确保其受到授权与防火墙的保护,加入自动启动、IP轮换及基础监控。现在您已经获得了实践经验,并且拥有用于测试移动流量、集成内部系统和教育目的的有效工具。接下来,您可以进一步发展解决方案:添加多个调制解调器,构建控制面板,集成轮换API,优化硬件和容错逻辑。了解最佳实践和现成功能,可以方便地参考mobileproxy.space那种类的服务,以便比较它们与您本地环境的适配能力。如果您需要迅速扩展,可以组合您自己的节点与现成的托管解决方案。

⚠️ 注意:始终遵守法律及与运营商的合同。请勿将代理用于违法任务,也不要尝试绕过限制。保持设备完好,关注供电和温度。

建议:设置全部完成后,对microSD卡进行备份。这将使您能在存储故障或实验性更改后快速恢复。