
MasterHttpRelayVPN-RUST v1.9.37
Rust port of @masterking32's MasterHttpRelayVPN — all credit to @masterking32 for the original idea and Python implementation. Free DPI bypass via a Google Apps Script relay with TLS SNI concealment. CLI + cross-platform desktop UI, HTTP + SOCKS5 proxy, no runtime deps.
mhrv-rs — bypass censorship for free, with your own Google account
A small program that runs on your computer and lets you visit blocked websites for free, using a Google Apps Script you deploy in your own free Google account. Your ISP only sees encrypted traffic to www.google.com — it can't tell what you're really visiting.
🇬🇧 English Quick Start · Full Guide (advanced topics) 🇮🇷 راهاندازی سریع فارسی · راهنمای کامل (مباحث پیشرفته)
۱. راهنمای تصویری راه اندازی به زبان فارسی (YouTube)
۲. راهنمای جامع متنی راه اندازی به زبان فارسی با تشکر از Kian Irani
What you get
- 🌐 Bypasses DPI / SNI blocking by using Google's edge as a relay
- 💯 Completely free — runs on your own Google account's free tier
- ⚡ One small file (~3 MB), no Python, no Node.js, no dependencies
- 🖥️ Works on Mac, Windows, Linux, Android, OpenWRT routers
- 🦊 Any browser or app that supports HTTP proxy or SOCKS5
How it works (the simple picture)
you → browser → mhrv-rs ──┐
│ ISP only sees: www.google.com
▼
Google's network
│
▼
your free Apps Script fetches the real site
│
▼
Twitter / ChatGPT / blocked-site of your choice
ISPs can't read inside encrypted HTTPS. They only see the address — www.google.com. The actual page lookup happens inside Google's network, hidden in the encrypted tunnel.
Quick Start
About 5 minutes. You need:
- A free Google account (any Gmail works)
- A computer (Mac, Windows, or Linux)
- Firefox or Chrome
Step 1 — Make the Google Apps Script (one-time)
- Go to script.google.com, sign in with your Google account
- Click New project at the top left
- Delete the default code in the editor
- Open the file
assets/apps_script/Code.gsin this repo, copy all of it, paste into the Apps Script editor (replacing what was there) - Find this line near the top:
Changeconst AUTH_KEY = "CHANGE_ME_TO_A_STRONG_SECRET";CHANGE_ME_TO_A_STRONG_SECRETto a long random string of your own. Keep this string — you'll paste it into the app in Step 3. Treat it like a password. - Click 💾 Save (or
Ctrl/Cmd+S) - Click Deploy (top right) → New deployment
- Click the gear icon ⚙ next to "Select type" → choose Web app
- Set:
- Execute as: Me (your Google account)
- Who has access: Anyone
- Click Deploy. Google may ask for permissions — click Authorize access and approve
- Google shows a Deployment ID (a long random string). Copy it — you'll need it in Step 3.
Tip: if you ever update
Code.gslater, don't make a new deployment. Edit the code, then go to Deploy → Manage deployments → ✏️ → Version: New version → Deploy. The Deployment ID stays the same.
Step 2 — Download mhrv-rs
Go to the latest release page and download the file for your computer:
| You're on | Download this |
|---|---|
| Mac with Apple Silicon (M1 / M2 / M3 / M4 chip) | mhrv-rs-macos-arm64-app.zip |
| Mac with Intel chip | mhrv-rs-macos-amd64-app.zip |
| Windows | mhrv-rs-windows-amd64.zip |
| Linux (Ubuntu / Mint / Fedora / Debian / Arch) | mhrv-rs-linux-amd64.tar.gz |
| Android phone or tablet | mhrv-rs-android-universal-v*.apk |
| OpenWRT router or Alpine | mhrv-rs-linux-musl-amd64.tar.gz |
Mac: not sure if Apple Silicon or Intel? Click → About This Mac. If "Chip" says Apple, get arm64. If Intel, get amd64.
Linux: getting a
GLIBCerror? Use thelinux-musl-amd64file instead — it works on any Linux without dependencies.
Unzip it.
Step 3 — First run
Double-click the launcher:
| Mac | run.command |
| Windows | run.bat |
| Linux | ./run.sh (in a terminal) |
The first time, it asks for your computer password. This is to install one small certificate so your browser trusts mhrv-rs. The certificate is generated on your computer and never leaves it — no cloud, no Google, nothing remote can use it.
The mhrv-rs window opens. Fill in:
- Apps Script ID(s) → paste the Deployment ID from Step 1
- Auth key → paste the random string you put in
Code.gs - Leave everything else at the defaults
Click Save config, then Start. The status circle goes green if it works.
Test it: click the Test button. It sends one request through the relay and tells you if it worked.
Step 4 — Tell your browser to use mhrv-rs
Firefox (recommended — easiest)
- Firefox → ☰ menu → Settings
- Search "proxy" in the search box
- Click Settings… under Network Settings
- Choose Manual proxy configuration
- HTTP Proxy:
127.0.0.1Port:8085 - ☑ Check "Also use this proxy for HTTPS"
- Click OK
Chrome / Edge
Install the Proxy SwitchyOmega extension and set proxy to 127.0.0.1:8085.
macOS (whole system)
System Settings → Network → Wi-Fi → Details → Proxies → enable both Web Proxy (HTTP) and Secure Web Proxy (HTTPS), both pointing to 127.0.0.1:8085.
Step 5 — Try it
Open any blocked site in your browser. It should load.
If something doesn't work:
- Click Test in the mhrv-rs window — it pinpoints which step is failing
- Look at the Recent log panel at the bottom of the window
- See Common questions below
Common questions
Is this really free? Yes. Google gives every account 20,000 outbound URL fetches per day on the free tier. That's plenty for one person's normal browsing. For a family of 3–4 sharing the same setup, make 2–3 deployments in different Google accounts and add all the IDs.