mirror of
https://github.com/masterking32/MasterHttpRelayVPN.git
synced 2026-05-17 21:24:37 +03:00
Add comprehensive documentation for MasterHttpRelayVPN
- Introduced ARCHITECTURE.md to outline the system architecture and flow. - Created CONFIGURATION.md detailing configuration options and their meanings. - Added DOCKER.md for Docker setup instructions and usage. - Developed GETTING_STARTED.md to guide users through initial setup and usage. - Included LAN_SHARING.md to explain how to enable LAN sharing for the proxy. - Established SECURITY.md to highlight security practices and responsibilities. - Compiled TROUBLESHOOTING.md to assist users in resolving common issues. - Translated documentation into Persian, including ARCHITECTURE.md and CONFIGURATION.md.
This commit is contained in:
@@ -0,0 +1,159 @@
|
||||
# مرجع تنظیمات
|
||||
|
||||
بیشتر کاربران فقط به `script_id`، `auth_key`، و پورتهای پیشفرض نیاز دارند. این صفحه برای زمانی است که میخواهید رفتار برنامه را دقیقتر تنظیم کنید.
|
||||
|
||||
## تنظیمات ضروری
|
||||
|
||||
| تنظیم | معنی |
|
||||
|-------|------|
|
||||
| `script_id` | Deployment ID مربوط به Google Apps Script. برای یک deployment استفاده میشود. |
|
||||
| `script_ids` | آرایهای از چند Deployment ID برای load balancing. به جای `script_id` استفاده میشود. |
|
||||
| `auth_key` | رمز مشترک. باید دقیقا با `AUTH_KEY` داخل [apps_script/Code.gs](../../apps_script/Code.gs) یکی باشد. |
|
||||
|
||||
اگر از `script_ids` استفاده میکنید، همه deployment ها باید `AUTH_KEY` یکسان داشته باشند.
|
||||
|
||||
## اتصال پراکسی
|
||||
|
||||
| تنظیم | پیشفرض | معنی |
|
||||
|-------|---------|------|
|
||||
| `listen_host` | `127.0.0.1` | آدرسی که پراکسی روی آن گوش میدهد. برای فقط همین کامپیوتر، همین مقدار را نگه دارید. |
|
||||
| `http_port` | `8085` | پورت HTTP proxy برای مرورگرها و بیشتر برنامهها. |
|
||||
| `socks5_port` | `1080` | پورت SOCKS5. بعضی برنامهها hostname را محلی resolve میکنند، پس HTTP proxy معمولا قابل اعتمادتر است. |
|
||||
| `lan_sharing` | `false` | وقتی true باشد، دستگاههای دیگر شبکه محلی هم میتوانند از پراکسی استفاده کنند. |
|
||||
|
||||
قبل از فعال کردن، [اشتراکگذاری LAN](LAN_SHARING.md) را بخوانید.
|
||||
|
||||
## Domain Fronting
|
||||
|
||||
| تنظیم | پیشفرض | معنی |
|
||||
|-------|---------|------|
|
||||
| `google_ip` | `216.239.38.120` | IP فرانت Google که اتصال از آن مسیر میرود. |
|
||||
| `front_domain` | `www.google.com` | دامنهای که در اتصال TLS سمت Google دیده میشود. |
|
||||
| `front_domains` | `www.google.com`, `mail.google.com`, `accounts.google.com` | لیست اختیاری برای چرخش SNI. |
|
||||
| `verify_ssl` | `true` | اعتبار TLS اتصال سمت Google را بررسی میکند. در حالت عادی true بماند. |
|
||||
|
||||
اگر IP فعلی کند یا مسدود است، `python main.py --scan` را اجرا کنید و IP پیشنهادی را بگذارید.
|
||||
|
||||
## Timeout و کارایی
|
||||
|
||||
| تنظیم | پیشفرض | معنی |
|
||||
|-------|---------|------|
|
||||
| `relay_timeout` | `25` | حداکثر زمان برای یک درخواست relay. |
|
||||
| `tls_connect_timeout` | `15` | timeout ساخت اتصال TLS به endpoint گوگل. |
|
||||
| `tcp_connect_timeout` | `10` | timeout اتصالهای TCP مستقیم و SNI-rewrite. |
|
||||
| `h2_connections` | `2` | تعداد اتصالهای HTTP/2 به relay. افزایش آن گاهی throughput را بهتر میکند. |
|
||||
| `parallel_relay` | `1` | تعداد deployment هایی که برای درخواستهای امن با هم race میشوند. |
|
||||
| `enable_sub_batch` | `true` | اجازه میدهد batch ها بین اتصالهای H2 تقسیم شوند. |
|
||||
|
||||
## دانلودها
|
||||
|
||||
| تنظیم | معنی |
|
||||
|-------|------|
|
||||
| `chunked_download_extensions` | پسوندهایی که میتوانند از دانلود parallel range استفاده کنند. `".*"` همه دانلودهای GET را probe میکند. |
|
||||
| `chunked_download_min_size` | حداقل اندازه فایل برای فعال ماندن دانلود موازی. |
|
||||
| `chunked_download_chunk_size` | اندازه هر range request. |
|
||||
| `chunked_download_max_parallel` | بیشترین تعداد range request همزمان برای یک دانلود. |
|
||||
| `chunked_download_max_chunks` | سقف نرم تعداد chunk ها. برای فایلهای بزرگ، اندازه chunk خودکار افزایش مییابد. |
|
||||
|
||||
## سیاست دامنهها
|
||||
|
||||
| تنظیم | معنی |
|
||||
|-------|------|
|
||||
| `block_hosts` | دامنههایی که باید 403 بگیرند و هرگز tunnel نشوند. از نام دقیق و الگوی `.suffix` پشتیبانی میکند. |
|
||||
| `direct_hosts` | دامنههایی که همیشه مستقیم میروند، بدون MITM و بدون relay. |
|
||||
| `bypass_hosts` | دامنههای محلی یا خاص که از MITM و relay عبور نمیکنند. برای `.lan` و `.local` مفید است. |
|
||||
| `hosts` | نگاشت دستی DNS برای تست یا split-DNS. |
|
||||
| `direct_google_exclude` | سرویسهای Google که به جای tunnel مستقیم باید از relay استفاده کنند. |
|
||||
| `youtube_via_relay` | YouTube را از مسیر Apps Script relay عبور میدهد. اگر مسیر مستقیم Google باعث مشکل پخش شود مفید است. |
|
||||
|
||||
نمونه:
|
||||
|
||||
```json
|
||||
{
|
||||
"block_hosts": ["ads.example.com", ".doubleclick.net"],
|
||||
"direct_hosts": ["chat.openai.com", ".openai.com"],
|
||||
"hosts": {
|
||||
"example.org": "93.184.216.34",
|
||||
".internal.lan": "192.168.1.10"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Exit Node
|
||||
|
||||
وقتی مقصد، خروجی IPهای Google را مسدود میکند، Exit Node کمک میکند.
|
||||
|
||||
```json
|
||||
"exit_node": {
|
||||
"enabled": true,
|
||||
"provider": "cloudflare",
|
||||
"url": "https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev",
|
||||
"psk": "CHANGE_ME_TO_A_STRONG_SECRET",
|
||||
"mode": "full",
|
||||
"hosts": ["chatgpt.com", "openai.com"]
|
||||
}
|
||||
```
|
||||
|
||||
| تنظیم | معنی |
|
||||
|-------|------|
|
||||
| `exit_node.enabled` | فعال یا غیرفعال کردن مسیر Exit Node. |
|
||||
| `exit_node.provider` | یکی از `cloudflare`، `deno`، `vps`، یا `custom`. |
|
||||
| `exit_node.url` | آدرس provider انتخابشده. |
|
||||
| `exit_node.psk` | رمز مشترک Exit Node. باید با کد deploy شده یکی باشد. |
|
||||
| `exit_node.mode` | مقدار `full` برای همه ترافیک relay شده، یا `selective` فقط برای host های لیستشده. |
|
||||
| `exit_node.hosts` | لیست host ها در حالت selective. |
|
||||
|
||||
مراحل deploy در [راهنمای Exit Node](../exit-node/EXIT_NODE_DEPLOYMENT_FA.md) است.
|
||||
|
||||
## Adblock
|
||||
|
||||
`adblock_lists` لیست URLهای فیلتر host/domain را میگیرد. کانفیگ پیشفرض از PersianBlocker استفاده میکند. اگر این رفتار را نمیخواهید، لیست را خالی کنید.
|
||||
|
||||
## وابستگیهای اختیاری
|
||||
|
||||
برای همه امکانات، dependency های [requirements.txt](../../requirements.txt) را نصب کنید.
|
||||
|
||||
| بسته | کاربرد |
|
||||
|------|--------|
|
||||
| `cryptography` | ساخت certificate محلی و MITM برای HTTPS. |
|
||||
| `h2` | ارتباط HTTP/2 با Apps Script. |
|
||||
| `brotli` | decode کردن `Content-Encoding: br`. |
|
||||
| `zstandard` | decode کردن `Content-Encoding: zstd`. |
|
||||
|
||||
## دستورهای اجرا
|
||||
|
||||
```bash
|
||||
python main.py # اجرای عادی
|
||||
python main.py -p 9090 # تغییر پورت HTTP
|
||||
python main.py --socks5-port 1081 # تغییر پورت SOCKS5
|
||||
python main.py --host 0.0.0.0 # تغییر listen host
|
||||
python main.py --log-level DEBUG # لاگ بیشتر
|
||||
python main.py -c path/to/config.json # استفاده از config دیگر
|
||||
python main.py --install-cert # نصب CA و خروج
|
||||
python main.py --uninstall-cert # حذف CA و خروج
|
||||
python main.py --no-cert-check # رد شدن از بررسی خودکار CA
|
||||
python main.py --scan # پیدا کردن IP سریعتر Google
|
||||
```
|
||||
|
||||
متغیرهای محیطی پشتیبانیشده: `DFT_CONFIG`, `DFT_AUTH_KEY`, `DFT_SCRIPT_ID`, `DFT_HTTP_PORT`, `DFT_PORT`, `DFT_HOST`, `DFT_SOCKS5_PORT`, و `DFT_LOG_LEVEL`.
|
||||
|
||||
## دستورهای عیبیابی
|
||||
|
||||
اسکن IPهای Google:
|
||||
|
||||
```bash
|
||||
python main.py --scan
|
||||
```
|
||||
|
||||
نصب یا حذف CA محلی:
|
||||
|
||||
```bash
|
||||
python main.py --install-cert
|
||||
python main.py --uninstall-cert
|
||||
```
|
||||
|
||||
لاگ کاملتر:
|
||||
|
||||
```bash
|
||||
python main.py --log-level DEBUG
|
||||
```
|
||||
Reference in New Issue
Block a user