mirror of
https://github.com/therealaleph/MasterHttpRelayVPN-RUST.git
synced 2026-05-18 05:54:39 +03:00
متن فارسی (#58)
* Update README.md درست کردن متن فارسی * Update README.md درست کردن متن فارسی
This commit is contained in:
@@ -377,23 +377,24 @@ Original project: <https://github.com/masterking32/MasterHttpRelayVPN> by [@mast
|
|||||||
|
|
||||||
### چه چیز لازم دارید؟
|
### چه چیز لازم دارید؟
|
||||||
|
|
||||||
۱. یک حساب گوگل (همان `Gmail` رایگان کافیست)
|
۱. یک حساب گوگل (همان `Gmail` رایگان کافیست)
|
||||||
۲. مرورگر (`Firefox`، `Chrome`، `Edge`، …) یا برنامهای که `HTTP proxy` یا `SOCKS5` قبول کند
|
۲. مرورگر (`Firefox`، `Chrome`، `Edge`، …) یا برنامهای که `HTTP proxy` یا `SOCKS5` قبول کند
|
||||||
۳. دسترسی به سیستم خودتان (مک / لینوکس / ویندوز)
|
۳. دسترسی به سیستم خودتان (مک / لینوکس / ویندوز)
|
||||||
|
|
||||||
### پنج مرحله برای راهاندازی
|
### پنج مرحله برای راهاندازی
|
||||||
|
|
||||||
#### مرحلهٔ ۱ — ساخت اسکریپت در گوگل (فقط یک بار)
|
#### مرحلهٔ ۱ — ساخت اسکریپت در گوگل (فقط یک بار)
|
||||||
|
|
||||||
۱. به <https://script.google.com> بروید و با حساب گوگل خودتان وارد شوید
|
۱. به <https://script.google.com> بروید و با حساب گوگل خودتان وارد شوید
|
||||||
۲. روی **`New project`** کلیک کنید و کد پیشفرض را پاک کنید
|
۲. روی **`New project`** کلیک کنید و کد پیشفرض را پاک کنید
|
||||||
۳. محتوای فایل [`Code.gs`](https://github.com/masterking32/MasterHttpRelayVPN/blob/python_testing/apps_script/Code.gs) را از ریپوی اصلی کپی کنید و داخل ویرایشگر بچسبانید. اگر به آدرس بالا دسترسی ندارید، یک کپی از همین فایل داخل این ریپو هم هست: [`assets/apps_script/Code.gs`](assets/apps_script/Code.gs)
|
۳. محتوای فایل [`Code.gs`](https://github.com/masterking32/MasterHttpRelayVPN/blob/python_testing/apps_script/Code.gs) را از ریپوی اصلی کپی کنید و داخل ویرایشگر بچسبانید. اگر به آدرس بالا دسترسی ندارید، یک کپی از همین فایل داخل این ریپو هم هست: [`assets/apps_script/Code.gs`](assets/apps_script/Code.gs)
|
||||||
۴. بالای کد، خط `const AUTH_KEY = "..."` را پیدا کنید و مقدار آن را به یک رمز قوی و خاص خودتان تغییر دهید (یک رشتهٔ تصادفی حداقل ۱۶ کاراکتری کافی است، مثلاً `aK8f3xM9pQ2nL5vR`)
|
۴. بالای کد، خط `const AUTH_KEY = "..."` را پیدا کنید و مقدار آن را به یک رمز قوی و خاص خودتان تغییر دهید (یک رشتهٔ تصادفی حداقل ۱۶ کاراکتری کافی است، مثلاً `aK8f3xM9pQ2nL5vR`)
|
||||||
۵. روی دکمهٔ آبی **`Deploy`** در بالا سمت راست کلیک کنید و **`New deployment`** را بزنید
|
۵. روی دکمهٔ آبی **`Deploy`** در بالا سمت راست کلیک کنید و **`New deployment`** را بزنید
|
||||||
۶. **`Type`** را روی **`Web app`** بگذارید و این تنظیمات را اعمال کنید:
|
۶. **`Type`** را روی **`Web app`** بگذارید و این تنظیمات را اعمال کنید:
|
||||||
- **`Execute as`**: **`Me`**
|
- **`Execute as`**: **`Me`**
|
||||||
- **`Who has access`**: **`Anyone`**
|
- **`Who has access`**: **`Anyone`**
|
||||||
۷. روی **`Deploy`** کلیک کنید. گوگل یک **`Deployment ID`** نشان میدهد — رشتهٔ طولانی تصادفی که داخل آدرس `URL` است. کپیاش کنید؛ در برنامه لازم دارید
|
|
||||||
|
۷. روی **`Deploy`** کلیک کنید. گوگل یک **`Deployment ID`** نشان میدهد — رشتهٔ طولانی تصادفی که داخل آدرس `URL` است. کپیاش کنید؛ در برنامه لازم دارید
|
||||||
|
|
||||||
> **نکته:** اگر نمیدانید رمز `AUTH_KEY` چه بگذارید، یک رشتهٔ تصادفی ۱۶ تا ۲۴ کاراکتری بسازید. مهم فقط این است که **دقیقاً همان رشته** را در برنامه هم وارد کنید.
|
> **نکته:** اگر نمیدانید رمز `AUTH_KEY` چه بگذارید، یک رشتهٔ تصادفی ۱۶ تا ۲۴ کاراکتری بسازید. مهم فقط این است که **دقیقاً همان رشته** را در برنامه هم وارد کنید.
|
||||||
|
|
||||||
@@ -409,10 +410,9 @@ Original project: <https://github.com/masterking32/MasterHttpRelayVPN> by [@mast
|
|||||||
| لینوکس معمولی (اوبونتو، مینت، دبیان، فدورا، آرچ، …) | `mhrv-rs-linux-amd64.tar.gz` |
|
| لینوکس معمولی (اوبونتو، مینت، دبیان، فدورا، آرچ، …) | `mhrv-rs-linux-amd64.tar.gz` |
|
||||||
| لینوکس روی روتر (`OpenWRT`) یا `Alpine` | `mhrv-rs-linux-musl-amd64.tar.gz` |
|
| لینوکس روی روتر (`OpenWRT`) یا `Alpine` | `mhrv-rs-linux-musl-amd64.tar.gz` |
|
||||||
|
|
||||||
> اگر نمیدانید مک شما `M1/M2` است یا اینتل: منوی اپل → `About This Mac` → در خط **`Chip`** اگر **`Apple`** نوشته شده، `arm64` بگیرید؛ اگر **`Intel`**، `amd64`.
|
> اگر نمیدانید مک شما `M1/M2` است یا اینتل: منوی اپل → `About This Mac` → در خط **`Chip`** اگر **`Apple`** نوشته شده، `arm64` بگیرید؛ اگر **`Intel`**، `amd64`.
|
||||||
>
|
|
||||||
> کاربران اوبونتو ۲۰.۰۴ یا سیستمهای خیلی قدیمی که خطای `GLIBC not found` میگیرند: آرشیو `linux-musl-amd64` را دانلود کنید — اجرا میشود.
|
|
||||||
|
|
||||||
|
> کاربران اوبونتو ۲۰.۰۴ یا سیستمهای خیلی قدیمی که خطای `GLIBC not found` میگیرند: آرشیو `linux-musl-amd64` را دانلود کنید — اجرا میشود.
|
||||||
#### مرحلهٔ ۳ — اجرای بار اول (نصب گواهی محلی)
|
#### مرحلهٔ ۳ — اجرای بار اول (نصب گواهی محلی)
|
||||||
|
|
||||||
برای اینکه برنامه بتواند ترافیک `HTTPS` مرورگر شما را باز کند و از طریق `Apps Script` رد کند، یک گواهی امنیتی کوچک **روی سیستم خودتان** میسازد و به سیستمعامل میگوید به آن اعتماد کند.
|
برای اینکه برنامه بتواند ترافیک `HTTPS` مرورگر شما را باز کند و از طریق `Apps Script` رد کند، یک گواهی امنیتی کوچک **روی سیستم خودتان** میسازد و به سیستمعامل میگوید به آن اعتماد کند.
|
||||||
@@ -487,13 +487,12 @@ Original project: <https://github.com/masterking32/MasterHttpRelayVPN> by [@mast
|
|||||||
با استفاده از این گزینهها ممکن است IPهایی پیدا کنید که سریعتر از آرایه ثابت پیشفرض هستند اما تضمینی وجود ندارد که این IPها کار کنند.
|
با استفاده از این گزینهها ممکن است IPهایی پیدا کنید که سریعتر از آرایه ثابت پیشفرض هستند اما تضمینی وجود ندارد که این IPها کار کنند.
|
||||||
|
|
||||||
#### ۵. تنظیم proxy در کلاینت
|
#### ۵. تنظیم proxy در کلاینت
|
||||||
۱. منوی `Settings` را باز کنید، در خانهٔ جستوجو عبارت `proxy` را تایپ کنید
|
۱. منوی `Settings` را باز کنید، در خانهٔ جستوجو عبارت `proxy` را تایپ کنید
|
||||||
۲. روی **`Network Settings`** کلیک کنید
|
۲. روی **`Network Settings`** کلیک کنید
|
||||||
۳. گزینهٔ **`Manual proxy configuration`** را انتخاب کنید
|
۳. گزینهٔ **`Manual proxy configuration`** را انتخاب کنید
|
||||||
۴. در فیلد **`HTTP Proxy`** آدرس `127.0.0.1` و پورت `8085` را بگذارید
|
۴. در فیلد **`HTTP Proxy`** آدرس `127.0.0.1` و پورت `8085` را بگذارید
|
||||||
۵. تیک **`Also use this proxy for HTTPS`** را بزنید
|
۵. تیک **`Also use this proxy for HTTPS`** را بزنید
|
||||||
۶. `OK` را بزنید
|
۶. `OK`
|
||||||
|
|
||||||
**کروم یا Edge:** از تنظیمات `proxy` سیستمعامل استفاده میکنند. سادهترین راه نصب افزونهٔ **`Proxy SwitchyOmega`** و تنظیم آن روی `127.0.0.1:8085` است.
|
**کروم یا Edge:** از تنظیمات `proxy` سیستمعامل استفاده میکنند. سادهترین راه نصب افزونهٔ **`Proxy SwitchyOmega`** و تنظیم آن روی `127.0.0.1:8085` است.
|
||||||
|
|
||||||
**تلگرام:**
|
**تلگرام:**
|
||||||
@@ -514,8 +513,7 @@ Original project: <https://github.com/masterking32/MasterHttpRelayVPN> by [@mast
|
|||||||
|
|
||||||
### تلگرام و غیره — جفت کردن با xray
|
### تلگرام و غیره — جفت کردن با xray
|
||||||
|
|
||||||
`Apps Script` فقط `HTTP` میفهمد، پس پروتکلهای دیگر (مثل `MTProto` تلگرام، `IMAP` ایمیل، `SSH`، …) مستقیماً از آن رد نمیشوند. نتیجه: اگر `ISP` تلگرام را با `DPI` بلاک کرده باشد، همچنان بلاک است.
|
`Apps Script` فقط `HTTP` میفهمد، پس پروتکلهای دیگر (مثل `MTProto` تلگرام، `IMAP` ایمیل، `SSH`، …) مستقیماً از آن رد نمیشوند. نتیجه: اگر `ISP` تلگرام را با `DPI` بلاک کرده باشد، همچنان بلاک است.
|
||||||
|
|
||||||
**راهحل:** یک [`xray`](https://github.com/XTLS/Xray-core) (یا `v2ray` یا `sing-box`) روی سیستم خودتان اجرا کنید که با `VLESS` / `Trojan` / `Shadowsocks` به یک سرور `VPS` شخصی وصل میشود. بعد در برنامهٔ `mhrv-rs`، فیلد **`Upstream SOCKS5`** را با آدرس `xray` پر کنید (مثلاً `127.0.0.1:50529`).
|
**راهحل:** یک [`xray`](https://github.com/XTLS/Xray-core) (یا `v2ray` یا `sing-box`) روی سیستم خودتان اجرا کنید که با `VLESS` / `Trojan` / `Shadowsocks` به یک سرور `VPS` شخصی وصل میشود. بعد در برنامهٔ `mhrv-rs`، فیلد **`Upstream SOCKS5`** را با آدرس `xray` پر کنید (مثلاً `127.0.0.1:50529`).
|
||||||
|
|
||||||
بعد از این کار، ترافیکی که `HTTP` نیست (مثل تلگرام) از `xray` عبور میکند و به سرور شما میرسد. ترافیک `HTTP/HTTPS` مثل قبل از `Apps Script` میرود، پس مرورگر شما دست نخورده کار میکند.
|
بعد از این کار، ترافیکی که `HTTP` نیست (مثل تلگرام) از `xray` عبور میکند و به سرور شما میرسد. ترافیک `HTTP/HTTPS` مثل قبل از `Apps Script` میرود، پس مرورگر شما دست نخورده کار میکند.
|
||||||
@@ -569,13 +567,14 @@ logread -e mhrv-rs -f
|
|||||||
|
|
||||||
راهنمای انگلیسی هم در [`docs/android.md`](docs/android.md) است.
|
راهنمای انگلیسی هم در [`docs/android.md`](docs/android.md) است.
|
||||||
|
|
||||||
جمعبندی سریع:
|
جمعبندی سریع:
|
||||||
|
|
||||||
|
۱. APK را از `Releases` دانلود و نصب کنید (اگر اندروید «منبع ناشناس» گفت، در همان دیالوگ اجازه بدهید)
|
||||||
|
۲. `Apps Script` را طبق [مرحلهٔ ۱ بالا](#مرحلهٔ-۱--ساخت-اسکریپت-در-گوگل-فقط-یک-بار) دیپلوی کنید (همان `Code.gs` + `AUTH_KEY`)
|
||||||
|
۳. `/exec URL` و `auth_key` را در برنامه وارد کنید، **Auto-detect google_ip** را بزنید
|
||||||
|
۴. **Install MITM certificate** — برنامه گواهی را در `Downloads` ذخیره میکند و `Settings` را باز میکند. در `Settings` عبارت `CA certificate` را جستوجو و از `Downloads` نصب کنید
|
||||||
|
۵. **Start** → مجوز `VPN` را تأیید کنید → همهچیز کار میکند
|
||||||
|
|
||||||
۱. APK را از `Releases` دانلود و نصب کنید (اگر اندروید «منبع ناشناس» گفت، در همان دیالوگ اجازه بدهید)
|
|
||||||
۲. `Apps Script` را طبق [مرحلهٔ ۱ بالا](#مرحلهٔ-۱--ساخت-اسکریپت-در-گوگل-فقط-یک-بار) دیپلوی کنید (همان `Code.gs` + `AUTH_KEY`)
|
|
||||||
۳. `/exec URL` و `auth_key` را در برنامه وارد کنید، **Auto-detect google_ip** را بزنید
|
|
||||||
۴. **Install MITM certificate** — برنامه گواهی را در `Downloads` ذخیره میکند و `Settings` را باز میکند. در `Settings` عبارت `CA certificate` را جستوجو و از `Downloads` نصب کنید
|
|
||||||
۵. **Start** → مجوز `VPN` را تأیید کنید → همهچیز کار میکند
|
|
||||||
|
|
||||||
محدودیتهای اندروید همان محدودیتهای دسکتاپ + دو مورد اضافه: `IPv6` از `TUN` رد نمیشود (فقط `IPv4` روت میشود) و اکثر برنامههای غیر مرورگری (بانکی، `Netflix`، پیامرسانها) به `CA` کاربری اعتماد نمیکنند. جزئیات در [`docs/android.fa.md`](docs/android.fa.md#محدودیتهای-شناختهشده).
|
محدودیتهای اندروید همان محدودیتهای دسکتاپ + دو مورد اضافه: `IPv6` از `TUN` رد نمیشود (فقط `IPv4` روت میشود) و اکثر برنامههای غیر مرورگری (بانکی، `Netflix`، پیامرسانها) به `CA` کاربری اعتماد نمیکنند. جزئیات در [`docs/android.fa.md`](docs/android.fa.md#محدودیتهای-شناختهشده).
|
||||||
|
|
||||||
@@ -596,7 +595,7 @@ logread -e mhrv-rs -f
|
|||||||
**یوتوب کار میکند؟ ویدیو پخش میشود؟**
|
**یوتوب کار میکند؟ ویدیو پخش میشود؟**
|
||||||
صفحهٔ یوتوب سریع باز میشود (چون مستقیم از لبهٔ گوگل میآید). اما `chunk`های ویدیوی اصلی از `googlevideo.com` از طریق `Apps Script` میآیند و روزانه سهمیه دارند. برای تماشای گاهبهگاه خوب است، برای ۱۰۸۰p پخش طولانی دردناک.
|
صفحهٔ یوتوب سریع باز میشود (چون مستقیم از لبهٔ گوگل میآید). اما `chunk`های ویدیوی اصلی از `googlevideo.com` از طریق `Apps Script` میآیند و روزانه سهمیه دارند. برای تماشای گاهبهگاه خوب است، برای ۱۰۸۰p پخش طولانی دردناک.
|
||||||
|
|
||||||
**`ChatGPT` یا `OpenAI` کار میکنند؟**
|
**`ChatGPT` یا `OpenAI` کار میکنند؟**
|
||||||
استریم زنده (`streaming`) آنها کار نمیکند چون از `WebSocket` استفاده میکنند و `Apps Script` آن را پشتیبانی نمیکند. تنها راهحل: از `xray` استفاده کنید (بخش **تلگرام و غیره** را ببینید).
|
استریم زنده (`streaming`) آنها کار نمیکند چون از `WebSocket` استفاده میکنند و `Apps Script` آن را پشتیبانی نمیکند. تنها راهحل: از `xray` استفاده کنید (بخش **تلگرام و غیره** را ببینید).
|
||||||
|
|
||||||
**خطای `GLIBC_2.39 not found` در لینوکس میگیرم. چه کنم؟**
|
**خطای `GLIBC_2.39 not found` در لینوکس میگیرم. چه کنم؟**
|
||||||
@@ -624,13 +623,12 @@ logread -e mhrv-rs -f
|
|||||||
|
|
||||||
این محدودیتها ذاتی روش `Apps Script` هستند، نه باگ این برنامه. نسخهٔ اصلی پایتون هم دقیقاً همین محدودیتها را دارد.
|
این محدودیتها ذاتی روش `Apps Script` هستند، نه باگ این برنامه. نسخهٔ اصلی پایتون هم دقیقاً همین محدودیتها را دارد.
|
||||||
|
|
||||||
- `User-Agent` همهٔ درخواستها ثابت روی `Google-Apps-Script` است (گوگل اجازهٔ تغییر نمیدهد). بعضی سایتها بهخاطر این نسخهٔ سادهشدهٔ بدون `JavaScript` نشان میدهند
|
- `User-Agent` همهٔ درخواستها ثابت روی `Google-Apps-Script` است (گوگل اجازهٔ تغییر نمیدهد). بعضی سایتها بهخاطر این نسخهٔ سادهشدهٔ بدون `JavaScript` نشان میدهند
|
||||||
- پخش ویدیو سهمیه دارد و ممکن است کند باشد (هر حساب گوگل روزانه حدود ۲ میلیون درخواست سهمیه دارد)
|
- پخش ویدیو سهمیه دارد و ممکن است کند باشد (هر حساب گوگل روزانه حدود ۲ میلیون درخواست سهمیه دارد)
|
||||||
- فشردهسازی `Brotli` پشتیبانی نمیشود (فقط `gzip`)، سربار حجمی جزئی
|
- فشردهسازی `Brotli` پشتیبانی نمیشود (فقط `gzip`)، سربار حجمی جزئی
|
||||||
- `WebSocket` از `Apps Script` عبور نمیکند (`ChatGPT` استریم، `Discord voice`، …)
|
- `WebSocket` از `Apps Script` عبور نمیکند (`ChatGPT` استریم، `Discord voice`، …)
|
||||||
- سایتهایی که گواهی خود را `pin` کردهاند گواهی `MITM` برنامه را قبول نمیکنند (تعداد کمیاند)
|
- سایتهایی که گواهی خود را `pin` کردهاند گواهی `MITM` برنامه را قبول نمیکنند (تعداد کمیاند)
|
||||||
- ورود دومرحلهای گوگل ممکن است هشدار «دستگاه ناشناس» بدهد — اولین ورود را بدون این ابزار انجام دهید
|
- ورود دومرحلهای گوگل ممکن است هشدار «دستگاه ناشناس» بدهد — اولین ورود را بدون این ابزار انجام دهید
|
||||||
|
|
||||||
### امنیت
|
### امنیت
|
||||||
|
|
||||||
- ریشهٔ `MITM` **فقط روی سیستم شما میماند**. کلید خصوصی هیچوقت از سیستمتان خارج نمیشود
|
- ریشهٔ `MITM` **فقط روی سیستم شما میماند**. کلید خصوصی هیچوقت از سیستمتان خارج نمیشود
|
||||||
|
|||||||
Reference in New Issue
Block a user