How to Run a Proxy or Residential IP Business with a USA VPS (Multiple IPv4 Guide)
A USA VPS with multiple IPv4 addresses is one of the most versatile tools in a developer or digital business operator’s arsenal. Whether you’re building a proxy service, managing multiple social media accounts, running automated data collection, or operating a marketing tool that requires IP rotation — a single VPS with a block of US IP addresses delivers infrastructure that would cost hundreds per month from commercial proxy providers, for a fraction of the price.
This guide covers everything: how to configure multiple IPv4 addresses on a USA VPS, how to set up Squid and 3proxy as proxy servers, how to implement IP rotation, and the practical use cases where this setup delivers real value.
Why Multiple IPv4 Addresses on a VPS?
A standard VPS comes with one or two IPv4 addresses. But many business and development use cases benefit from — or require — a larger block of unique US IP addresses:
- Proxy services — Offer rotating US IPs to clients for web scraping, ad verification, or market research
- Social media management — Each managed account operates from its own dedicated IP, reducing association risk
- SEO and rank tracking — Rotate IPs across search queries to avoid rate limiting and detection
- Ad verification — Check how ads appear from different US IP addresses
- E-commerce price monitoring — Scrape pricing data across many sites without triggering blocks
- Load testing — Simulate traffic from multiple source IPs for realistic load testing
- Development and QA — Test geo-based application features from real US IPs
💡 VPS.DO 30IPs Plan: VPS.DO’s USA VPS 30IPs plan includes 30 dedicated IPv4 addresses on a single KVM VPS (4 vCPU, 8 GB RAM, 1 Gbps port) for $50/month — the most cost-effective way to get a US IP block for proxy and multi-IP use cases. View USA VPS Plans →
Part 1: Configuring Multiple IPv4 Addresses on Ubuntu
Once your VPS.DO plan with multiple IPv4 is provisioned, all the IPs are assigned to your account but need to be configured on the server’s network interface.
Step 1: Identify Your Network Interface and Assigned IPs
# Find your primary network interface name
ip link show
# View current IP configuration
ip addr show
# Your primary interface is typically eth0 or ens3
Your primary IP is already configured. The additional IPs need to be added as aliases or secondary addresses.
Step 2: Add Multiple IPs Temporarily (for testing)
# Add a secondary IP to interface eth0
sudo ip addr add 203.0.113.2/24 dev eth0
sudo ip addr add 203.0.113.3/24 dev eth0
sudo ip addr add 203.0.113.4/24 dev eth0
# Verify all IPs are active
ip addr show eth0
Step 3: Make Multiple IPs Permanent (Ubuntu 22.04+)
Ubuntu uses Netplan for network configuration. Edit the Netplan config to persist all IPs across reboots:
sudo nano /etc/netplan/00-installer-config.yaml
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 203.0.113.1/24 # Primary IP
- 203.0.113.2/24 # Additional IP 2
- 203.0.113.3/24 # Additional IP 3
- 203.0.113.4/24 # Additional IP 4
# ... add all your assigned IPs
gateway4: 203.0.113.254
nameservers:
addresses:
- 1.1.1.1
- 8.8.8.8
sudo netplan apply
# Verify all IPs are active
ip addr show eth0
Step 4: Automate IP Configuration for 30 IPs
For the 30IPs plan, manually editing Netplan for 30 addresses is tedious. Use a script to generate the config:
nano ~/configure-ips.sh
#!/bin/bash
# Configure multiple IPs on eth0
# Edit IP_LIST with your actual assigned IPs
IP_LIST=(
"203.0.113.1/24"
"203.0.113.2/24"
"203.0.113.3/24"
# ... add all 30 IPs
)
for IP in "${IP_LIST[@]}"; do
sudo ip addr add $IP dev eth0 2>/dev/null
echo "Added: $IP"
done
echo "All IPs configured. Verifying..."
ip addr show eth0 | grep "inet "
chmod +x ~/configure-ips.sh
~/configure-ips.sh
Part 2: Setting Up Squid as a Multi-IP Proxy Server
Squid is the most widely used open-source proxy server. It supports outbound IP binding — meaning each proxy connection can be routed through a different source IP.
Step 1: Install Squid
sudo apt update
sudo apt install squid -y
Step 2: Configure Squid with Multiple Outbound IPs
sudo nano /etc/squid/squid.conf
Replace the default config with this multi-IP setup:
# Basic settings
http_port 3128
visible_hostname proxy.yourdomain.com
# Access control — restrict to authenticated users or specific IPs
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm Proxy Authentication Required
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
# Define outbound IP addresses
acl localnet src 10.0.0.0/8
# Outbound IP rotation — each IP listed as a separate tcp_outgoing_address
# Squid will cycle through these for outbound connections
tcp_outgoing_address 203.0.113.1
tcp_outgoing_address 203.0.113.2
tcp_outgoing_address 203.0.113.3
tcp_outgoing_address 203.0.113.4
# Deny everything else
http_access deny all
# Cache settings (disable for pure proxy use)
cache deny all
cache_mem 0 MB
# Log format
access_log /var/log/squid/access.log squid
Step 3: Create Proxy User Accounts
sudo apt install apache2-utils -y
# Create password file and add first user
sudo htpasswd -c /etc/squid/passwords proxyuser1
# Add additional users (omit -c flag after first user)
sudo htpasswd /etc/squid/passwords proxyuser2
sudo htpasswd /etc/squid/passwords proxyuser3
Step 4: Start Squid
sudo systemctl enable squid
sudo systemctl start squid
# Open proxy port in firewall
sudo ufw allow 3128/tcp
# Test
curl -x http://proxyuser1:password@YOUR_VPS_IP:3128 https://ipinfo.io/ip
Each time you run the curl command, you should see a different outbound IP. ✅
Part 3: Setting Up 3proxy for Advanced IP Rotation
3proxy is a lightweight, high-performance proxy server with better multi-IP rotation control than Squid. It supports HTTP, HTTPS (CONNECT), SOCKS4, and SOCKS5 — and allows you to assign specific IPs to specific proxy ports.
Step 1: Install 3proxy
sudo apt install 3proxy -y
Step 2: Configure 3proxy with One Port per IP
This setup assigns each of your IPv4 addresses to a dedicated proxy port — giving clients a specific port to connect through to use a specific IP:
sudo nano /etc/3proxy/3proxy.cfg
# Logging
log /var/log/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
# Authentication
users user1:CL:password1 user2:CL:password2
# Allow authenticated users
auth strong
allow user1,user2
# HTTP proxy — each port binds to a different outbound IP
# Port 10001 uses IP 203.0.113.1 as the source
proxy -n -a -p10001 -i0.0.0.0 -e203.0.113.1
# Port 10002 uses IP 203.0.113.2
proxy -n -a -p10002 -i0.0.0.0 -e203.0.113.2
# Port 10003 uses IP 203.0.113.3
proxy -n -a -p10003 -i0.0.0.0 -e203.0.113.3
# SOCKS5 proxy on port 20001 using IP 203.0.113.1
socks -n -a -p20001 -i0.0.0.0 -e203.0.113.1
sudo systemctl enable 3proxy
sudo systemctl start 3proxy
# Open all proxy ports in firewall
sudo ufw allow 10001:10030/tcp
sudo ufw allow 20001:20030/tcp
Test Each IP Assignment
# Port 10001 should show IP 203.0.113.1
curl -x http://user1:password1@YOUR_VPS_IP:10001 https://ipinfo.io/ip
# Port 10002 should show IP 203.0.113.2
curl -x http://user1:password1@YOUR_VPS_IP:10002 https://ipinfo.io/ip
Part 4: Automated IP Rotation with Python
For programmatic use cases (web scraping, API automation, SEO tools), implement IP rotation in your Python code using the proxy list:
import requests
import random
import time
# Define your proxy list — one per IP
PROXIES = [
"http://user1:password1@YOUR_VPS_IP:10001",
"http://user1:password1@YOUR_VPS_IP:10002",
"http://user1:password1@YOUR_VPS_IP:10003",
"http://user1:password1@YOUR_VPS_IP:10004",
# ... add all 30
]
def get_random_proxy():
return random.choice(PROXIES)
def fetch_with_rotation(url, retries=3):
for attempt in range(retries):
proxy = get_random_proxy()
try:
response = requests.get(
url,
proxies={"http": proxy, "https": proxy},
timeout=10
)
return response
except requests.RequestException as e:
print(f"Proxy {proxy} failed: {e}. Retrying...")
time.sleep(1)
return None
# Example: fetch multiple URLs with rotating IPs
urls = [
"https://example.com/page1",
"https://example.com/page2",
"https://example.com/page3",
]
for url in urls:
response = fetch_with_rotation(url)
if response:
print(f"Fetched {url} — Status: {response.status_code}")
time.sleep(2) # Respectful delay between requests
Part 5: Managing Multiple IPs for Social Media Accounts
For social media management at scale, assign each account a dedicated IP to prevent platform-level association between accounts.
Browser Profile + Dedicated IP Setup
Use browser profile managers (Multilogin, AdsPower, or Dolphin Anty) alongside your proxy setup. Each browser profile connects through a dedicated port on your VPS, which binds to a unique IP:
- Account 1 → Browser Profile 1 → Proxy port 10001 → IP 203.0.113.1
- Account 2 → Browser Profile 2 → Proxy port 10002 → IP 203.0.113.2
- Account 3 → Browser Profile 3 → Proxy port 10003 → IP 203.0.113.3
This architecture gives each account a completely isolated network identity — different IP, different browser fingerprint, different cookies and storage — from a single $50/month VPS.
Part 6: Running a Commercial Proxy Service
If you want to offer proxy services to clients, here’s a basic architecture using your 30-IP VPS:
Proxy Management Dashboard
Install proxy-manager or a similar tool to provide a web dashboard for managing user accounts, IP assignments, and usage statistics.
Per-Client IP Allocation
# Assign specific IPs to specific clients in 3proxy.cfg
# Client A gets ports 10001-10005 (IPs .1 through .5)
# Client B gets ports 10006-10010 (IPs .6 through .10)
# Client A user
users clientA:CL:clientApassword
allow clientA
proxy -n -a -p10001 -i0.0.0.0 -e203.0.113.1
proxy -n -a -p10002 -i0.0.0.0 -e203.0.113.2
Bandwidth Monitoring per IP
# Install vnstat for per-interface bandwidth tracking
sudo apt install vnstat -y
sudo systemctl enable vnstat
# View bandwidth usage
vnstat -h # Hourly
vnstat -d # Daily
vnstat -m # Monthly
IP Health Monitoring
Not all IPs remain clean indefinitely. Set up automated health checks:
nano ~/check-ip-health.sh
#!/bin/bash
# Check if each IP is blocked by major platforms
IPS=(
"203.0.113.1"
"203.0.113.2"
"203.0.113.3"
)
for IP in "${IPS[@]}"; do
# Check against common blacklists via MXToolbox API or similar
STATUS=$(curl -s --interface $IP -o /dev/null -w "%{http_code}" https://ipinfo.io/ip --connect-timeout 5)
if [ "$STATUS" = "200" ]; then
echo "✅ $IP — Clean"
else
echo "⚠️ $IP — Check required (HTTP $STATUS)"
fi
done
chmod +x ~/check-ip-health.sh
# Schedule daily health checks
crontab -e
# 0 8 * * * /root/check-ip-health.sh >> /var/log/ip-health.log 2>&1
Legal and Ethical Considerations
Running proxy services and using multiple IPs is legitimate and widely used in business. However, keep these principles in mind:
- Respect robots.txt — When crawling websites, honor their crawl policies regardless of how many IPs you have.
- Rate limit your requests — Having 30 IPs is not a license to hammer a site with 30x the normal request rate. Implement delays between requests.
- Don’t use IPs for abuse — Spam, fraud, credential stuffing, and similar activities violate VPS.DO’s Terms of Service and are illegal in most jurisdictions.
- Check platform terms — Some platforms explicitly prohibit automation or multiple accounts. Understand the terms of platforms you’re accessing.
- GDPR/CCPA compliance — If your proxy service handles user data, ensure you have appropriate privacy policies and data handling procedures.
Why VPS.DO’s 30IPs Plan Is Built for This Use Case
Most VPS providers charge per IP address — $1–5/month each — meaning 30 IPs adds $30–150/month on top of the base VPS cost. VPS.DO’s 30IPs plan bundles 30 dedicated US IPv4 addresses with a powerful KVM VPS for a single flat rate.
| Feature | VPS.DO USA 30IPs |
|---|---|
| vCPU | 4 cores |
| RAM | 8 GB DDR4 |
| Storage | 120 GB SSD |
| Bandwidth | 5TB / month |
| Network port | 1 Gbps |
| IPv4 addresses | 30 dedicated US IPs |
| Virtualization | KVM (full isolation) |
| Price | $50/month |
At $50/month for 30 US IPs — that’s $1.67 per IP — it’s one of the most cost-effective multi-IP VPS configurations available for proxy and IP rotation use cases.
Final Thoughts
A USA VPS with multiple IPv4 addresses is foundational infrastructure for a wide range of digital business operations — from proxy services and social media management to SEO tools and data collection pipelines. Setting it up requires one afternoon of configuration, and once running, it operates with minimal maintenance.
The combination of 3proxy (or Squid) for proxy serving, Netplan for IP configuration, and Python for programmatic rotation gives you a complete, production-ready multi-IP infrastructure. VPS.DO’s 30IPs plan makes this accessible at a price point that easily justifies itself for anyone running IP-intensive operations.
Questions about configuring multiple IPs on your VPS? VPS.DO’s support team is available 24/7 →
Related articles you might find useful: