DOCUMENTATION

ProxifyPROV2.0

4G Mobile Proxy Infrastructure — turn USB LTE dongles into professional rotating HTTPS & SOCKS5 proxies.

Overview

ProxifyPRO is a self-hosted proxy management system that transforms 4G USB dongles into a fleet of managed, rotating mobile proxies. Each dongle is network-isolated in its own Linux namespace, independently monitored, and accessible via HTTP and SOCKS5 with per-user authentication.

🔌 Auto-Detection

Plug in a dongle and it's live in 30 seconds. Hot-plug support for adding dongles without restart.

🔄 IP Rotation

Manual, timed, or request-based rotation. PDP cycle (~5s) or full modem reboot.

🏊 Session Pool

Single port, multiple dongles. Sticky sessions keep the same IP for configurable duration.

📈 Analytics

Real-time charts: latency, signal quality, health timeline, memory. 24-hour history.

🩹 Health Monitor

60-second checks. Auto-recovery via PDP cycle or USB rebind. 2-hour watchdog restart.

📱 SMS & OTP

Inbox, send, bulk send with dongle rotation, campaigns, and OTP verification API.

🤖 Telegram Bot

Remote management: /status, /rotate, /health, /proxies. Automatic alerts on state changes.

🔗 REST API

40+ endpoints with Swagger docs. 4 auth methods. Rate limiting. Webhooks.

ProxifyPRO runs on Linux (Ubuntu 22.04+). Install now or check requirements first.

Requirements

ComponentRequirement
Operating SystemUbuntu 22.04+ / Debian 12+ (Linux recommended)
Node.jsv18 or higher
3proxyAny version (sudo apt install 3proxy)
HardwareAt least one USB 4G dongle (see supported devices)
NetworkRoot access for iptables and network namespaces

Linux Installation

One-liner

# Download installer (requires license key)
curl -fsSL https://get.proxifypro.com/install.sh -o install.sh

# Run installer
sudo bash install.sh

# Activate license
sudo proxifypro activate YOUR_LICENSE_KEY

What it does

  • Checks prerequisites (Node.js 18+, 3proxy, iptables)
  • Copies files to /opt/proxifypro
  • Installs npm dependencies (express, ws)
  • Generates secure credentials (dashboard password, API key, rotation token, pool password)
  • Creates /etc/proxifypro/env configuration
  • Installs and enables systemd service

Start the service

sudo systemctl start proxifypro
sudo systemctl status proxifypro
sudo journalctl -u proxifypro -f   # live logs

Updating

# Download latest version
curl -fsSL https://get.proxifypro.com/install.sh -o install.sh
sudo bash src/dongle/v2/install.sh --update
sudo systemctl restart proxifypro

Update mode preserves your configuration and auto-adds new environment variables.

Locations after install

PathDescription
/opt/proxifyproApplication files
/etc/proxifypro/envConfiguration (credentials, ports, tokens)
/etc/systemd/system/proxifypro.serviceSystemd service unit

macOS

ProxifyPRO requires Linux network namespaces which are not available on macOS natively. Run ProxifyPRO on a Linux server (Ubuntu 22.04+ recommended) and manage it remotely via the dashboard, API, or Telegram bot from your Mac.

Windows

ProxifyPRO requires Linux network namespaces which are not available on Windows natively. Run ProxifyPRO on a Linux server (Ubuntu 22.04+ recommended) and manage it remotely via the dashboard, API, or Telegram bot from your Windows machine.

Using Your Proxies

Each dongle gets its own proxy with unique credentials.

Get your credentials

curl -H "X-API-Key: YOUR_KEY" http://YOUR_IP:3000/api/proxies

HTTP proxy

curl -x http://ppro_20108385:PASSWORD@YOUR_IP:30001 https://api.ipify.org
→ 181.239.164.120 (mobile IP from dongle)

SOCKS5 proxy

curl --socks5 ppro_20108385:PASSWORD@YOUR_IP:31001 https://api.ipify.org

Port allocation

Dongle #HTTP PortSOCKS5 Port
13000131001
23000231002
33000331003
N30000+N31000+N

Session Pool

A single port that distributes traffic across all healthy dongles. Perfect for automated scraping.

Round-robin (rotating IP)

curl -x http://user:POOL_PASS@YOUR_IP:40001 https://api.ipify.org
→ 181.239.164.120  (dongle 1)

curl -x http://user:POOL_PASS@YOUR_IP:40001 https://api.ipify.org
→ 186.143.202.104  (dongle 2, different IP)

Sticky sessions (same IP for N minutes)

Add a session ID to the username. Same session ID = same dongle for the configured duration (default 10 min).

curl -x http://user-sess_abc123:POOL_PASS@YOUR_IP:40001 https://api.ipify.org
→ 181.239.164.120

curl -x http://user-sess_abc123:POOL_PASS@YOUR_IP:40001 https://api.ipify.org
→ 181.239.164.120  (same IP — sticky!)

After the sticky duration expires, the session automatically rotates to the next dongle. The pool excludes unhealthy dongles automatically.

IP Rotation

Manual rotation

# Rotate specific dongle
curl -X POST -H "X-API-Key: KEY" http://YOUR_IP:3000/api/dongles/ppro-XXXXX/rotate

# Rotate ALL dongles
curl -X POST -H "X-API-Key: KEY" http://YOUR_IP:3000/api/rotate-all

# End-user rotation (no API key needed)
curl "http://YOUR_IP:3000/api/change_ip?ns=ppro-XXXXX&rtoken=YOUR_TOKEN"

Auto-rotation

curl -X POST -H "X-API-Key: KEY" -H "Content-Type: application/json" \
  -d '{"config":{"mode":"time","interval_minutes":30}}' \
  http://YOUR_IP:3000/api/dongles/ppro-XXXXX/configure
ModeDescription
manualRotate only via API, dashboard, or Telegram
timeAuto-rotate every N minutes
requestsAuto-rotate after N requests
time_or_requestsRotate on whichever triggers first

Software Integration

Multilogin / GoLogin / AdsPower

Configure each browser profile with proxy type HTTP or SOCKS5, your server IP, port 30001 (or 40001 for pool), and credentials from /api/proxies. Use session pool with profile ID as session for sticky IPs per profile.

Python

import requests
proxy = "http://ppro_20108385:PASS@YOUR_IP:30001"
r = requests.get("https://api.ipify.org", proxies={"http": proxy, "https": proxy})
print(r.text)  # mobile IP

Puppeteer

const browser = await puppeteer.launch({
  args: ['--proxy-server=http://YOUR_IP:30001']
});
const page = await browser.newPage();
await page.authenticate({ username: 'ppro_20108385', password: 'PASS' });

Scrapy

HTTP_PROXY = 'http://ppro_20108385:PASS@YOUR_IP:30001'

Dashboard

Access at http://YOUR_IP:3000. Login with your dashboard password.

SectionDescription
OverviewFleet status: dongles, health, IPs, signal, uptime
ProxiesCredentials table with copy buttons and .txt export
RotationPer-dongle rotation mode, interval, manual trigger
HealthModem, signal, internet, proxy status per dongle
AnalyticsCharts: latency, health timeline, signal, memory
SMSInbox, single send, bulk send with dongle rotation
SettingsSystem info, version, public IP
LogsReal-time system log viewer

SMS & OTP

Send SMS

curl -X POST -H "X-API-Key: KEY" -H "Content-Type: application/json" \
  -d '{"to":"+5491112345678","message":"Hello!"}' \
  http://YOUR_IP:3000/api/sms/ppro-XXXXX/send

OTP verification

# 1. Send OTP
curl -X POST -H "X-API-Key: KEY" -H "Content-Type: application/json" \
  -d '{"nsName":"ppro-XXXXX","phone":"+5491112345678","prefix":"MyApp"}' \
  http://YOUR_IP:3000/api/otp/send
→ { "reference": "otp_abc123", "expiresAt": ... }

# 2. Verify
curl -X POST -H "X-API-Key: KEY" -H "Content-Type: application/json" \
  -d '{"reference":"otp_abc123","code":"123456"}' \
  http://YOUR_IP:3000/api/otp/verify
→ { "valid": true, "phone": "+5491112345678" }

Bulk send supports anti-spam intervals (10-60s) and automatic dongle rotation.

Telegram Bot

Remote management via @proxifypro_bot.

Setup

  1. Create a bot with @BotFather
  2. Set PROXIFYPRO_TELEGRAM_TOKEN in env
  3. Restart service, send /start to your bot
CommandDescription
/statusAll dongles with state and IP
/proxiesProxy credentials
/rotateRotate all dongles
/healthDetailed health per dongle
/smsRecent SMS messages
/systemVersion, uptime, memory

Automatic alerts for state changes, watchdog restarts, and recovery events.

Analytics

Real-time metrics every 5 minutes with 24-hour history. Charts: network latency, health timeline heatmap, signal quality (RSRP), system memory.

curl -H "X-API-Key: KEY" http://YOUR_IP:3000/api/analytics/summary
→ { "uptimePct": 98, "avgLatency": 1200, "avgMemory": 85 }

Webhooks

Receive HMAC-signed HTTP POST notifications on events: state changes, watchdog restarts, rotations, recovery.

PROXIFYPRO_WEBHOOK_URLS=https://your-server.com/webhook
PROXIFYPRO_WEBHOOK_SECRET=your_secret

Shared Proxies

Create additional proxy users on any dongle with granular controls:

  • Bandwidth limiting — speed cap in Mb/s
  • Domain whitelist/blacklist — allow or block specific domains
  • Traffic limit — MB per day/week/month with auto-reset
  • Connection limit — max simultaneous connections
  • Expiry date — auto-deactivate on specified date
curl -X POST -H "X-API-Key: KEY" -H "Content-Type: application/json" \
  -d '{"ns":"ppro-XXXXX","bandwidth":5,"maxConnections":10,"expireDate":"2026-12-31"}' \
  http://YOUR_IP:3000/api/shared_proxy/add

Hardware Compatibility

Officially supported

DeviceModeStatus
Huawei E3372h (HiLink)USB Ethernet + HTTP API✅ Fully tested
Huawei E3372s (HiLink)USB Ethernet + HTTP API✅ Compatible

USB hub recommendations

Use a powered USB 3.0 hub (each dongle draws ~0.5A). Recommended: 7-port or 10-port powered hub.

Configuration

All settings in /etc/proxifypro/env:

VariableDefaultDescription
PROXIFYPRO_ADMIN_PASSWORDgeneratedDashboard login password
PROXIFYPRO_API_KEYgeneratedREST API key
PROXIFYPRO_ROTATION_TOKENgeneratedEnd-user rotation token
PROXIFYPRO_DASHBOARD_PORT3000Dashboard port
PROXIFYPRO_POOL_PORT40001Session pool port
PROXIFYPRO_POOL_STICKY_MS600000Sticky session duration (10 min)
PROXIFYPRO_HEALTH_INTERVAL60000Health check interval (ms)
PROXIFYPRO_WATCHDOG_HOURS2Watchdog restart threshold
PROXIFYPRO_TELEGRAM_TOKENemptyTelegram bot token
PROXIFYPRO_LICENSE_KEYemptyLicense key (empty = dev mode)

API Overview

34+ REST endpoints with 4 authentication methods (Bearer, X-API-Key, Cookie, query param).

# Bearer token
curl -H "Authorization: Bearer YOUR_KEY" http://YOUR_IP:3000/api/dongles

# X-API-Key header
curl -H "X-API-Key: YOUR_KEY" http://YOUR_IP:3000/api/dongles
CategoryEndpointsKey operations
Dongles5List, get, rotate, configure, restart
Proxies2JSON list, text export
Rotation3Rotate one, all, rotation token
Health2Status, manual check
SMS7Inbox, send, bulk, search, campaigns
OTP2Send code, verify code
Shared Proxies5CRUD with bandwidth/whitelist/expiry
Session Pool2Stats, active sessions
Analytics2Time-series, summary
System5Info, license, logs, webhooks, contact

Interactive API Documentation

Explore all endpoints, test requests, and see response schemas.

OPEN SWAGGER DOCS →

License

PlanMax DonglesPrice
Starter5$60/mo
PRO20$250/mo
Enterprise60$600/mo

No license key = unlimited dev mode. Payment via Bitcoin and USDT at pay.proxifypro.com.

Logging

ProxifyPRO includes a professional structured logging system with file persistence, runtime level control, and full API access.

Log levels

LevelDescription
ERRORCritical failures: watchdog, recovery failures, service errors
WARNWarnings: consecutive health failures, degraded dongles, license issues
INFONormal operations: state changes, rotations, startup (default level)
DEBUGDetailed diagnostics: backend updates, check results, session tracking
TRACEVerbose: every RPC call, every HTTP request, raw modem responses

Log files

FileContents
/var/log/proxifypro/proxifypro.logAll logs (structured JSON, one entry per line)
/var/log/proxifypro/error.logErrors and warnings only
/var/log/proxifypro/events.logImportant events: state changes, recovery, watchdog, nuclear restarts

Files auto-rotate at 5MB, keeping the last 5 rotations.

Query logs via API

# Get recent logs (filterable)
curl -H "X-API-Key: KEY" "http://YOUR_IP:3000/api/logs?limit=50&module=HEALTH"

# Get events (state changes, recovery, watchdog)
curl -H "X-API-Key: KEY" "http://YOUR_IP:3000/api/logs/events?limit=20"

# Filter by dongle
curl -H "X-API-Key: KEY" "http://YOUR_IP:3000/api/logs?ns=ppro-XXXXX&level=WARN"

# Full-text search
curl -H "X-API-Key: KEY" "http://YOUR_IP:3000/api/logs?search=watchdog"

Change log level at runtime

# Enable debug mode (no restart needed)
curl -X POST -H "X-API-Key: KEY" -H "Content-Type: application/json" \
  -d '{"level":"DEBUG"}' http://YOUR_IP:3000/api/logs/level

# Return to normal
curl -X POST -H "X-API-Key: KEY" -H "Content-Type: application/json" \
  -d '{"level":"INFO"}' http://YOUR_IP:3000/api/logs/level

Download log files

# List available log files
curl -H "X-API-Key: KEY" http://YOUR_IP:3000/api/logs/files

# Download a specific file
curl -H "X-API-Key: KEY" -o events.log http://YOUR_IP:3000/api/logs/download/events.log

Modules

Each subsystem logs under its own module name, making it easy to filter:

ModuleSubsystem
HEALTHHealth checks, state transitions, watchdog triggers
RECOVERYPDP cycle, USB rebind, recovery attempts
POOLSession pool proxy, backend updates, routing
TELEGRAMBot commands, alerts, message delivery
WEBHOOKWebhook dispatch, delivery status
ANALYTICSData collection, time-series snapshots
HOTPLUGUSB device detection, add/remove events
LICENSELicense validation, heartbeats, plan limits
ORCHOrchestrator: startup, shutdown, dongle setup

Troubleshooting

Dongle not detected

lsusb | grep -i huawei
ip -br link | grep -E "eth|enx"

If missing, restart the service — it auto-rebinds USB devices.

Proxy not connecting

  1. Check health: curl -H "X-API-Key: KEY" http://localhost:3000/api/health
  2. Verify iptables: sudo iptables -t nat -L PREROUTING -n | grep proxifypro
  3. Check firewall allows ports 30001-31010 and 40001

Service keeps restarting

sudo journalctl -u proxifypro --since "10 min ago" | grep ERROR

Common fix: sudo rm -f /tmp/3proxy-ppro-*.cfg then restart.

FAQ

How many dongles can I run?

Limited by license plan and USB ports. With a powered 10-port hub, up to 10 dongles. Enterprise supports 60.

Do I need a static IP?

No. ProxifyPRO auto-detects your public IP. For reliable external access, use a Cloudflare Tunnel.

Can I use this with anti-detect browsers?

Yes. Works with Multilogin, GoLogin, AdsPower, Dolphin Anty. Use session pool with profile IDs for sticky sessions.

What happens if a dongle loses signal?

Health monitor detects it within 60 seconds. Auto-recovery tries PDP cycle, then USB rebind. Watchdog does full restart after 2 hours. Alerts via Telegram and webhooks.

Can I sell proxies to customers?

Yes. Use shared proxies with per-customer credentials, bandwidth limits, and expiry dates. Or use the session pool as a single endpoint.

How fast is IP rotation?

PDP cycle: ~5-15 seconds. Full modem reboot: ~30-60 seconds.