Turn your device into a powerful proxy server and share internet with ease! 🌐
VPSH is a versatile proxy server solution that transforms your device into a fully-featured proxy gateway. Perfect for sharing internet connections via WiFi hotspot, USB tethering, or network interfaces with HTTP/SOCKS5 support.
- 🔥 Multiple Proxy Methods - Python, Tinyproxy, Privoxy, 3proxy, Socat
- 🔒 SOCKS5 Support - Compatible with games, SSH, and all traffic
- 📱 Mobile Friendly - Optimized for Termux on Android
- 💻 Cross-Platform - Works on Linux, Termux, and Windows (client)
- 🎮 Gaming Profile - UDP priority QoS for better gaming experience
- 🔐 Authentication - Username/Password protection
- 🚀 Transparent Proxy - iptables support for seamless redirection
- 🌐 Tunnel Support - Cloudflare, ngrok, Tailscale, ZeroTier
- ♻️ Auto-Restart - Self-healing with health monitoring
- 📊 Client Management - Track connected clients
- 🎨 Beautiful UI - Colorful terminal output with QR codes
- 🪟 Windows Client - Easy proxy management with SetProxy.bat
pkg update && pkg upgrade
pkg install curl -y
curl -o vpsh.sh https://raw.githubusercontent.com/batmanpriv/VPSH/main/vpsh.sh
chmod +x vpsh.sh
./vpsh.sh startDownload SetProxy.bat from the repository and run it.
# Start proxy with default settings
./vpsh.sh start
# Stop proxy
./vpsh.sh stop
# Restart proxy
./vpsh.sh restart
# Check status
./vpsh.sh status
# Show health check
./vpsh.sh health
# View logs
./vpsh.sh logs
# Update to latest version
./vpsh.sh update# Start with specific method and port
./vpsh.sh start --method=tinyproxy --port=8080
# Enable SOCKS5 with authentication
./vpsh.sh start --socks5 --auth --profile=secure
# Gaming profile with transparent proxy (root required)
sudo ./vpsh.sh start --profile=gaming --transparent
# Force specific interface and tunnel
./vpsh.sh start --hotspot=wlan0 --tunnel=cloudflare
# Start with custom SOCKS5 port
./vpsh.sh start --socks5 --socks5-port=1080
# Disable auto-restart for debugging
./vpsh.sh start --no-auto-restart --debugVPSH includes a powerful Windows client script for easy proxy management.
# Double-click the file or run without arguments
SetProxy.bat
# This opens an interactive menu:
# [1] Connect to Proxy
# [2] Disconnect Proxy
# [3] Show Status
# [4] Test Connection
# [5] Exit# Connect to proxy (without authentication)
SetProxy.bat connect 192.168.1.100 8888
# Connect with authentication (username and password are optional)
SetProxy.bat connect 192.168.1.100 8888 myuser mypass
# If you don't have username/password, just skip them:
SetProxy.bat connect 192.168.1.100 8888
# Disconnect proxy
SetProxy.bat disconnect
# Check current status
SetProxy.bat status
# Test proxy connection
SetProxy.bat test
# Show help
SetProxy.bat help- 🔧 Configures Windows system proxy settings
- 🔄 Sets environment variables (HTTP_PROXY, HTTPS_PROXY)
- 🧹 Clears browser cache for immediate effect
- 🧪 Tests connection through the proxy
- 📊 Shows real-time status and connected settings
| Feature | Description |
|---|---|
| System Proxy | Configures Windows Internet Settings |
| Environment Variables | Sets HTTP_PROXY, HTTPS_PROXY, FTP_PROXY |
| Persistent Settings | Remembers configuration across sessions |
| Test Connection | Verifies proxy is working correctly |
| Status Display | Shows current proxy configuration |
| Interactive Menu | User-friendly interface for non-technical users |
| Option | Description | Default |
|---|---|---|
--method=METHOD |
Proxy method (python/tinyproxy/privoxy/3proxy/socat) | python |
--port=PORT |
HTTP proxy port | Random (8000-9999) |
--socks5 |
Enable SOCKS5 proxy | Disabled |
--socks5-port=PORT |
SOCKS5 port | Random (1080-2079) |
--profile=PROFILE |
Profile (default/gaming/streaming/secure) | default |
--auth |
Enable authentication | Disabled |
--transparent |
Enable transparent proxy (root only) | Disabled |
--tunnel=TYPE |
Tunnel (cloudflare/ngrok/tailscale/zerotier) | None |
--hotspot=IFACE |
Force interface | Auto-detect |
--debug |
Enable debug output | Disabled |
--no-auto-restart |
Disable auto-restart | Enabled |
Create vpsh.conf in the script directory:
PROXY_METHOD=python
PROXY_PORT=8888
SOCKS5_PORT=1080
PROFILE=default
ENABLE_SOCKS5=1
ENABLE_AUTH=1
ENABLE_TRANSPARENT=0
ENABLE_TUNNEL=""
AUTO_RESTART=1
HEALTH_INTERVAL=30
HOTSPOT_IFACE_OVERRIDE=""
PROXY_USER="myuser"
PROXY_PASS="mypass"- Turn on your hotspot on the VPSH device
- Connect your Android phone to the hotspot
- Open WiFi Settings on your phone
- Long press on the connected hotspot network
- Select Modify Network or Manage Network Settings
- Check "Show advanced options" or "Proxy"
- Set Proxy to Manual
- Enter details:
- Proxy Hostname: The IP shown in VPSH (e.g., 192.168.43.1)
- Proxy Port: The HTTP port (e.g., 8888)
- Bypass Proxy for: Leave empty or add local IPs
- Username: Only if authentication is enabled
- Password: Only if authentication is enabled
- Save and reconnect to the network
Some Android versions support PAC URLs:
http://[VPSH_IP]:[PORT]/proxy.pac
For rooted devices with transparent proxy enabled, no configuration needed!
- Connect to the hotspot
- Go to Settings → Wi-Fi
- Tap the "i" icon next to the connected network
- Scroll to HTTP Proxy
- Select Manual
- Enter:
- Server: VPSH IP address
- Port: HTTP proxy port
- Authentication: Toggle ON if needed
- Username/Password: Only if authentication is enabled
# Set environment variables (without auth)
export http_proxy=http://192.168.1.100:8888
export https_proxy=http://192.168.1.100:8888
# With authentication (optional)
export http_proxy=http://user:pass@192.168.1.100:8888
export https_proxy=http://user:pass@192.168.1.100:8888
# Make permanent (add to ~/.bashrc or ~/.zshrc)
echo 'export http_proxy=http://192.168.1.100:8888' >> ~/.bashrc
echo 'export https_proxy=http://192.168.1.100:8888' >> ~/.bashrc
# Test connection
curl -I --proxy http://192.168.1.100:8888 https://google.com# Just run with the proxy details
SetProxy.bat connect 192.168.1.100 8888
# For auth (username/password optional)
SetProxy.bat connect 192.168.1.100 8888 myuser mypass- Open Internet Options (Search "Internet Options" in Start Menu)
- Go to Connections tab
- Click LAN settings
- Enable Use a proxy server
- Enter:
- Address: VPSH IP address
- Port: HTTP proxy port
- Click OK
Settings → System → Open your computer's proxy settings
Or use command line:
chrome.exe --proxy-server="http://192.168.1.100:8888"
Settings → Network Settings → Manual proxy configuration
HTTP Proxy: 192.168.1.100
Port: 8888
✓ Also use this proxy for HTTPS
| Method | Description | Use Case |
|---|---|---|
| python | Built-in Python proxy, no install needed | General use, quick setup |
| tinyproxy | Lightweight C proxy | Low-resource devices |
| privoxy | Feature-rich proxy with filtering | Privacy & filtering |
| 3proxy | Multi-protocol proxy | Advanced configurations |
| socat | TCP relay only (limited) | Simple forwarding |
- Open WiFi Settings
- Long press your hotspot network
- Select Modify Network or Proxy Settings
- Choose Manual Proxy Configuration
- Enter:
- Host: IP address from VPSH display
- Port: HTTP proxy port
- Username/Password: If authentication is enabled (optional)
# Set environment variables
export http_proxy=http://192.168.1.100:8888
export https_proxy=http://192.168.1.100:8888
# With authentication
export http_proxy=http://user:pass@192.168.1.100:8888
export https_proxy=http://user:pass@192.168.1.100:8888- Open Internet Options (inetcpl.cpl)
- Go to Connections tab
- Click LAN settings
- Enable Use a proxy server
- Enter:
- Address: IP address from VPSH
- Port: HTTP proxy port
- Click OK
- Settings → Advanced → System → Open proxy settings
- Or use command line:
--proxy-server=http://IP:PORT
- Settings → Network Settings → Manual proxy configuration
- HTTP Proxy: IP, Port: PORT
- Also use for HTTPS and FTP
| Profile | Features | Best For |
|---|---|---|
| default | HTTP proxy, standard settings | General browsing |
| gaming | SOCKS5 + UDP QoS + fast health | Online gaming |
| streaming | High capacity | Video streaming |
| secure | Auth + SOCKS5 | Privacy & security |
- curl
- pkill/procps
- awk/gawk
- iproute2/ss
- Python3 (for python method)
- tinyproxy -
pkg install tinyproxy(Termux) /apt install tinyproxy(Linux) - privoxy -
pkg install privoxy - 3proxy -
pkg install 3proxy - socat -
pkg install socat - microsocks - For SOCKS5 support
- qrencode - For QR codes
# Kill process using port
sudo kill -9 $(sudo lsof -t -i:8888)
# Or use different port
./vpsh.sh start --port=9999# Make script executable
chmod +x vpsh.sh
# Run with root for transparent proxy
sudo ./vpsh.sh start --transparent# List available interfaces
./vpsh.sh --debug start
# Force specific interface
./vpsh.sh start --hotspot=wlan0# Check status
./vpsh.sh status
# View logs
./vpsh.sh logs
# Run health check
./vpsh.sh health
# Restart with debug
./vpsh.sh restart --debug# Test connection
SetProxy.bat test
# Check status
SetProxy.bat status
# Disconnect and reconnect
SetProxy.bat disconnect
SetProxy.bat connect 192.168.1.100 8888# Clear credentials and reconnect
setx PROXY_USER ""
setx PROXY_PASS ""
SetProxy.bat connect 192.168.1.100 8888 myuser mypass./vpsh.sh status./vpsh.sh health# View all logs
./vpsh.sh logs
# Tail specific logs
tail -f tinyproxy.log
tail -f dante.log
tail -f python_proxy.log- 🔒 Auth credentials are stored in
vpsh.authwith 600 permissions - 🛡️ Firewall rules can be added for additional security
- 🌐 Transparent proxy requires root privileges
- 🔑 Change default credentials immediately
- 📍 Proxy is accessible from all interfaces by default
- 🪟 Windows credentials are stored in environment variables
This project is licensed under the MIT License - see the LICENSE file for details.
- All the amazing open-source proxy projects
- Termux community for Android support
- Contributors and users of VPSH

