
Port em Rust do MasterHttpRelayVPN do @masterking32 — todo crédito ao @masterking32 pela ideia original e implementação em Python. Bypass DPI gratuito via um relay do Google Apps Script com ocultação de SNI TLS. CLI + interface de desktop multiplataforma, proxy HTTP + SOCKS5, sem dependências de runtime.
Um pequeno programa que roda no seu computador e permite visitar sites bloqueados gratuitamente, usando um Google Apps Script que você implanta na sua própria conta gratuita do Google. Sua operadora vê apenas tráfego criptografado para www.google.com — ela não consegue saber o que você realmente está visitando.
🇬🇧 Guia Rápido em Inglês · Guia Completo (tópicos avançados) 🇮🇷 راهاندازی سریع فارسی · راهنمای کامل (مباحث پیشرفته)
۱. راهنمای تصویری راه اندازی به زبان فارسی (YouTube)
۲. راهنمای جامع متنی راه اندازی به زبان فارسی با تشکر از Kian Irani
você → navegador → mhrv-rs ──┐
│ ISP só vê: www.google.com
▼
Rede do Google
│
▼
seu Apps Script gratuito busca o site real
│
▼
Twitter / ChatGPT / site bloqueado de sua escolha
ISPs não conseguem ler dentro do HTTPS criptografado. Eles veem apenas o endereço — www.google.com. A consulta real da página acontece dentro da rede do Google, oculta no túnel criptografado.
Cerca de 5 minutos. Você precisa de:
assets/apps_script/Code.gs neste repositório, copie todo o conteúdo, cole no editor do Apps Script (substituindo o que estava lá)const AUTH_KEY = "CHANGE_ME_TO_A_STRONG_SECRET";
CHANGE_ME_TO_A_STRONG_SECRET para uma longa string aleatória de sua escolha. Guarde esta string — você a colará no aplicativo no Passo 3. Trate-a como uma senha.Ctrl/Cmd+S)Dica: se você atualizar
Code.gsdepois, não crie um novo deployment. Edite o código, depois vá em Deploy → Manage deployments → ✏️ → Version: New version → Deploy. O Deployment ID permanece o mesmo.
Acesse a página do último lançamento e baixe o arquivo para seu computador:
Mac: não tem certeza se é Apple Silicon ou Intel? Clique em → About This Mac. Se "Chip" disser Apple, pegue arm64. Se Intel, pegue amd64.
Linux: recebendo erro
GLIBC? Use o arquivolinux-musl-amd64— funciona em qualquer Linux sem dependências.
Descompacte.
Clique duas vezes no lançador:
| Mac | run.command |
| Windows | run.bat |
| Linux | ./run.sh (em um terminal) |
Na primeira vez, ele pede a senha do seu computador. Isso é para instalar um pequeno certificado para que seu navegador confie no mhrv-rs. O certificado é gerado no seu computador e nunca sai dele — nenhuma nuvem, nenhum Google, nada remoto pode usá-lo.
A janela do mhrv-rs abre. Preencha:
Code.gsClique em Save config, depois Start. O círculo de status fica verde se funcionar.
Teste: clique no botão Test. Ele envia uma requisição através do relay e informa se funcionou.
127.0.0.1 Porta: 8085Instale a extensão Proxy SwitchyOmega e configure o proxy para 127.0.0.1:8085.
System Settings → Network → Wi-Fi → Details → Proxies → habilite Web Proxy (HTTP) e Secure Web Proxy (HTTPS), ambos apontando para 127.0.0.1:8085.
Abra qualquer site bloqueado em seu navegador. Deve carregar.
Se algo não funcionar:
É realmente gratuito? Sim. O Google oferece a cada conta 20.000 requisições de URL de saída por dia no nível gratuito. Isso é suficiente para a navegação normal de uma pessoa. Para uma família de 3-4 pessoas compartilhando a mesma configuração, faça 2-3 deployments em diferentes contas do Google e adicione todos os IDs.
É seguro? O certificado permanece no seu computador — ninguém mais tem a chave privada. Sua auth_key é seu segredo. O Google vê os sites que você visita através do relay (porque o Apps Script os busca em seu nome) — igual a qualquer proxy hospedado. Se você não se sentir confortável com isso, use o modo Full Tunnel com seu próprio VPS — veja o guia completo.
Vídeos do YouTube não tocam. Os chunks de vídeo do YouTube vêm de googlevideo.com, que o Apps Script não consegue acessar (o Google bloqueia o Apps Script de acessar o próprio CDN de vídeo). A página em si carrega bem; apenas a reprodução de vídeo é afetada. Correção: Full Tunnel + VPS, ou adicione .googlevideo.com a passthrough_hosts na sua configuração (o navegador acessa diretamente, mas em ISPs do Irã ainda é limitado).
ChatGPT / Claude / Grok mostra um CAPTCHA do Cloudflare. O Cloudflare marca IPs de datacenter do Google como bots. Correção: configure um exit node — um pequeno handler TypeScript que você implanta em um host serverless (Deno Deploy, fly.io, seu próprio VPS) que faz a ponte Apps Script → seu exit node → claude.ai. Veja assets/exit_node/README.md.
Telegram é instável. O Telegram usa MTProto, que o Apps Script não entende. Combine com xray na sua máquina — veja Telegram via xray no guia completo.
O ISP bloqueia o próprio script.google.com. O mhrv-rs tem um modo direct que usa apenas o túnel de reescrita SNI (sem Apps Script). Use-o uma vez para acessar script.google.com e implantar seu script, depois mude para o modo apps_script. Veja modo direct.
Minha busca no Google aparece sem JavaScript. O User-Agent do Apps Script é fixo em Google-Apps-Script (o Google não permite que scripts o alterem), então alguns sites servem uma versão sem JS. Solução alternativa: adicione o domínio afetado ao seu mapa hosts para que ele passe pelo túnel de reescrita SNI com o User-Agent real do seu navegador. google.com, youtube.com, fonts.googleapis.com já estão nesta lista por padrão.
Mais perguntas: FAQ completo no guia detalhado.
auth_key!), exatamente o que tentou, exatamente o que viu no logProjeto original: @masterking32/MasterHttpRelayVPN. A ideia, o protocolo Apps Script, a arquitetura de proxy — tudo dele. Este port em Rust existe para facilitar a distribuição no lado do cliente (binário único, sem instalação de Python).
A maior parte do código Rust neste port foi escrita com Claude da Anthropic, revisada por um humano em cada commit.
❤️ Doe em sh1n.org — cobre custos de hospedagem e CI runner. Dar estrela no repositório também ajuda a sinalizar que o projeto vale a pena ser mantido.
یک برنامهٔ کوچک که روی کامپیوترت اجرا میشود و کمک میکند سایتهای مسدودشده را با یک اسکریپت رایگان که توی حساب گوگل خودت میسازی، باز کنی. ISP فقط میبیند که داری به www.google.com وصل میشوی — نمیفهمد در واقع چه سایتی را باز کردهای.
🇬🇧 English Quick Start · Full Guide (advanced) 🇮🇷 راهاندازی سریع · راهنمای کامل (پیشرفته)
تو ← مرورگر ← mhrv-rs ──┐
│ ISP فقط میبیند: www.google.com
▼
شبکهٔ گوگل
│
▼
اسکریپت رایگان گوگل تو سایت اصلی را باز میکند
│
▼
توییتر / ChatGPT / هر سایت مسدودی
| Seu sistema | Baixe este |
|---|
| Mac com chip Apple Silicon (M1 / M2 / M3 / M4) | mhrv-rs-macos-arm64-app.zip |
| Mac com chip Intel | mhrv-rs-macos-amd64-app.zip |
| Windows | mhrv-rs-windows-amd64.zip |
| Linux (Ubuntu / Mint / Fedora / Debian / Arch) | mhrv-rs-linux-amd64.tar.gz |
| Celular ou tablet Android | mhrv-rs-android-universal-v*.apk |
| Roteador OpenWRT ou Alpine | mhrv-rs-linux-musl-amd64.tar.gz |
ISP داخل HTTPS رمزشده را نمیتواند بخواند. فقط آدرس را میبیند — www.google.com. جستوجوی واقعی صفحه داخل شبکهٔ گوگل، در تونل رمزشده اتفاق میافتد.
حدود ۵ دقیقه. نیاز داری به:
۱. به script.google.com برو، با حساب گوگل خودت وارد شو
۲. روی New project بالا سمت چپ کلیک کن
۳. کد پیشفرض ویرایشگر را پاک کن
۴. فایل assets/apps_script/Code.gs را در همین ریپو باز کن، همهاش را کپی کن، در ویرایشگر Apps Script پیست کن (جایگزین متن قبلی)
۵. این خط را نزدیک بالای کد پیدا کن:
const AUTH_KEY = "CHANGE_ME_TO_A_STRONG_SECRET";
مقدار CHANGE_ME_TO_A_STRONG_SECRET را با یک رشتهٔ تصادفی طولانیِ خودت عوض کن. این رشته را نگه دار — در مرحلهٔ ۳ داخل برنامه پیست میکنی. مثل پسورد محرمانه نگهاش دار.
۶. روی 💾 Save کلیک کن (یا Ctrl/Cmd+S)
۷. روی Deploy (بالا سمت راست) → New deployment
۸. روی آیکون چرخدندهٔ ⚙ کنار "Select type" کلیک کن → Web app را انتخاب کن
۹. تنظیم کن:
نکته: اگر بعداً
Code.gsرا بهروزرسانی کنی، Deployment جدید نساز. کد را ویرایش کن، بعد Deploy → Manage deployments → ✏️ → Version: New version → Deploy. Deployment ID همان قبلی میماند.
به صفحهٔ آخرین release برو و فایل مناسب کامپیوترت را دانلود کن:
| سیستم تو | فایل دانلود |
|---|---|
| مک با تراشهٔ Apple Silicon (M1 / M2 / M3 / M4) | mhrv-rs-macos-arm64-app.zip |
| مک با تراشهٔ Intel | mhrv-rs-macos-amd64-app.zip |
| ویندوز | mhrv-rs-windows-amd64.zip |
| لینوکس (Ubuntu / Mint / Fedora / Debian / Arch) | mhrv-rs-linux-amd64.tar.gz |
| گوشی یا تبلت اندروید | mhrv-rs-android-universal-v*.apk |
| روتر OpenWRT یا Alpine | mhrv-rs-linux-musl-amd64.tar.gz |
مک: مطمئن نیستی Apple Silicon است یا Intel؟ کلیک کن → About This Mac. اگر "Chip" نوشت Apple، arm64 بگیر. اگر Intel بود، amd64.
لینوکس: خطای
GLIBCمیگیری؟ بهجای آن ازlinux-musl-amd64استفاده کن — روی هر لینوکسی بدون وابستگی کار میکند.
از حالت فشرده دربیار.
روی فایل اجرا دو بار کلیک کن:
| مک | run.command |
| ویندوز | run.bat |
| لینوکس | ./run.sh (در ترمینال) |
اولین بار رمز کامپیوترت را میخواهد. این برای نصب یک گواهی کوچک است تا مرورگرت به mhrv-rs اعتماد کند. گواهی روی کامپیوتر خودت ساخته میشود و هیچوقت جایی ارسال نمیشود — نه روی ابر، نه به گوگل، هیچ منبع راهدوری نمیتواند ازش استفاده کند.
پنجرهٔ mhrv-rs باز میشود. این فیلدها را پر کن:
Code.gs گذاشتیروی Save config و بعد Start بزن. اگر کار کند، دایرهٔ وضعیت سبز میشود.
تستش کن: دکمهٔ Test را بزن. یک درخواست از طریق رله میفرستد و میگوید کار کرد یا نه.
۱. فایرفاکس → منوی ☰ → Settings
۲. در کادر جستوجو "proxy" تایپ کن
۳. زیر Network Settings روی Settings… کلیک کن
۴. Manual proxy configuration را انتخاب کن
۵. HTTP Proxy: 127.0.0.1 پورت: 8085
۶. ☑ "Also use this proxy for HTTPS" را تیک بزن
۷. OK
افزونهٔ Proxy SwitchyOmega را نصب کن و پروکسی را روی 127.0.0.1:8085 تنظیم کن.
System Settings → Network → Wi-Fi → Details → Proxies → هر دو Web Proxy (HTTP) و Secure Web Proxy (HTTPS) را روشن کن، هر دو روی 127.0.0.1:8085.
در مرورگرت یک سایت مسدود را باز کن. باید لود شود.
اگر چیزی کار نکرد:
واقعاً رایگانه؟ بله. گوگل به هر حساب روزانه ۲۰٬۰۰۰ درخواست خروجی URL در سهمیهٔ رایگان میدهد. برای مرور عادی یک نفر کاملاً کافی است. برای خانوادهٔ ۳-۴ نفره که از یک سرویس استفاده میکنند، در ۲-۳ حساب گوگل مختلف Deployment بساز و همهٔ IDها را اضافه کن.
امنه؟ گواهی روی کامپیوتر خودت میماند — کسی کلید خصوصی را ندارد. auth_key رمز محرمانهٔ توست. گوگل سایتهایی که از طریق رله باز میکنی را میبیند (چون Apps Script برای تو fetch میکند) — مثل هر پروکسی میزبانیشدهٔ دیگری. اگر این برایت قابل قبول نیست، از Full Tunnel با VPS شخصی استفاده کن — در راهنمای کامل.
ویدیوی یوتیوب پخش نمیشود. chunkهای ویدیوی یوتیوب از googlevideo.com میآیند و Apps Script نمیتواند به آن برسد (گوگل اجازهٔ دسترسی Apps Script به CDN ویدیوی خودش را نمیدهد). صفحهٔ خود یوتیوب لود میشود، فقط پخش ویدیو تحت تأثیر است. راهحل: Full Tunnel + VPS، یا .googlevideo.com را به passthrough_hosts در کانفیگت اضافه کن (مرورگر مستقیم میرود اما روی ISP ایران throttle میخورد).
ChatGPT / Claude / Grok کپچای Cloudflare نشان میدهد. Cloudflare آیپیهای دیتاسنتر گوگل را بهعنوان bot شناسایی میکند. راهحل: یک exit node راهاندازی کن — یک handler کوچک TypeScript که روی یک host serverless (Deno Deploy، fly.io، VPS شخصی) deploy میکنی و پل میسازه از Apps Script به سایت Cloudflare. assets/exit_node/README.fa.md.
تلگرام پایدار نیست. تلگرام از MTProto استفاده میکند که Apps Script نمیفهمد. روی کامپیوترت با xray جفتش کن — بخش تلگرام در راهنمای کامل.
ISP خود script.google.com را مسدود کرده. mhrv-rs یک حالت direct دارد که فقط از تونل بازنویسی SNI استفاده میکند (بدون Apps Script). یکبار از این حالت استفاده کن تا به script.google.com برسی و اسکریپت را دیپلوی کنی، بعد به حالت apps_script سوئیچ کن. حالت direct.
جستوجوی گوگلم بدون JavaScript ظاهر میشود. User-Agent Apps Script ثابت روی Google-Apps-Script است (گوگل نمیگذارد اسکریپتها عوضش کنند)، پس بعضی سایتها نسخهٔ بدون JS برمیگردانند. راهحل: دامنهٔ مورد نظر را به hosts اضافه کن تا از تونل بازنویسی SNI با User-Agent واقعی مرورگرت برود. google.com، youtube.com، fonts.googleapis.com بهطور پیشفرض در این لیستاند.
سؤالات بیشتر: FAQ کامل در راهنمای بلند.
auth_key را پنهان کن!)، دقیقاً چه کاری کردی، دقیقاً چه دیدی در logپروژهٔ اصلی: @masterking32/MasterHttpRelayVPN. ایده، پروتکل Apps Script، معماری پروکسی — همه از اوست. این پورت Rust برای سادهتر کردن توزیع سمت کلاینت است (یک فایل اجرایی، بدون نصب پایتون).
بیشتر کد Rust این پورت با کمک Claude شرکت Anthropic نوشته شده، روی هر commit انسانی بازبینی شده.
❤️ کمک مالی در sh1n.org — برای پوشش هزینهٔ هاستینگ و runner CI. ستاره دادن به ریپو هم نشان میدهد پروژه ارزش ادامه دادن دارد.