
MasterHttpRelayVPN-RUST v1.9.37
Rust 移植版 @masterking32 的 MasterHttpRelayVPN — 所有功劳归功于 @masterking32 的原始创意和 Python 实现。通过带有 TLS SNI 隐藏的 Google Apps Script 中继实现免费 DPI 绕过。CLI + 跨平台桌面 UI,HTTP + SOCKS5 代理,无运行时依赖。
mhrv-rs — 免费绕过审查,使用你自己的 Google 账户
一个在你电脑上运行的小程序,使用你部署在自己免费 Google 账户中的 Google Apps Script,让你免费访问被屏蔽的网站。你的 ISP 只能看到加密流量发往 www.google.com —— 它不知道你实际在访问什么。
🇬🇧 英文快速入门 · 完整指南(高级主题) 🇮🇷 راهاندازی سریع فارسی · راهنمای کامل (مباحث پیشرفته)
۱. راهنمای تصویری راه اندازی به زبان فارسی (YouTube)
۲. راهنمای جامع متنی راه اندازی به زبان فارسی با تشکر از Kian Irani
你得到什么
- 🌐 绕过 DPI / SNI 封锁 – 利用 Google 的边缘节点作为中继
- 💯 完全免费 – 运行在你自己的 Google 账户免费额度上
- ⚡ 单个小文件(约 3 MB),无需 Python、Node.js 或任何依赖
- 🖥️ 支持 Mac、Windows、Linux、Android、OpenWRT 路由器
- 🦊 任何支持 HTTP 代理或 SOCKS5 的浏览器或应用
工作原理(简单示意)
你 → 浏览器 → mhrv-rs ──┐
│ ISP 只能看到:www.google.com
▼
Google 的网络
│
▼
你免费的 Apps Script 获取真实网站
│
▼
Twitter / ChatGPT / 你选择被屏蔽的网站
ISP 无法读取加密的 HTTPS 数据。他们只能看到地址 —— www.google.com。实际的页面查找发生在 Google 的网络内部,隐藏在加密隧道中。
快速入门
大约 5 分钟。 你需要:
- 一个免费的 Google 账户(任何 Gmail 都可以)
- 一台电脑(Mac、Windows 或 Linux)
- Firefox 或 Chrome
第 1 步 — 创建 Google Apps Script(一次性操作)
- 前往 script.google.com,用你的 Google 账户登录
- 点击左上角的 New project
- 删除编辑器中的默认代码
- 打开本仓库中的文件
assets/apps_script/Code.gs,复制所有内容,粘贴到 Apps Script 编辑器中(替换原有代码) - 在文件顶部附近找到这一行:
将
const AUTH_KEY = "CHANGE_ME_TO_A_STRONG_SECRET";CHANGE_ME_TO_A_STRONG_SECRET替换为你自己生成的长随机字符串。请保存这个字符串 —— 第 3 步需要粘贴到应用中。把它当作密码来保护。 - 点击 💾 Save(或
Ctrl/Cmd+S) - 点击 Deploy(右上角)→ New deployment
- 点击“Select type”旁边的齿轮图标 ⚙ → 选择 Web app
- 设置:
- Execute as: Me(你的 Google 账户)
- Who has access: Anyone
- 点击 Deploy。Google 可能会请求权限 —— 点击 Authorize access 并批准
- Google 会显示一个 Deployment ID(一长串随机字符串)。复制它 —— 第 3 步需要用到。
提示: 如果你以后更新了
Code.gs,不要创建新部署。编辑代码后,进入 Deploy → Manage deployments → ✏️ → Version: New version → Deploy。Deployment ID 保持不变。
第 2 步 — 下载 mhrv-rs
前往最新发布页面,下载适合你电脑的文件:
| 你的系统 | 下载此文件 |
|---|---|
| 搭载 Apple Silicon 芯片的 Mac(M1 / M2 / M3 / M4) | mhrv-rs-macos-arm64-app.zip |
| 搭载 Intel 芯片的 Mac | 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 手机或平板 | mhrv-rs-android-universal-v*.apk |
| OpenWRT 路由器或 Alpine | mhrv-rs-linux-musl-amd64.tar.gz |
Mac:不确定是 Apple Silicon 还是 Intel? 点击 → About This Mac。如果“芯片”显示 Apple,则下载 arm64 版本;如果显示 Intel,则下载 amd64 版本。
Linux:遇到
GLIBC错误? 改用linux-musl-amd64文件 —— 它无需依赖即可在任何 Linux 上运行。
解压文件。
第 3 步 — 首次运行
双击启动器:
| Mac | run.command |
| Windows | run.bat |
| Linux | ./run.sh(在终端中运行) |
首次运行时会要求输入你的电脑密码。这是为了安装一个小型证书,以便你的浏览器信任 mhrv-rs。此证书在你的电脑上生成,永远不会离开你的电脑 —— 没有云端、Google 或任何远程方可以使用它。
mhrv-rs 窗口打开。填写以下内容:
- Apps Script ID(s) → 粘贴第 1 步中的 Deployment ID
- Auth key → 粘贴你在
Code.gs中设置的一串随机字符 - 其他设置保持默认
点击 Save config,然后点击 Start。如果正常工作,状态圆圈会变成绿色。
测试一下: 点击 Test 按钮。它会通过中继发送一个请求,并告诉你是否成功。
第 4 步 — 让浏览器使用 mhrv-rs
Firefox(推荐 —— 最简单)
- Firefox → ☰ 菜单 → Settings
- 在搜索框中搜索“proxy”
- 在“Network Settings”下点击 Settings…
- 选择 Manual proxy configuration
- HTTP Proxy:
127.0.0.1端口:8085 - ☑ 勾选 “Also use this proxy for HTTPS”
- 点击 OK
Chrome / Edge
安装 Proxy SwitchyOmega 扩展,并将代理设置为 127.0.0.1:8085。
macOS(全局设置)
系统设置 → 网络 → Wi-Fi → 详细信息 → 代理 → 同时启用 Web Proxy (HTTP) 和 Secure Web Proxy (HTTPS),两者都指向 127.0.0.1:8085。
第 5 步 — 尝试访问
在浏览器中打开任意被屏蔽的网站。它应该能正常加载。
如果某个网站无法访问:
- 点击 mhrv-rs 窗口中的 Test 按钮 —— 它会指出哪个步骤失败了
- 查看窗口底部的 Recent log 面板
- 参见下面的常见问题
常见问题
这真的免费吗? 是的。Google 为每个账户提供每天 20,000 次出站 URL 抓取的免费额度。对于一个人正常浏览来说完全足够。如果一个家庭 3-4 人共享同一设置,可以在不同 Google 账户中创建 2-3 次部署,并将所有 ID 都添加进去。
安全吗? 证书保存在你的电脑上 —— 没有其他人拥有私钥。你的 auth_key 是你的密钥。Google 会看到通过中继访问的网站(因为 Apps Script 会代表你抓取它们)—— 这与任何托管代理一样。如果你对此感到不自在,请使用 Full Tunnel 模式配合自己的 VPS —— 参见完整指南。
YouTube 视频无法播放。 YouTube 的视频片段来自 googlevideo.com,Apps Script 无法访问(Google 禁止 Apps Script 访问其自己的视频 CDN)。页面本身加载正常,只有视频播放受影响。解决方法:配合 VPS 使用 Full Tunnel,或者将 .googlevideo.com 添加到配置的 passthrough_hosts 中(浏览器直接访问,但在伊朗 ISP 下仍会被限速)。
ChatGPT / Claude / Grok 显示 Cloudflare CAPTCHA。 Cloudflare 会将 Google 数据中心 IP 标记为机器人。解决方法:设置一个 出口节点(exit node) —— 一个小型 TypeScript 处理程序,部署在无服务器主机(Deno Deploy、fly.io 或你自己的 VPS)上,连接 Apps Script → 出口节点 → claude.ai。参见 assets/exit_node/README.md。
Telegram 不稳定。 Telegram 使用 MTProto,Apps Script 不支持。请在你的机器上配合 xray 使用 —— 参见完整指南中的 Telegram via xray。
ISP 封锁了 script.google.com 本身。 mhrv-rs 有一个 direct 模式,仅使用 SNI 重写隧道(不使用 Apps Script)。使用此模式一次来访问 script.google.com 部署脚本,然后切换回 apps_script 模式。参见 direct mode。
我的 Google 搜索显示无 JavaScript 版本。 Apps Script 的 User-Agent 固定为 Google-Apps-Script(Google 不允许脚本更改它),因此某些网站会提供无 JS 的降级版本。解决方法:将受影响的域名添加到 hosts 映射中,使其通过 SNI 重写隧道使用浏览器真实的 User-Agent 访问。google.com、youtube.com、fonts.googleapis.com 默认已在此列表中。
更多问题: 完整指南中的 FAQ。
需要帮助?
- 搜索已打开和已关闭的问题 —— 你的问题可能已有答案
- 打开新问题时请提供:你的配置(隐藏
auth_key!)、你尝试的具体步骤、你在日志中看到的具体内容
致谢
原始项目:@masterking32/MasterHttpRelayVPN。想法、Apps Script 协议、代理架构 —— 全是他的。这个 Rust 移植版旨在简化客户端分发(单一二进制文件,无需安装 Python)。
本移植版中的大部分 Rust 代码由 Anthropic 的 Claude 编写,每次提交都经过人工审查。
支持本项目
❤️ 在 sh1n.org 捐赠 —— 用于支付托管和 CI 运行器费用。给仓库加星也有助于表明该项目值得维护。
mhrv-rs — دور زدن سانسور بهرایگان، با حساب گوگل خودت
یک برنامهٔ کوچک که روی کامپیوترت اجرا میشود و کمک میکند سایتهای مسدودشده را با یک اسکریپت رایگان که توی حساب گوگل خودت میسازی، باز کنی. ISP فقط میبیند که داری به www.google.com وصل میشوی — نمیفهمد در واقع چه سایتی را باز کردهای.
🇬🇧 English Quick Start · Full Guide (advanced) 🇮🇷 راهاندازی سریع · راهنمای کامل (پیشرفته)
چی به دست میآوری
- 🌐 عبور از DPI / مسدودسازی SNI با لبهٔ گوگل بهعنوان رله
- 💯 کاملاً رایگان — روی سهمیهٔ رایگان حساب گوگل خودت
- ⚡ یک فایل کوچک (~۳ مگابایت)، بدون پایتون، بدون Node.js، بدون وابستگی
- 🖥️ روی مک، ویندوز، لینوکس، اندروید، روتر OpenWRT کار میکند
- 🦊 هر مرورگر یا برنامهای که از HTTP proxy یا SOCKS5 پشتیبانی کند
چطور کار میکند (تصویر ساده)
تو ← مرورگر ← mhrv-rs ──┐
│ ISP فقط میبیند: www.google.com
▼
شبکهٔ گوگل
│
▼
اسکریپت رایگان گوگل تو سایت اصلی را باز میکند
│
▼
توییتر / ChatGPT / هر سایت مسدودی
ISP داخل HTTPS رمزشده را نمیتواند بخواند. فقط آدرس را میبیند — www.google.com. جستوجوی واقعی صفحه داخل شبکهٔ گوگل، در تونل رمزشده اتفاق میافتد.
راهاندازی سریع
حدود ۵ دقیقه. نیاز داری به:
- یک حساب گوگل رایگان (هر Gmailای کار میکند)
- یک کامپیوتر (مک، ویندوز یا لینوکس)
- فایرفاکس یا کروم
مرحلهٔ ۱ — ساخت اسکریپت گوگل (یکبار)
۱. به 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 را انتخاب کن
۹. تنظیم کن:
- Execute as: Me (حساب گوگل خودت)
- Who has access: Anyone ۱۰. Deploy را بزن. ممکن است گوگل برای دادن دسترسی سؤال کند — Authorize access را بزن و تأیید کن ۱۱. گوگل یک Deployment ID نشانت میدهد (یک رشتهٔ تصادفی طولانی). کپیاش کن — در مرحلهٔ ۳ لازم داری.
نکته: اگر بعداً
Code.gsرا بهروزرسانی کنی، Deployment جدید نساز. کد را ویرایش کن، بعد Deploy → Manage deployments → ✏️ → Version: New version → Deploy. Deployment ID همان قبلی میماند.
مرحلهٔ ۲ — دانلود mhrv-rs
به صفحهٔ آخرین 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 باز میشود. این فیلدها را پر کن:
- Apps Script ID(s) ← Deployment ID از مرحلهٔ ۱ را پیست کن
- Auth key ← همان رشتهٔ تصادفی که در
Code.gsگذاشتی - بقیه را پیشفرض ول کن
روی Save config و بعد Start بزن. اگر کار کند، دایرهٔ وضعیت سبز میشود.
تستش کن: دکمهٔ Test را بزن. یک درخواست از طریق رله میفرستد و میگوید کار کرد یا نه.
مرحلهٔ ۴ — مرورگر را روی mhrv-rs تنظیم کن
فایرفاکس (پیشنهادی — سادهترین)
۱. فایرفاکس → منوی ☰ → Settings
۲. در کادر جستوجو "proxy" تایپ کن
۳. زیر Network Settings روی Settings… کلیک کن
۴. Manual proxy configuration را انتخاب کن
۵. HTTP Proxy: 127.0.0.1 پورت: 8085
۶. ☑ "Also use this proxy for HTTPS" را تیک بزن
۷. OK
کروم / Edge
افزونهٔ 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.
مرحلهٔ ۵ — امتحان کن
در مرورگرت یک سایت مسدود را باز کن. باید لود شود.
اگر چیزی کار نکرد:
- در پنجرهٔ mhrv-rs دکمهٔ Test را بزن — میگوید کجا گیر کرده
- پنل Recent log پایین پنجره را نگاه کن
- بخش سؤالات رایج پایین را ببین
سؤالات رایج
واقعاً رایگانه؟ بله. گوگل به هر حساب روزانه ۲۰٬۰۰۰ درخواست خروجی 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 کامل در راهنمای بلند.
کمک میخواهی؟
- در issueهای باز و بسته جستوجو کن — احتمالاً مشکلت قبلاً جواب داده شده
- یک issue جدید باز کن با: کانفیگت (حتماً
auth_keyرا پنهان کن!)، دقیقاً چه کاری کردی، دقیقاً چه دیدی در log
اعتبار
پروژهٔ اصلی: @masterking32/MasterHttpRelayVPN. ایده، پروتکل Apps Script، معماری پروکسی — همه از اوست. این پورت Rust برای سادهتر کردن توزیع سمت کلاینت است (یک فایل اجرایی، بدون نصب پایتون).
بیشتر کد Rust این پورت با کمک Claude شرکت Anthropic نوشته شده، روی هر commit انسانی بازبینی شده.
حمایت از پروژه
❤️ کمک مالی در sh1n.org — برای پوشش هزینهٔ هاستینگ و runner CI. ستاره دادن به ریپو هم نشان میدهد پروژه ارزش ادامه دادن دارد.