Skip to content

Shared Proxy Setup Workflow

Fresh

Complete workflow for creating and distributing shared proxies to clients.

Overview

Step 1: Plan Your Configuration

FactorUserAuthIPAuth
Client has static IPEitherRecommended
Client has dynamic IPRecommendedNot suitable
Higher securityGoodBetter
Easier for clientYesNo (IP changes)

Step 2: Create the Proxy

Option A: UserAuth HTTP Proxy

bash
curl -H "Authorization: Token YOUR_API_TOKEN" \
     "http://YOUR_SERVER_IP/api/shared_proxy/add?\
index=1&\
proxy_type=HTTP&\
auth_type=UserAuth&\
user=client_acme&\
password=SecurePass123&\
comment=ACME_Corp_Main"

Option B: IPAuth SOCKS Proxy

bash
curl -H "Authorization: Token YOUR_API_TOKEN" \
     "http://YOUR_SERVER_IP/api/shared_proxy/add?\
index=1&\
proxy_type=SOCKS&\
auth_type=IPAuth&\
IP=203.0.113.50,203.0.113.51&\
comment=Partner_Office"

Step 3: Add Limits (Optional)

Traffic-Limited Proxy for Resale

bash
curl -H "Authorization: Token YOUR_API_TOKEN" \
     "http://YOUR_SERVER_IP/api/shared_proxy/add?\
index=2&\
proxy_type=HTTP&\
auth_type=UserAuth&\
user=reseller_client&\
password=ClientPass456&\
traffic_limit_amount=50000&\
traffic_limit_duration=month&\
bandwidth=100"

Time-Limited Trial Proxy

bash
curl -H "Authorization: Token YOUR_API_TOKEN" \
     "http://YOUR_SERVER_IP/api/shared_proxy/add?\
index=3&\
proxy_type=HTTP&\
auth_type=UserAuth&\
user=trial_user&\
password=TrialPass789&\
expire_date=2025-02-01&\
traffic_limit_amount=5000&\
traffic_limit_duration=week"

Domain-Restricted Proxy

bash
curl -H "Authorization: Token YOUR_API_TOKEN" \
     "http://YOUR_SERVER_IP/api/shared_proxy/add?\
index=4&\
proxy_type=HTTP&\
auth_type=UserAuth&\
user=restricted_user&\
password=RestrictPass&\
whitelist=example.com,api.example.com&\
blacklist=facebook.com,twitter.com"

Step 4: Test the Proxy

Get Proxy Details

bash
curl -H "Authorization: Token YOUR_API_TOKEN" \
     http://YOUR_SERVER_IP/api/shared_proxy/

Test with cURL

bash
# Test HTTP proxy
curl -x http://client_acme:SecurePass123@YOUR_SERVER_IP:PORT \
     https://httpbin.org/ip

# Test SOCKS proxy
curl --socks5 YOUR_SERVER_IP:PORT \
     https://httpbin.org/ip

Step 5: Client Distribution Template

Send this to your client:

PROXY CREDENTIALS
================
Type: HTTP/SOCKS5
Host: YOUR_SERVER_IP
Port: [PORT_FROM_API]
Username: [USERNAME]
Password: [PASSWORD]

CONFIGURATION EXAMPLES
=====================
Browser (Chrome):
  Settings > System > Proxy settings
  Manual proxy: YOUR_SERVER_IP:[PORT]

cURL:
  curl -x http://[USER]:[PASS]@YOUR_SERVER_IP:[PORT] https://example.com

Python requests:
  proxies = {
    "http": "http://[USER]:[PASS]@YOUR_SERVER_IP:[PORT]",
    "https": "http://[USER]:[PASS]@YOUR_SERVER_IP:[PORT]"
  }
  requests.get("https://example.com", proxies=proxies)

ROTATION
========
To rotate IP, visit:
http://YOUR_SERVER_IP/api/sproxy/rotate?proxy_port=[PORT]&proxy_pass=[PASSWORD]

Step 6: Automation Script

Create multiple proxies programmatically:

python
import requests

class ProxyManager:
    def __init__(self, server_ip, api_token):
        self.base_url = f"http://{server_ip}"
        self.headers = {"Authorization": f"Token {api_token}"}

    def create_proxy(self, modem_index, username, password, **options):
        params = {
            "index": modem_index,
            "proxy_type": options.get("proxy_type", "HTTP"),
            "auth_type": "UserAuth",
            "user": username,
            "password": password,
            **{k: v for k, v in options.items() if v is not None}
        }

        response = requests.get(
            f"{self.base_url}/api/shared_proxy/add",
            params=params,
            headers=self.headers
        )
        return response.ok

    def delete_proxy(self, port):
        response = requests.get(
            f"{self.base_url}/api/shared_proxy/delete",
            params={"port": port},
            headers=self.headers
        )
        return response.ok

    def list_proxies(self):
        response = requests.get(
            f"{self.base_url}/api/shared_proxy/",
            headers=self.headers
        )
        return response.json()

# Usage
manager = ProxyManager("192.168.1.100", "your_token")

# Create proxies for multiple clients
clients = [
    {"username": "client1", "password": "pass1", "modem": 1},
    {"username": "client2", "password": "pass2", "modem": 2},
    {"username": "client3", "password": "pass3", "modem": 3},
]

for client in clients:
    manager.create_proxy(
        client["modem"],
        client["username"],
        client["password"],
        traffic_limit_amount=10000,
        traffic_limit_duration="month"
    )

Monitoring Checklist

  • [ ] Proxy accessible from client network
  • [ ] Authentication working
  • [ ] Traffic limits enforced
  • [ ] Bandwidth limits applied
  • [ ] Expiration dates set correctly

Proxidize API Documentation