masterhttprelayvpn-proxy
Original:🇺🇸 English
Translated
Domain-fronted HTTP/SOCKS5 proxy tunneling traffic through Google Apps Script with MITM TLS interception and DPI evasion
12installs
Sourcearadotso/trending-skills
Added on
NPX Install
npx skill4agent add aradotso/trending-skills masterhttprelayvpn-proxyTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →MasterHttpRelayVPN Proxy
Skill by ara.so — Daily 2026 Skills collection.
MasterHttpRelayVPN is a domain-fronted HTTP/SOCKS5 proxy that tunnels traffic through Google Apps Script. It disguises requests as Google traffic to evade DPI/firewalls, performs local MITM TLS interception to re-encrypt traffic, and requires only a free Google account — no VPS needed.
Traffic flow:
Browser → Local Proxy (127.0.0.1:8085) → Google IP (front_domain) → Apps Script Relay → Target WebsiteInstallation
bash
git clone https://github.com/masterking32/MasterHttpRelayVPN.git
cd MasterHttpRelayVPN
pip install -r requirements.txtBehind a firewall (PyPI mirror):
bash
pip install -r requirements.txt -i https://mirror-pypi.runflare.com/simple/ --trusted-host mirror-pypi.runflare.comQuick start scripts (handles venv + deps automatically):
bash
# Linux/macOS
chmod +x start.sh && ./start.sh
# Windows
start.batStep 1: Deploy the Google Apps Script Relay
- Go to https://script.google.com/ and create a New project
- Delete default code, paste the contents of
apps_script/Code.gs - Set a strong password on this line:
javascript
const AUTH_KEY = "your-secret-password-here"; - Click Deploy → New deployment → Web app
- Execute as: Me
- Who has access: Anyone
- Copy the Deployment ID (long random string)
Step 2: Configure
Option A — Interactive wizard (recommended)
bash
python setup.pyPrompts for Deployment ID, generates a random , writes .
auth_keyconfig.jsonOption B — Manual config
bash
cp config.example.json config.jsonEdit :
config.jsonjson
{
"mode": "apps_script",
"google_ip": "216.239.38.120",
"front_domain": "www.google.com",
"script_id": "AKfycb...",
"auth_key": "your-secret-password-here",
"listen_host": "127.0.0.1",
"listen_port": 8085,
"socks5_enabled": true,
"socks5_port": 1080,
"log_level": "INFO",
"verify_ssl": true
}inauth_keymust matchconfig.jsoninAUTH_KEY.Code.gs
Step 3: Run
bash
python3 main.pyInstall CA certificate (run once, or re-run anytime):
bash
python main.py --install-certConfiguration Reference
Main Settings
| Key | Description |
|---|---|
| Always |
| Google Apps Script Deployment ID |
| Shared secret between proxy and relay |
| |
| HTTP proxy port (default: |
| Enable SOCKS5 listener |
| SOCKS5 port (default: |
| |
Advanced Settings
| Key | Default | Description |
|---|---|---|
| | Google IP to connect through |
| | Domain shown to firewall |
| | Verify upstream TLS certs |
| | Multiple deployment IDs for load balancing |
| | Allow LAN devices to use proxy |
| | Hosts that return HTTP 403 (e.g. |
| | Hosts that go direct (no MITM/relay) |
Full config example with all advanced options
json
{
"mode": "apps_script",
"google_ip": "216.239.38.120",
"front_domain": "www.google.com",
"script_ids": [
"AKfycbDEPLOYMENT_ID_1",
"AKfycbDEPLOYMENT_ID_2"
],
"auth_key": "super-strong-random-password",
"listen_host": "0.0.0.0",
"listen_port": 8085,
"socks5_enabled": true,
"socks5_port": 1080,
"lan_sharing": true,
"log_level": "INFO",
"verify_ssl": true,
"block_hosts": [
".doubleclick.net",
"ads.example.com"
],
"bypass_hosts": [
"localhost",
".local",
".lan",
"192.168.1.1"
]
}CA Certificate Installation (Required for HTTPS)
The proxy performs MITM TLS interception. A local CA is generated at on first run. Install it once per machine/browser.
ca/ca.crtLinux (Ubuntu/Debian)
bash
sudo cp ca/ca.crt /usr/local/share/ca-certificates/masterhttp-relay.crt
sudo update-ca-certificatesmacOS
bash
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca/ca.crtWindows (PowerShell as Admin)
powershell
certutil -addstore -f "ROOT" ca\ca.crtFirefox (all platforms)
Settings → Privacy & Security → Certificates → View Certificates → Authorities → Import → select → check "Trust this CA to identify websites"
ca/ca.crt⚠️ Never share thefolder. Delete it to regenerate a fresh CA.ca/
Browser Proxy Configuration
HTTP Proxy:
SOCKS5 Proxy:
127.0.0.1:8085SOCKS5 Proxy:
127.0.0.1:1080Firefox
Settings → General → Network Settings → Manual proxy configuration:
- HTTP Proxy: , Port:
127.0.0.18085 - Check: "Also use this proxy for HTTPS"
Chrome/Edge (Windows system proxy)
Settings → Network → Proxy → Manual proxy setup →
127.0.0.1:8085Using curl for testing
bash
curl -x http://127.0.0.1:8085 https://example.com
# or SOCKS5
curl --socks5 127.0.0.1:1080 https://example.comUsing requests in Python
python
import requests
proxies = {
"http": "http://127.0.0.1:8085",
"https": "http://127.0.0.1:8085",
}
response = requests.get("https://example.com", proxies=proxies)
print(response.status_code)LAN Sharing Setup
Allow other devices on your network to use the proxy:
json
{
"lan_sharing": true,
"listen_host": "0.0.0.0",
"listen_port": 8085
}On startup, the proxy logs your LAN IP addresses. Configure other devices to use .
<YOUR_LAN_IP>:8085Load Balancing with Multiple Relays
Deploy multiple Google Apps Script projects and list all Deployment IDs:
json
{
"script_ids": [
"AKfycbFIRST_DEPLOYMENT_ID",
"AKfycbSECOND_DEPLOYMENT_ID",
"AKfycbTHIRD_DEPLOYMENT_ID"
],
"auth_key": "same-password-in-all-scripts"
}All Apps Script deployments must have the samevalue.AUTH_KEY
Common Patterns
Blocking ads/trackers
json
{
"block_hosts": [
".doubleclick.net",
".googlesyndication.com",
".googleadservices.com",
"ads.example.com"
]
}Bypassing local/LAN resources (no MITM)
json
{
"bypass_hosts": [
"localhost",
"127.0.0.1",
".local",
".lan",
".home.arpa",
"192.168.1.0/24"
]
}Running with debug logging
bash
# In config.json
{ "log_level": "DEBUG" }
# Or temporarily
python3 main.pyScripted config generation
python
import json
import secrets
config = {
"mode": "apps_script",
"google_ip": "216.239.38.120",
"front_domain": "www.google.com",
"script_id": "PASTE_DEPLOYMENT_ID_HERE",
"auth_key": secrets.token_urlsafe(32),
"listen_host": "127.0.0.1",
"listen_port": 8085,
"socks5_enabled": True,
"socks5_port": 1080,
"log_level": "INFO",
"verify_ssl": True
}
with open("config.json", "w") as f:
json.dump(config, f, indent=2)
print(f"Generated auth_key: {config['auth_key']}")
print("Remember to set this same value as AUTH_KEY in Code.gs")Troubleshooting
"Security warning" on every website
→ CA certificate not installed. Run or follow the manual install steps above.
python main.py --install-certConnection refused on port 8085
→ Check and in . Make sure is running.
listen_hostlisten_portconfig.jsonpython3 main.py"403 Forbidden" from relay
→ in does not match in deployed . Redeploy the script after fixing.
auth_keyconfig.jsonAUTH_KEYCode.gsGoogle Apps Script quota exceeded
→ Free tier has daily quotas. Add more in for load balancing across multiple deployments.
script_idsconfig.jsonverify_ssl
errors
verify_ssljson
{ "verify_ssl": false }Use only for testing; not recommended for production.
Regenerate CA certificate
bash
rm -rf ca/
python3 main.py # generates new ca/ca.crt on startup
# Then reinstall the certificate in OS/browserCan't install Python packages (behind firewall)
bash
pip install -r requirements.txt \
-i https://mirror-pypi.runflare.com/simple/ \
--trusted-host mirror-pypi.runflare.comTest the proxy is working
bash
# Should return your external IP routed through Google
curl -x http://127.0.0.1:8085 https://api.ipify.orgProject Structure
MasterHttpRelayVPN/
├── main.py # Entry point, starts HTTP + SOCKS5 listeners
├── setup.py # Interactive config wizard
├── config.json # Your configuration (gitignored)
├── config.example.json # Template
├── requirements.txt # Python dependencies
├── apps_script/
│ └── Code.gs # Google Apps Script relay code
├── ca/
│ ├── ca.crt # Generated CA certificate (install this)
│ └── ca.key # CA private key (keep secret)
├── start.sh # Linux/macOS quick start
└── start.bat # Windows quick start