therealaleph/MasterHttpRelayVPN-RUST

GitHub: therealaleph/MasterHttpRelayVPN-RUST

一款基于 Rust 的跨平台工具,利用用户自有 Google 账号的 Apps Script 充当免费中继,帮助绕过 DPI 与 SNI 审查以访问被封锁的网站。

Stars: 3638 | Forks: 549

# mhrv-rs — 免费绕过审查,使用你自己的 Google 账号 [![最新发布](https://img.shields.io/github/v/release/therealaleph/MasterHttpRelayVPN-RUST?display_name=tag&logo=github&label=release&color=blue&cacheSeconds=300)](https://github.com/therealaleph/MasterHttpRelayVPN-RUST/releases/latest) [![下载量](https://img.shields.io/github/downloads/therealaleph/MasterHttpRelayVPN-RUST/total.svg?label=downloads&logo=github&cacheSeconds=300)](https://github.com/therealaleph/MasterHttpRelayVPN-RUST/releases) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/64/64f96943e530c079a780e46d8bc3fe41af837c35cadbc388133edba520d84ff9.svg)](https://github.com/therealaleph/MasterHttpRelayVPN-RUST/actions/workflows/release.yml) [![许可协议: MIT](https://img.shields.io/github/license/therealaleph/MasterHttpRelayVPN-RUST?color=blue)](LICENSE) [![Stars](https://img.shields.io/github/stars/therealaleph/MasterHttpRelayVPN-RUST?style=flat&logo=github)](https://github.com/therealaleph/MasterHttpRelayVPN-RUST/stargazers) [![支持](https://img.shields.io/badge/❤️_Support-sh1n.org-red?style=flat)](https://sh1n.org/donate) **一个小程序,运行在你的电脑上,通过部署在你个人免费 Google 账号中的 Google Apps Script,让你免费访问被封锁的网站。你的 ISP 只能看到发往 `www.google.com` 的加密流量——它无法知道你真正访问了什么。** 🇬🇧 [英文快速入门](#quick-start) · [完整指南(进阶主题)](docs/guide.md) 🇮🇷 [راه‌اندازی سریع فارسی](#راه‌اندازی-سریع) · [راهنمای کامل (مباحث پیشرفته)](docs/guide.fa.md)

۱. راهنمای تصویری راه اندازی به زبان فارسی (YouTube)
۲. راهنمای جامع متنی راه اندازی به زبان فارسی با تشکر از Kian Irani

## 你能获得什么 - 🌐 **绕过 DPI / SNI 封锁**,使用 Google 的边缘节点作为中继 - 💯 **完全免费** — 运行在你自己 Google 账号的免费额度上 - ⚡ **一个小文件** (~3 MB),不需要 Python,不需要 Node.js,没有依赖 - 🖥️ **支持运行在** Mac、Windows、Linux、Android、OpenWRT 路由器 - 🦊 **任何浏览器或应用**,只要支持 HTTP proxy 或 SOCKS5 ## 工作原理(简单图解) ``` 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 ``` ISP 无法读取加密 HTTPS 内部的内容。它们只能看到地址 —— `www.google.com`。实际的页面查询发生在 Google 的网络内部,隐藏在加密隧道中。 ## 快速入门 **大约 5 分钟。** 你需要: - 一个免费的 Google 账号(任何 Gmail 都可以) - 一台电脑(Mac、Windows 或 Linux) - Firefox 或 Chrome ### 第 1 步 — 制作 Google Apps Script(仅需一次) 1. 前往 **[script.google.com](https://script.google.com)**,使用你的 Google 账号登录 2. 点击左上角的 **New project** 3. 删除编辑器中的默认代码 4. 打开本仓库中的 [`assets/apps_script/Code.gs`](assets/apps_script/Code.gs) 文件,复制所有内容,然后粘贴到 Apps Script 编辑器中(替换原有内容) 5. 在靠近顶部的位置找到这一行: const AUTH_KEY = "CHANGE_ME_TO_A_STRONG_SECRET"; 将 `CHANGE_ME_TO_A_STRONG_SECRET` 更改为你自己设定的长随机字符串。**记住这个字符串** — 你将在第 3 步把它粘贴到应用中。请像对待密码一样对待它。 6. 点击 💾 **Save**(或按 `Ctrl/Cmd+S`) 7. 点击右上角的 **Deploy** → **New deployment** 8. 点击 "Select type" 旁边的齿轮图标 ⚙ → 选择 **Web app** 9. 设置: - **Execute as:** *Me*(你的 Google 账号) - **Who has access:** *Anyone* 10. 点击 **Deploy**。Google 可能会请求权限 — 点击 **Authorize access** 并批准 11. Google 会显示一个 **Deployment ID**(一长串随机字符串)。**复制它** — 你在第 3 步会用到它。 ### 第 2 步 — 下载 mhrv-rs 前往[最新发布页面](https://github.com/therealaleph/MasterHttpRelayVPN-RUST/releases/latest)并下载适合你电脑的文件: | 你的系统 | 下载此文件 | |---|---| | 搭载 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` | 解压文件。 ### 第 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**。如果运行正常,状态圆圈将变为绿色。 ### 第 4 步 — 告诉浏览器使用 mhrv-rs #### Firefox(推荐 — 最简单) 1. Firefox → ☰ 菜单 → **Settings** 2. 在搜索框中搜索 "proxy" 3. 点击 Network Settings 下的 **Settings…** 4. 选择 **Manual proxy configuration** 5. **HTTP Proxy:** `127.0.0.1` 端口 (Port): `8085` 6. ☑ 勾选 **"Also use this proxy for HTTPS"** 7. 点击 **OK** #### Chrome / Edge 安装 [Proxy SwitchyOmega](https://chromewebstore.google.com/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif) 扩展,并将代理设置为 `127.0.0.1:8085`。 #### macOS(全局系统) 系统设置 → 网络 → Wi-Fi → 详细信息 → **Proxies** → 同时启用 **Web Proxy (HTTP)** 和 **Secure Web Proxy (HTTPS)**,两者均指向 `127.0.0.1:8085`。 ### 第 5 步 — 试试看 在浏览器中打开任何被封锁的网站。它应该能正常加载。 如果出现无法运行的情况: - 点击 mhrv-rs 窗口中的 **Test** — 它会准确指出哪一步失败了 - 查看窗口底部的 **Recent log** 面板 - 查看下方的[常见问题](#common-questions) ## 常见问题 **这真的是免费的吗?** 是的。Google 为每个免费账号每天提供 20,000 次出站 URL 获取请求。这足够一个人进行正常的网页浏览。如果一个 3-4 人的家庭共享相同的设置,可以在不同的 Google 账号中创建 2-3 个部署,并将所有的 ID 都添加进去。 **安全吗?** 证书会留在你的电脑上 — 没有其他人拥有私钥。你的 `auth_key` 是你的私人密钥。Google 可以看到你通过中继访问的网站(因为 Apps Script 是代表你获取这些网站的) — 这与任何托管代理一样。如果你无法接受这一点,请使用配合你自己 VPS 的 Full Tunnel 模式 — 参阅[完整指南](docs/guide.md#full-tunnel-mode)。 **YouTube 视频无法播放。** YouTube 的视频数据块来自 `googlevideo.com`,Apps Script 无法访问它(Google 禁止 Apps Script 访问 Google 自己的视频 CDN)。页面本身加载正常;只有视频播放会受到影响。解决方法:Full Tunnel + VPS,或者将 `.googlevideo.com` 添加到配置的 `passthrough_hosts` 中(浏览器将直接请求它,但在伊朗的 ISP 网络下仍会被限速)。 **ChatGPT / Claude / Grok 显示 Cloudflare CAPTCHA。** Cloudflare 会将 Google 数据中心的 IP 识别为机器人。解决方法:设置一个 **exit node** — 这是一个部署在 serverless 主机(如 Deno Deploy、fly.io 或你自己的 VPS)上的小型 TypeScript handler,用于桥接 Apps Script → 你的 exit node → claude.ai。详见 [`assets/exit_node/README.md`](assets/exit_node/README.md)。 **Telegram 不稳定。** Telegram 使用 MTProto 协议,Apps Script 无法解析该协议。请在你本机上配合 [xray](https://github.com/XTLS/Xray-core) 使用 — 参阅完整指南中的[通过 xray 使用 Telegram](docs/guide.md#telegram-via-xray)。 **ISP 直接封锁了 `script.google.com`。** mhrv-rs 有一个 `direct` 模式,仅使用 SNI 重写隧道(不需要 Apps Script)。你可以使用它一次来访问 `script.google.com` 部署你的脚本,然后再切换回 apps_script 模式。详见 [direct 模式](docs/guide.md#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](docs/guide.md#faq)。 ## 需要帮助? - 搜索[已开放和已关闭的 issue](https://github.com/therealaleph/MasterHttpRelayVPN-RUST/issues?q=is%3Aissue) — 你的问题可能已经得到了解答 - 提交一个[新 issue](https://github.com/therealaleph/MasterHttpRelayVPN-RUST/issues/new),并附上:你的配置(务必隐藏 `auth_key`!)、你具体尝试了什么操作,以及你在日志中看到的具体内容 # mhrv-rs — 使用你的 Google 账号免费绕过审查 **یک برنامهٔ کوچک که روی کامپیوترت اجرا می‌شود و کمک می‌کند سایت‌های مسدودشده را با یک اسکریپت رایگان که توی حساب گوگل خودت می‌سازی، باز کنی. ISP فقط می‌بیند که داری به `www.google.com` وصل می‌شوی — نمی‌فهمد در واقع چه سایتی را باز کرده‌ای.** 🇬🇧 [英文快速入门](#quick-start) · [完整指南(进阶)](docs/guide.md) 🇮🇷 [راه‌اندازی سریع](#راه‌اندازی-سریع) · [راهنمای کامل (پیشرفته)](docs/guide.fa.md) ## 你能获得什么 - 🌐 **عبور از DPI / مسدودسازی SNI** با لبهٔ گوگل به‌عنوان رله - 💯 **کاملاً رایگان** — روی سهمیهٔ رایگان حساب گوگل خودت - ⚡ **یک فایل کوچک** (~۳ مگابایت)، بدون پایتون، بدون Node.js، بدون وابستگی - 🖥️ **روی** مک، ویندوز، لینوکس، اندروید، روتر OpenWRT کار می‌کند - 🦊 **هر مرورگر یا برنامه‌ای** که از HTTP proxy یا SOCKS5 پشتیبانی کند ## 工作原理(简图) ``` تو ← مرورگر ← mhrv-rs ──┐ │ ISP فقط می‌بیند: www.google.com ▼ شبکهٔ گوگل │ ▼ اسکریپت رایگان گوگل تو سایت اصلی را باز می‌کند │ ▼ توییتر / ChatGPT / هر سایت مسدودی ``` ISP داخل HTTPS رمزشده را نمی‌تواند بخواند. فقط آدرس را می‌بیند — `www.google.com`. جست‌وجوی واقعی صفحه داخل شبکهٔ گوگل، در تونل رمزشده اتفاق می‌افتد. ## 快速开始 **حدود ۵ دقیقه.** نیاز داری به: - یک حساب گوگل رایگان (هر Gmail‌ای کار می‌کند) - یک کامپیوتر (مک، ویندوز یا لینوکس) - فایرفاکس یا کم ### 第 1 步 — 创建 Google Script(一次性) ۱. به **[script.google.com](https://script.google.com)** برو، با حساب گوگل خودت وارد شو ۲. روی **New project** بالا سمت چپ کلیک کن ۳. کد پیش‌فرض ویرایشگر را پاک کن ۴. فایل [`assets/apps_script/Code.gs`](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** نشانت می‌دهد (یک رشتهٔ تصادفی طولانی). **کپی‌اش کن** — در مرحلهٔ ۳ لازم داری. ### 第 2 步 — 下载 mhrv-rs به [صفحهٔ آخرین release](https://github.com/therealaleph/MasterHttpRelayVPN-RUST/releases/latest) برو و فایل مناسب کامپیوترت را دانلود کن: | سیستم تو | فایل دانلود | |---|---| | مک با تراشهٔ 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` | از حالت فشرده دربیار. ### 第 3 步 — 首次运行 روی فایل اجرا دو بار کلیک کن: | مک | `run.command` | | ویندوز | `run.bat` | | لینوکس | `./run.sh` (در ترمینال) | اولین بار رمز کامپیوترت را می‌خواهد. این برای نصب یک گواهی کوچک است تا مرورگرت به mhrv-rs اعتماد کند. **گواهی روی کامپیوتر خودت ساخته می‌شود و هیچ‌وقت جایی ارسال نمی‌شود** — نه روی ابر، نه به گوگل، هیچ منبع راه‌دوری نمی‌تواند ازش استفاده کند. پنجرهٔ mhrv-rs باز می‌شود. این فیلدها را پر کن: - **Apps Script ID(s)** ← **Deployment ID** از مرحلهٔ ۱ را پیست کن - **Auth key** ← همان رشتهٔ تصادفی که در `Code.gs` گذاشتی - بقیه را پیش‌فرض ول کن روی **Save config** و بعد **Start** بزن. اگر کار کند، دایرهٔ وضعیت سبز می‌شود. ### 第 4 步 — 将浏览器配置为使用 mhrv-rs #### 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](https://chromewebstore.google.com/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif) را نصب کن و پروکسی را روی `127.0.0.1:8085` تنظیم کن. #### macOS(全局) System Settings → Network → Wi-Fi → Details → **Proxies** → هر دو **Web Proxy (HTTP)** و **Secure Web Proxy (HTTPS)** را روشن کن، هر دو روی `127.0.0.1:8085`. ### 第 5 步 — 测试 در مرورگرت یک سایت مسدود را باز کن. باید لود شود. اگر چیزی کار نکرد: - در پنجرهٔ mhrv-rs دکمهٔ **Test** را بزن — می‌گوید کجا گیر کرده - پنل **Recent log** پایین پنجره را نگاه کن - بخش [سؤالات رایج](#سؤالات-رایج) پایین را ببین ## 常见问题 **واقعاً رایگانه؟** بله. گوگل به هر حساب روزانه ۲۰٬۰۰۰ درخواست خروجی URL در سهمیهٔ رایگان می‌دهد. برای مرور عادی یک نفر کاملاً کافی است. برای خانوادهٔ ۳-۴ نفره که از یک سرویس استفاده می‌کنند، در ۲-۳ حساب گوگل مختلف Deployment بساز و همهٔ ID‌ها را اضافه کن. **امنه؟** گواهی روی کامپیوتر خودت می‌ماند — کسی کلید خصوصی را ندارد. `auth_key` رمز محرمانهٔ توست. گوگل سایت‌هایی که از طریق رله باز می‌کنی را می‌بیند (چون Apps Script برای تو fetch می‌کند) — مثل هر پروکسی میزبانی‌شدهٔ دیگری. اگر این برایت قابل قبول نیست، از Full Tunnel با VPS شخصی استفاده کن — در [راهنمای کامل](docs/guide.fa.md#حالت-تونل-کامل). **ویدیوی یوتیوب پخش نمی‌شود.** 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`](assets/exit_node/README.fa.md). **تلگرام پایدار نیست.** تلگرام از MTProto استفاده می‌کند که Apps Script نمی‌فهمد. روی کامپیوترت با [xray](https://github.com/XTLS/Xray-core) جفتش کن — [بخش تلگرام در راهنمای کامل](docs/guide.fa.md#تلگرام-با-xray). **ISP خود `script.google.com` را مسدود کرده.** mhrv-rs یک حالت `direct` دارد که فقط از تونل بازنویسی SNI استفاده می‌کند (بدون Apps Script). یک‌بار از این حالت استفاده کن تا به `script.google.com` برسی و اسکریپت را دیپلوی کنی، بعد به حالت apps_script سوئیچ کن. [حالت direct](docs/guide.fa.md#حالت-direct). **جست‌وجوی گوگلم بدون JavaScript ظاهر می‌شود.** `User-Agent` Apps Script ثابت روی `Google-Apps-Script` است (گوگل نمی‌گذارد اسکریپت‌ها عوضش کنند)، پس بعضی سایت‌ها نسخهٔ بدون JS برمی‌گردانند. راه‌حل: دامنهٔ مورد نظر را به `hosts` اضافه کن تا از تونل بازنویسی SNI با User-Agent واقعی مرورگرت برود. `google.com`، `youtube.com`، `fonts.googleapis.com` به‌طور پیش‌فرض در این لیست‌اند. **سؤالات بیشتر:** [FAQ کامل در راهنمای بلند](docs/guide.fa.md#سؤالات-رایج). ## 需要帮助? - در [issueهای باز و بسته](https://github.com/therealaleph/MasterHttpRelayVPN-RUST/issues?q=is%3Aissue) جست‌وجو کن — احتمالاً مشکلت قبلاً جواب داده شده - یک [issue جدید](https://github.com/therealaleph/MasterHttpRelayVPN-RUST/issues/new) باز کن با: کانفیگت (حتماً `auth_key` را پنهان کن!)، دقیقاً چه کاری کردی، دقیقاً چه دیدی در log ## 致谢 پروژهٔ اصلی: **[@masterking32/MasterHttpRelayVPN](https://github.com/masterking32/MasterHttpRelayVPN)**. ایده، پروتکل Apps Script، معماری پروکسی — همه از اوست. این پورت Rust برای ساده‌تر کردن توزیع سمت کلاینت است (یک فایل اجرایی، بدون نصب پایتون). بیشتر کد Rust این پورت با کمک [Claude شرکت Anthropic](https://claude.com) نوشته شده، روی هر commit انسانی بازبینی شده. ## 支持本项目 [❤️ کمک مالی در sh1n.org](https://sh1n.org/donate) — برای پوشش هزینهٔ هاستینگ و runner CI. ستاره دادن به ریپو هم نشان می‌دهد پروژه ارزش ادامه دادن دارد.
标签:DPI绕过, Rust, SOCKS5, VPN, 可视化界面, 安全合规, 网络代理, 网络审查, 网络流量审计, 通知系统