# وی‌پی‌ان برای کل رایانه (zev vpn)

> sudo zev vpn on همهٔ برنامه‌ها را از سرور پروکسی خودتان می‌برد، با DNS و IPv6 آن‌ها، کیل‌سوییچ، سایت‌هایی که به پروکسی نیاز ندارند مستقیم، و آزمون نشتی (zev vpn check) که ثابت می‌کند هیچ چیز از کنارش نمی‌گذرد.

Source: https://zaryn.xyz/docs/fa/vpn

`zev proxy share` به برنامه‌ها پورت پروکسی‌ای می‌دهد که اگر برایش تنظیم شده باشند از آن استفاده می‌کنند. `zev vpn` هیچ تنظیمی نمی‌خواهد: **همهٔ برنامه‌های این رایانه**، پرسش‌های DNS و IPv6 آن‌ها، از سرور پروکسی شما می‌گذرند، همانی که `zev proxy use` برگزیده. فعلاً فقط برای لینوکس است.

```bash
sudo zev vpn on --kill-switch    # همه‌چیز از پروکسی؛ اگر بایستد چیزی نشت نمی‌کند
zev vpn check                    # ثابتش کن: TCP، UDP (WebRTC)، DNS، IPv6
sudo zev vpn off                 # درست همان‌طور که بود
```

```diagram
type: graph
title: وی‌پی‌ان چه چیزی را می‌برد، و چه چیزی مستقیم می‌ماند
alt: ترافیک همهٔ برنامه‌ها به رابط zev0 می‌رود که موتور Xray آن را می‌خواند و از سرور پروکسی شما به اینترنت می‌فرستد؛ شبکهٔ محلی، شبکه‌های Docker و سایت‌های مستثنا مستقیم می‌روند؛ اتصال‌های خود موتور نشانه دارند تا دور نزنند
legend: path=از پروکسی; path2=مستقیم، عمداً; new=اتصال‌های خود موتور (نشانه‌دار)
start: همهٔ برنامه‌ها
caption: یک رابط، zev0، همه چیز را می‌گیرد. روی هر بخش بروید تا ببینید چیست.
height: 62
---
box این رایانه | 2 2 56 58 | dim
node apps | همهٔ برنامه‌ها | 12 12 | folder | accent | مرورگرها، بازی‌ها، تلگرام، apt، دانلودهای Docker: هیچ تنظیم پروکسی در هیچ‌کدام
node dns | DNS آن‌ها | 12 30 | log | | هر پرسش روی پورت 53 را تونل می‌گیرد، به هر جا که فرستاده شده باشد
node lan | شبکهٔ محلی، Docker | 12 48 | host | good | هر چیزی که رایانه برایش مسیر دقیق‌تری دارد مستقیم می‌ماند
node tun | zev0 | 34 21 | router | | یک رابط TUN: مسیرها همه چیز را به آن می‌فرستند
node xray | موتور (Xray) | 48 21 | collector | | لینک شما را اجرا می‌کند؛ اتصال‌های خودش نشانهٔ 7701 دارند و از مسیر عادی بیرون می‌روند
node proxy | سرور پروکسی شما | 74 21 | server | | مال خودتان: هیچ ترافیکی از آن از Zaryn نمی‌گذرد
node web | اینترنت | 94 12 | cloud
node ex | سایت‌های مستثنا | 94 40 | cloud | good | --exclude، و سایت‌هایی که zev proxy learn یافت روی این شبکه به پروکسی نیاز ندارند
link apps tun | | path
link dns tun | | path
link tun xray | | path
link xray proxy | | new
link proxy web | | path
link xray ex | | path2
note 30 56 | در هیچ برنامه‌ای چیزی برای تنظیم نیست | accent
```

## در یک دقیقه شروع کنید

```diagram
type: cards
title: از هیچ تا وی‌پی‌ان
---
1️⃣ | یک سرور | zev proxy add home 'vless://…' --use، یا یک اشتراک: zev proxy sub add myvpn <url> (راهنمای پروکسی را ببینید)
2️⃣ | موتور | zev proxy engine install، یک بار (Xray، بررسی‌شده با SHA-256 آن)
3️⃣ | روشن | sudo zev vpn on --kill-switch: یک سرویس سیستمی که پس از راه‌اندازی دوباره هم روشن می‌ماند
4️⃣ | اثبات | zev vpn check: سایت‌ها، WebRTC و DNS حالا چه می‌بینند
```

`sudo` فقط شبکه را آماده می‌کند: پروکسی، راه‌حل‌ها و مسیرهایش مال خودتان می‌مانند (`~/.config/zev`)، و وی‌پی‌ان وقتی عوضشان کنید بی خاموش و روشن شدن دنبالشان می‌کند.

## همهٔ دستورها

| دستور | نمونه | چه می‌کند |
|---|---|---|
| `sudo zev vpn on` | `sudo zev vpn on` | همهٔ برنامه‌ها از پروکسی، به شکل سرویسی (`zev-vpn`) که با رایانه روشن می‌شود |
| `--kill-switch` | `sudo zev vpn on --kill-switch` | اگر وی‌پی‌ان به هر دلیلی بایستد، هیچ چیز مستقیم بیرون نمی‌رود؛ تا برگردد فقط شبکهٔ محلی کار می‌کند |
| `--exclude` | `sudo zev vpn on --exclude bank.example.com,192.0.2.0/24` | این نام‌ها، نشانی‌ها یا بازه‌ها مستقیم می‌روند |
| `zev vpn status` | `zev vpn status` | روشن یا خاموش، از کدام سرور، از کی، شروع‌های دوباره و ترمیم‌ها |
| `zev vpn check` | `sudo zev vpn check` | آزمون نشتی پایین؛ با `sudo` نشانی خود این شبکه را هم برای مقایسه نشان می‌دهد |
| `sudo zev vpn off` | `sudo zev vpn off` | رابط، مسیرها، قاعده‌ها و جدول دیوارهٔ آتش برداشته می‌شوند؛ چیزی باقی نمی‌ماند |
| `direct --` | `sudo zev vpn direct -- steam` · `sudo zev vpn direct -- firefox --private-window` | یک برنامه (و هر چه اجرا می‌کند) بیرون از وی‌پی‌ان؛ بقیه داخل می‌مانند |
| `direct` | `sudo zev vpn direct` | الان چه چیزی بیرون از وی‌پی‌ان اجرا می‌شود |
| `pause` | `sudo zev vpn pause` · `sudo zev vpn pause 1h` · `sudo zev vpn pause forever` | همه‌چیز مستقیم برای مدتی (اگر نگویید ۱۰ دقیقه)، کیل‌سوییچ هم، بعد خودش برمی‌گردد |
| `resume` | `sudo zev vpn resume` | همین الان مکث را تمام کن |
| `trust` | `sudo zev vpn trust` · `sudo zev vpn trust ls` | روی این شبکه وی‌پی‌ان کنار می‌رود؛ روی هر شبکهٔ دیگری همه‌چیز را می‌برد |
| `untrust` | `sudo zev vpn untrust this` · `sudo zev vpn untrust all` | آنجا دوباره وی‌پی‌ان همه‌چیز را می‌برد |
| `zev proxy start --tun` | `zev proxy start --tun --kill-switch` | وی‌پی‌ان، پورت اشتراکی و تنظیم میزکار، با یک دستور (sudo را می‌پرسد) |
| `zev proxy top` | `zev proxy top` | ترافیک زنده: وی‌پی‌ان، هر سرور، آنچه مستقیم رفته |
| `zev proxy usage` | `zev proxy usage quota 50G` | حجم پروکسی روز به روز، سهمیهٔ ماهانه، اینکه به کجا می‌رسد ([حجم](/docs/fa/proxy#حجم-و-سهمیه-zev-proxy-usage)) |
| `zev proxy learn on` | `zev proxy learn on` | سایت‌هایی که روی این شبکه بی پروکسی کار می‌کنند مستقیم می‌روند ([یادگیری](/docs/fa/proxy#فقط-آنچه-لازم-دارد-zev-proxy-learn)) |
| `zev proxy why` | `zev proxy why youtube.com` | یک سایت از کدام راه می‌رود، و چرا ([چرا](/docs/fa/proxy#از-کدام-راه-و-چرا-zev-proxy-why)) |

## آزمون نشتی: zev vpn check

وی‌پی‌انی که روشن است لزوماً وی‌پی‌انی نیست که همه چیز را بپوشاند. `zev vpn check` از اینترنت می‌پرسد چه می‌بیند، همان‌طور که یک سایت، یک مرورگر و یک سرور DNS می‌بینند:

```text
$ sudo zev vpn check
zev vpn check  a leak test: what the internet sees of this computer

  ✓ the VPN is on (zev0), through vless proxy.example.com:443 tcp+tls
  ✓ sites see 185.220.101.4 (DE)
      this network's own address is 198.51.100.34 (FR): hidden
  ✓ UDP too (what WebRTC in a browser shows): 185.220.101.4
  ✓ DNS: a question to an address with no DNS server was answered inside the tunnel; no DNS question leaves around it
  ✓ IPv6: none on this network, nothing to leak
  ✓ kill switch: on; if the tunnel drops, nothing leaves
    direct on purpose (--exclude): bank.example.com

  No leaks found.
```

```diagram
type: cards
title: هر خط چه چیزی را ثابت می‌کند
---
🌐 | سایت‌ها می‌بینند | یک اتصال عادی به صفحهٔ trace کلادفلر، از برنامه‌ای بی تنظیم پروکسی: نشانی‌ای که هر سایتی می‌بیند
🏠 | نشانی خود این شبکه | با sudo، همان درخواست با نشانه‌ای که از کنار تونل می‌رود: اگر هر دو یکی باشند، ترافیک در تونل نیست
🎥 | فقط UDP یا WebRTC | یک درخواست STUN، همان‌طور که WebRTC مرورگر نشانی شما را برای تماس پیدا می‌کند: نشتی معروف وی‌پی‌ان‌ها. اگر UDP از جای دیگری بیرون بیاید، سایت‌ها نشانی واقعی شما را می‌بینند
🔎 | پرسش DNS | پرسشی DNS به 192.0.2.53 فرستاده می‌شود، نشانی‌ای که هیچ سرور DNS آنجا نیست. فقط چیزی که همهٔ پرسش‌های DNS را می‌گیرد می‌تواند جواب دهد: تونل. پس DNS هیچ برنامه‌ای از کنارش نمی‌گذرد
6️⃣ | نشانی IPv6 | یک نشانی عمومی IPv6 روی این رایانه راهی برای دور زدن تونلی است که فقط IPv4 است: کیل‌سوییچ آن را می‌بندد
🔒 | کیل‌سوییچ | روشن یا خاموش، و اینکه اگر وی‌پی‌ان بایستد چه می‌شود
```

خطی با `✗` یک نشتی است، همراه با کاری که باید کرد؛ آنگاه `zev vpn check` با وضعیت ۱ تمام می‌شود، پس اسکریپت‌ها می‌توانند به آن تکیه کنند. وقتی وی‌پی‌ان خاموش است، برای مقایسه نشان می‌دهد الان چه چیزی از رایانه بیرون می‌رود.

## کیل‌سوییچ

```diagram
type: flow
title: وقتی وی‌پی‌ان می‌ایستد، با --kill-switch
---
در حال کار | همه چیز از zev0 و پروکسی می‌گذرد | good | 🛡️
~ موتور از کار می‌افتد، سرور از دسترس می‌رود، سرویس کشته می‌شود
بسته | جدولی در دیوارهٔ آتش (inet zev_vpn) جز شبکهٔ محلی و خود سرور پروکسی چیزی را بیرون نمی‌گذارد | warn | 🔒
~ systemd سرویس را دوباره راه می‌اندازد
برگشت | موتور کار می‌کند و ترافیک دوباره از تونل می‌گذرد؛ در این میان هیچ چیز مستقیم بیرون نرفت | good | ✅
~ دستور sudo zev vpn off
خاموش | جدول، مسیرها و رابط برداشته می‌شوند: رایانه همان‌طور است که بود | dim | 🏠
```

بدون `--kill-switch`، تا وی‌پی‌ان خاموش است ترافیک مستقیم بیرون می‌رود، که روی شبکه‌ای که آنلاین بودن را به حریم خصوصی ترجیح می‌دهید بهتر است.

## چه چیزی مستقیم می‌رود

```bash
sudo zev vpn on --exclude bank.example.com,192.0.2.0/24   # این نام‌ها و بازه‌ها مستقیم می‌روند
sudo zev vpn on --kill-switch --exclude intranet.example  # و اگر وی‌پی‌ان قطع شود هیچ چیز دیگری بیرون نمی‌رود
sudo zev vpn run --for 60                                 # وی‌پی‌ان در این ترمینال برای یک دقیقه (همان که سرویس اجرا می‌کند؛ اول با sudo zev vpn on راه‌اندازی شود)
```

- **شبکهٔ محلی، شبکه‌های Docker، شبکه‌های خصوصی**: هر چیزی با مسیری دقیق‌تر از پیش‌فرض، تا چاپگر، NAS و کانتینرها کار کنند.
- **`--exclude`**: نام‌ها (و همهٔ نام‌های زیرشان)، نشانی‌ها و بازه‌های CIDR که فهرست می‌کنید.
- **مسیرهای شما**: `zev proxy route direct …` و بقیه برای وی‌پی‌ان هم به کار می‌روند.
- **یک برنامه**: آنچه با `sudo zev vpn direct -- <program>` اجرا کرده‌اید ([پایین‌تر](#یک-برنامه-بیرون-zev-vpn-direct)).
- **در مدت مکث، و روی شبکه‌های مورد اعتماد**: همه‌چیز ([مکث](#یک-وقفه-zev-vpn-pause)، [اعتماد](#شبکههای-مورد-اعتماد-zev-vpn-trust)).
- **آنچه zev یاد گرفته**: با [`zev proxy learn on`](/docs/fa/proxy#فقط-آنچه-لازم-دارد-zev-proxy-learn)، سایت‌هایی که اندازه‌گیری نشان داده روی این شبکه بی پروکسی کار می‌کنند مستقیم می‌روند: سریع‌ترند و حجم پروکسی را مصرف نمی‌کنند. در وی‌پی‌ان، zev از نام‌هایی که برنامه‌ها می‌پرسند یاد می‌گیرد.

`zev proxy why <site>` می‌گوید کدام‌یک از این‌ها برای یک سایت صدق می‌کند.

## یک برنامه بیرون: zev vpn direct

بعضی برنامه‌ها نباید از وی‌پی‌ان بگذرند: بانکی که نشانی‌های خارجی را رد می‌کند، بازی‌ای که کمترین تأخیر را می‌خواهد، تماس تصویری روی شبکهٔ اداره. فقط همان برنامه را بیرون از آن اجرا کنید؛ بقیه داخل می‌مانند:

```bash
sudo zev vpn direct -- steam
sudo zev vpn direct -- firefox --private-window
sudo zev vpn direct -- curl -s https://example.com/   # بررسی: این یکی مستقیم می‌رود
sudo zev vpn direct                                    # الان چه چیزی بیرون اجرا می‌شود
```

```text
Outside the VPN now
  48213    steam
  48290    steamwebhelper
```

برنامه با کاربر خودتان اجرا می‌شود (نه root)، و هر چه اجرا کند هم بیرون می‌ماند. با کیل‌سوییچ روشن هم کار می‌کند: ترافیکش علامت می‌خورد که اجازه دارد مستقیم برود، و فقط ترافیک خودش. نام‌هایی که می‌پرسد همچنان از DNS وی‌پی‌ان می‌گذرند، پس چیزی دربارهٔ بقیهٔ کامپیوتر تغییر نمی‌کند.

```diagram
type: flow
title: دو برنامه، دو راه
---
یک برنامه | بقیه، مثل قبل | | 🌐
~ داخل تونل
zev vpn | از راه سرور پراکسی شما | accent | 🔒
~
steam | با zev vpn direct اجرا شده | good | 🎮
~ علامت‌خورده: مسیر خود کامپیوتر
مستقیم | از وای‌فای یا کابل بیرون می‌رود، کیل‌سوییچ اجازه می‌دهد |  | ➡️
```

چطور: برنامه در cgroup خودش (`zev-direct`) شروع می‌شود؛ یک قاعدهٔ دیوارهٔ آتش اتصال‌های آن cgroup را علامت می‌زند، و اتصال‌های علامت‌خورده مسیر خود کامپیوتر را می‌روند، همان‌طور که موتور zev به سرور پراکسی می‌رسد. `sudo zev vpn off` قاعده و cgroup را برمی‌دارد.

## یک وقفه: zev vpn pause

چند دقیقه اتصال واقعی لازم دارید (صفحهٔ ورود یک شبکه، سایتی که وی‌پی‌ان را مسدود می‌کند، تست سرعت خط خودتان)؟ مکثش کنید؛ خودش برمی‌گردد:

```bash
sudo zev vpn pause            # ۱۰ دقیقه
sudo zev vpn pause 30s
sudo zev vpn pause 1h30m
sudo zev vpn pause forever    # تا وقتی خودتان ادامه بدهید
sudo zev vpn resume           # همین الان مکث را تمام کن
```

```text
⏸ VPN paused for 1 min: traffic goes directly, the kill switch is off too.
  The engine keeps running, so it comes back at once. sudo zev vpn resume ends the pause now.
```

`zev vpn status` نشان می‌دهد چقدر مانده. در مدت مکث کیل‌سوییچ هم کنار می‌رود (معنی مکث همین است)؛ با وی‌پی‌ان برمی‌گردد.

## شبکه‌های مورد اعتماد: zev vpn trust

ممکن است در خانه وی‌پی‌ان نخواهید؛ روی وای‌فای کافه می‌خواهید. شبکه‌هایی را که به آن‌ها اعتماد دارید علامت بزنید: آنجا وی‌پی‌ان خودش کنار می‌رود، و روی هر شبکهٔ دیگری همه‌چیز را می‌برد:

```bash
sudo zev vpn trust            # شبکه‌ای که الان رویش هستید
sudo zev vpn trust ls
sudo zev vpn untrust this     # یا نامی از فهرست، یا all
```

```diagram
type: flow
title: همان لپ‌تاپ، سه شبکه
---
خانه | مورد اعتماد: ترافیک مستقیم می‌رود | good | 🏠
~ بیرون می‌روید
وای‌فای کافه | نه مورد اعتماد: همه‌چیز از وی‌پی‌ان، کیل‌سوییچ روشن | accent | ☕
~ برمی‌گردید
خانه | دوباره مستقیم، خودبه‌خود | good | 🏠
```

هر شبکه با روترش (نشانی و نشانی سخت‌افزاری‌اش) شناخته می‌شود و هر پنج ثانیه بررسی می‌شود، پس به‌محض وصل شدن به شبکهٔ دیگر جابه‌جایی انجام می‌شود. این فقط وقتی مهم است که وی‌پی‌ان روشن باشد: اعتماد به یک شبکه هیچ‌وقت خودش وی‌پی‌ان را روشن یا خاموش نمی‌کند، و هیچ چیز با روشن شدن کامپیوتر شروع نمی‌شود مگر اینکه `sudo zev vpn on` را اجرا کرده باشید.

هر مکث، شبکهٔ مورد اعتماد و برگشت در تاریخچه نوشته می‌شود ([zev proxy history](/docs/fa/proxy#چطور-دوام-آورد-zev-proxy-history)).

## چطور کار می‌کند

```diagram
type: sequence
title: یک اتصال از وی‌پی‌ان
lanes: برنامه | zev0 و موتور | سرور پروکسی | سایت
alt: یک برنامه به روال عادی وصل می‌شود؛ مسیرها بسته‌هایش را به zev0 می‌فرستند؛ موتور آن‌ها را می‌خواند، نام سایت را پیدا می‌کند، مسیرها را بررسی می‌کند و اتصال را با نشانهٔ 7701 از سرور پروکسی می‌فرستد تا از مسیر عادی بیرون برود؛ سایت از راه پروکسی جواب می‌دهد
---
برنامه -> zev0 و موتور : اتصال به 104.16.124.96:443، مثل همیشه
zev0 و موتور -> zev0 و موتور : نام از سلام TLS (www.cloudflare.com)، سپس مسیرها: مستقیم یا پروکسی
zev0 و موتور -> سرور پروکسی : از راه لینک شما، با نشانهٔ 7701 تا دور نزند
سرور پروکسی -> سایت : اتصال، از نشانی سرور
سایت --> برنامه : جواب، از همان راه برمی‌گردد
note zev0 و موتور : پرسش DNS روی پورت 53 هرگز بیرون نمی‌رود: موتور آن را روی HTTPS جواب می‌دهد | good
```

zev رابط `zev0` را می‌سازد (172.19.0.1/30)، قاعده‌های مسیریابی سیاستی می‌گذارد (نشانهٔ 7701 به جدول اصلی، بقیه به جدول 7701 که به `zev0` اشاره دارد)، systemd-resolved را به DNS تونل (172.19.0.2) می‌فرستد و موتور را به شکل سرویس systemd از نسخهٔ خودش در `/var/lib/zev/vpn` که مال root است اجرا می‌کند. `sudo zev vpn off` همهٔ این‌ها را برمی‌دارد.

## خودش درست می‌شود

سرویس هر ۳۰ ثانیه بررسی می‌کند که ترافیک واقعاً می‌گذرد. پس از سه شکست پشت سر هم به شما خبر می‌دهد، [`zev proxy doctor`](/docs/fa/proxy#وقتی-کار-نمیکند-zev-proxy-doctor) را اجرا می‌کند (دروغ DNS، پورت بسته، فیلتر SNI، ساعت نادرست)، راه‌حل را برای این شبکه ذخیره می‌کند و موتور را با آن دوباره راه می‌اندازد. سروری که از کار بیفتد خودبه‌خود با بعدی گروه جایگزین می‌شود. با کیل‌سوییچ روشن، zev برای اجرای doctor وی‌پی‌ان را متوقف نمی‌کند.

## با zev dns

وی‌پی‌ان همین حالا همهٔ پرسش‌های DNS را به تونل می‌برد. [zev dns](/docs/fa/dns) برای وقتی است که وی‌پی‌ان خاموش است، یا برای نام‌هایی که مستقیم می‌فرستید: پیدا می‌کند کدام سرورهای DNS روی این شبکه راست می‌گویند، امضاهای DNSSEC را خودش بررسی می‌کند و DNS خود شبکه را پشتشان نگه می‌دارد. با هم کار می‌کنند؛ هیچ‌کدام تنظیمات دیگری را عوض نمی‌کند.

## وقتی چیزی درست نیست

| می‌بینید | یعنی | چه کنید |
|---|---|---|
| `zev vpn check`: UDP از جای دیگری بیرون می‌آید | پروتکل یا تنظیم سرور پروکسی UDP را نمی‌برد، یا چیزی آن را دور می‌زند | لینکی که UDP را می‌برد (VLESS، Trojan، Hysteria2، WireGuard)؛ `--kill-switch` در این میان جلوی نشتی را می‌گیرد |
| `zev vpn check`: هشدار IPv6 | این شبکه به شما IPv6 عمومی می‌دهد و تونل IPv4 است | `sudo zev vpn on --kill-switch` |
| هیچ چیز باز نمی‌شود، `zev vpn status` می‌گوید failing | سرور از این شبکه در دسترس نیست | `zev proxy doctor`، یا سروری دیگر: `zev proxy use auto` |
| سایتی فقط بدون وی‌پی‌ان کار می‌کند | بازدیدکنندهٔ کشور پروکسی را نمی‌پذیرد | `zev proxy route direct that-site.example`، یا `zev proxy learn` |
| `sudo zev vpn on` روی macOS یا ویندوز | هنوز نه | `zev proxy share on` همراه با `zev proxy system on` |

## امنیت

- سرویس نسخه‌ای از موتور را اجرا می‌کند که مال root است، هرگز فایلی که حساب کاربری شما بتواند جایگزینش کند.
- بررسی گواهی‌ها روشن می‌ماند و لینک می‌تواند گواهی سرور را سنجاق کند.
- نام‌هایی که zev از آن‌ها یاد می‌گیرد در پوشهٔ سرویس نگه داشته می‌شوند، فقط برای root خواندنی، و پس از هر اندازه‌گیری (هر نیم ساعت) پاک می‌شوند.
- `sudo zev vpn off`، یا ایستادن سرویس بدون کیل‌سوییچ، مسیریابی و DNS را همان‌طور که بود برمی‌گرداند.
