How to Turn Any VPS Into a Fast HTTP Proxy in Minutes


A Practical Guide Using TinyProxy

For the past two days, I’ve been deep in a small experiment — trying to build a clean, lightweight proxy server on a VPS. I wanted something simple but reliable enough for browsing, debugging network issues, scraping small datasets, and verifying outbound IP.

I tested a handful of tools, but one thing became obvious very quickly: the simplest and most stable solution was TinyProxy — a tiny, tinyhttp-like HTTP proxy that just works.

https://github.com/tinyproxy/tinyproxy

Why TinyProxy?

Because it’s:

  1. Lightweight — almost zero memory usage
  2. Easy to install — one command on Ubuntu
  3. Fast — excellent performance for HTTP/HTTPS
  4. Transparent — logs, status, and errors are all visible
  5. Beginner-friendly — the config file is short and clear

This is probably the closest thing to a plug-and-play VPS proxy you’ll ever use.

Step 1: Install TinyProxy

Ubuntu / Debian

sudo apt update
sudo apt install tinyproxy -y

CentOS / Rocky / AlmaLinux

sudo dnf install epel-release -y
sudo dnf install tinyproxy -y

After installation, TinyProxy starts automatically.

Step 2: Configure TinyProxy

The config file is located at:

/etc/tinyproxy/tinyproxy.conf

The three most important lines are:

① Set the listening port

Port 8888

You can change this to anything you like: 808010000, etc.

② Allow connections from your device

By default, TinyProxy only allows local access.
You must add your own IP:

Allow 127.0.0.1
Allow YOUR_PUBLIC_IP

If you’re just testing, you can temporarily allow everything:

Allow 0.0.0.0/0

③ (Optional) Add username/password

BasicAuth myuser mypass

Save and restart:

sudo systemctl restart tinyproxy

Step 3: Check Whether It’s Running

sudo systemctl status tinyproxy

You should see:

Active: active (running)

If you see:

Could not create listening sockets.

That means the port is already in use — the most common error.

Check whether 8888 is occupied:

ss -tulpen | grep 8888

If a stale TinyProxy process is stuck:

sudo kill -9 <PID>
sudo systemctl restart tinyproxy

Step 4: Test the Proxy (Most Important Section)

Installation success ≠ proxy usable.

You must actually test whether traffic goes through TinyProxy.

Test A — curl (most accurate)

curl -x http://your-vps-ip:8888 https://ipinfo.io

If TinyProxy is working, you’ll see the VPS IP:

{
"ip": "123.456.xxx.xxx",
"country": "US",
...
}

If it fails, you may see:

  • Connection timed out
  • 407 Proxy Authentication Required
  • DNS loopback
  • HTTP/403

These indicate that TinyProxy isn’t running properly or the network config is incorrect.

Test B — Chrome / Edge with SwitchyOmega

Set the profile to:

  • Protocol: HTTP
  • Server: your VPS IP
  • Port: 8888

If using BasicAuth, fill in username/password.

Open: https://ipinfo.io/ip

If you see the VPS IP, the proxy works.

Test C — System Proxy on macOS

System Settings → Network → Advanced → Proxies → Web Proxy (HTTP)

Fill in the VPS IP and port.

Visit Google / YouTube.

If they load normally, TinyProxy is working reliably.

Step 5: Make the Proxy Persistent

TinyProxy already ships with systemd:

sudo systemctl enable tinyproxy

It will automatically start after every reboot.

Final

Turning a VPS into an HTTP proxy is incredibly simple — as long as you choose the right tool and test it the right way. TinyProxy keeps everything lightweight, fast, and predictable, making it a fantastic option for developers, network testers, and anyone who needs a clean, stable HTTP proxy.