Skip to content

Commit 7df0ca2

Browse files
committed
docs: translate English guides and README index to Farsi
1 parent 74bdcfe commit 7df0ca2

16 files changed

Lines changed: 530 additions & 1025 deletions

‎README.md‎

Lines changed: 93 additions & 231 deletions
Large diffs are not rendered by default.

‎docs/android-guide.md‎

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,37 @@
1-
# Android Guide
1+
# راهنمای اندروید
22

3-
## Purpose
3+
## هدف
44

5-
Set up v2rayNG with a locally generated CA and the primary Xray config on Android. This path targets Chromium-based browsers first; independent apps may ignore user CAs or use certificate pinning.
5+
راه‌اندازی برنامه v2rayNG با گواهی ریشه (CA) محلی و فایل کانفیگ اصلی Xray در اندروید. این روش در وهله اول مرورگرهای مبتنی بر کرومیوم را هدف قرار می‌دهد؛ برنامه‌های مستقل (اپ‌ها) ممکن است گواهی‌های کاربر را نادیده گرفته یا از قفل گواهی (Certificate Pinning) استفاده کنند.
66

7-
## Steps
7+
## مراحل راه‌اندازی
88

9-
1. Install v2rayNG.
10-
2. Generate `mycert.crt` and `mycert.key` locally on a trusted device or on Android if your workflow supports it.
11-
3. Import both files into v2rayNG asset files if required by the client workflow.
12-
4. Install `mycert.crt` as a user CA in Android settings.
13-
5. Import `MITM-DomainFronting.json`.
14-
6. Enable required TUN/VPN setting in v2rayNG according to the client guide.
15-
7. Test with a Chromium-based browser first.
16-
8. For Firefox Android, enable third-party CA support if needed.
9+
1. برنامه **v2rayNG** را نصب کنید.
10+
2. فایلهای `mycert.crt` و `mycert.key` را روی یک دستگاه معتبر یا مستقیماً در اندروید تولید کنید.
11+
3. در صورت نیاز کلاینت، هر دو فایل را در بخش Asset files برنامه v2rayNG وارد کنید.
12+
4. فایل `mycert.crt` را به‌عنوان گواهی کاربر (User CA) در تنظیمات اندروید نصب کنید.
13+
5. فایل کانفیگ `MITM-DomainFronting.json` را وارد برنامه کنید.
14+
6. تنظیمات مربوط به TUN/VPN را در تنظیمات v2rayNG طبق راهنما فعال کنید.
15+
7. ابتدا تست را با یک مرورگر مبتنی بر کرومیوم انجام دهید.
16+
8. در صورت استفاده از مرورگر فایرفاکس اندروید، قابلیت پشتیبانی از گواهی‌های شخص ثالث (Third-party CA) را در تنظیمات فایرفاکس فعال کنید.
1717

18-
## App limitation
18+
## محدودیت اپلیکیشن‌ها
1919

20-
If the browser works but an independent app fails, treat it as an app compatibility issue unless proven otherwise. Many apps do not use the user CA store.
20+
اگر مرورگر به درستی کار می‌کند اما یک برنامه خاص خطا می‌دهد، آن را به‌عنوان مشکل ناسازگاری اپلیکیشن در نظر بگیرید. بسیاری از برنامه‌ها از مخزن گواهی کاربر استفاده نمی‌کنند و فقط به گواهی‌های سیستم اعتماد دارند.
2121

22-
## Troubleshooting
22+
## عیب‌یابی اندروید
2323

24-
| Symptom | Likely cause | Fix |
24+
| نشانه خطا | علت احتمالی | اقدام لازم |
2525
|---|---|---|
26-
| Browser privacy error | CA not installed or wrong CA | Reinstall and verify fingerprint |
27-
| Chrome works, Firefox fails | Firefox CA setting | Enable third-party CA support/import CA |
28-
| Browser works, app fails | app pinning/custom trust | Use browser path or mark unsupported |
29-
| Works on Wi-Fi not mobile | IPv6/NAT64/provider DNS | Add network details and DNS check |
30-
| Internet broken after stop | FakeDNS/VPN cache | Toggle airplane mode and follow FakeDNS recovery |
26+
| خطای حریم خصوصی در مرورگر | گواهی نصب نشده یا گواهی اشتباه است | نصب مجدد و تأیید اثر انگشت گواهی |
27+
| کروم کار می‌کند، فایرفاکس خطا می‌دهد | تنظیمات گواهی فایرفاکس | فعال کردن قابلیت Third-party CA در تنظیمات مخفی فایرفاکس |
28+
| مرورگر کار می‌کند، اما اپلیکیشن متصل نمی‌شود | قفل گواهی در برنامه / اعتماد سفارشی | استفاده از نسخه وب اپلیکیشن در مرورگر یا علامت‌گذاری به‌عنوان ناسازگار |
29+
| در وای‌فای کار می‌کند، اما در اینترنت سیم‌کارت خطا می‌دهد | پروتکل IPv6 یا DNS اپراتور | بررسی جزئیات شبکه و فعال کردن دی‌ان‌اس اختصاصی در کانفیگ |
30+
| اینترنت بعد از قطع اتصال قطع می‌ماند | کش شدن آدرس‌های FakeDNS/VPN | فعال و غیرفعال کردن حالت هواپیما (Airplane Mode) |
3131

32-
## Related documents
32+
## مستندات مرتبط
3333

34-
| Document | Topic |
34+
| مستند | موضوع |
3535
|---|---|
36-
| [`android-trust-model.md`](android-trust-model.md) | User CA vs app trust behavior |
37-
| [`ca-install-guide.md`](ca-install-guide.md) | Android CA install steps |
38-
| [`tun-operational-notes.md`](tun-operational-notes.md) | TUN/VPN checks on Android |
39-
| [`fakedns-recovery.md`](fakedns-recovery.md) | Network recovery after stop |
36+
| [`android-trust-model.md`](android-trust-model.md) | مدل اعتماد اندروید به گواهی‌های کاربر |
37+
| [`ca-install-guide.md`](ca-install-guide.md) | آموزش نصب گواهی در اندروید |

‎docs/android-trust-model.md‎

Lines changed: 21 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,38 @@
1-
# Android Trust Model
1+
# مدل اعتماد در اندروید
22

3-
## Purpose
3+
## هدف
44

5-
Explain why Android browser success does not imply app success. User-installed CAs, system CAs, app trust policies, and VPN/TUN behavior differ by app; use this model when triaging Android reports.
5+
توضیح اینکه چرا موفقیت آمیز بودن اتصال مرورگر در اندروید به‌معنای کارکرد درست تمام برنامه‌ها (اپلیکیشن‌ها) نیست. گواهی‌های نصب‌شده کاربر (User CAs)، گواهی‌های سیستم (System CAs)، سیاست‌های اعتماد برنامه‌ها و نحوه رفتار VPN/TUN بر اساس هر اپلیکیشن متفاوت است. هنگام بررسی مشکلات اندروید از این مدل استفاده کنید.
66

7-
## Why Android behavior differs
7+
## چرا رفتار اندروید متفاوت است؟
88

9-
Android separates user-installed CAs, system CAs, app trust policies, and VPN/TUN behavior. A browser may trust a user CA while an independent app may ignore it.
9+
اندروید گواهی‌های نصب‌شده کاربر را از گواهی‌های سیستمی جدا می‌کند. مرورگر کروم معمولاً به گواهی‌های نصب‌شده توسط کاربر اعتماد می‌کند، اما اپلیکیشن‌های مستقل (مانند اینستاگرام، گوگل‌میت، کلاب‌هاوس و غیره) سیاست‌های امنیتی سخت‌گیرانه‌تری دارند و گواهی‌های کاربر را کاملاً نادیده می‌گیرند.
1010

11-
## Practical rule
11+
## قاعده عملی
1212

13-
Browser support is realistic. Arbitrary app support is not guaranteed.
13+
اتصال از طریق مرورگر کاملاً واقع‌بینانه و قابل انجام است؛ اما کارکرد برنامه‌های متفرقه مستقل به هیچ وجه تضمین نمی‌شود.
1414

15-
## Compatibility classes
15+
## سطوح سازگاری برنامه‌ها در اندروید
1616

17-
| Class | Expected result | Notes |
17+
| سطح سازگاری | نتیجه مورد انتظار | توضیحات |
1818
|---|---|---|
19-
| Chromium-based browser trusts user CA | Usually works | Best non-root Android path |
20-
| Firefox Android with third-party CA enabled | May work | Requires extra setting |
21-
| App trusts user CAs | May work | App-specific |
22-
| App trusts only system CAs | Usually fails | Not a config bug |
23-
| App pins certificates | Usually fails | Do not try to bypass pinning |
24-
| App uses QUIC/WebRTC heavily | May degrade or fail | UDP-heavy behavior must be tested |
25-
| App uses custom network stack | Unknown | App-specific |
19+
| مرورگرهای مبتنی بر کرومیوم (کروم، ادج) | کارکرد صحیح | بهترین و پایدارترین مسیر در اندروید غیر روت |
20+
| فایرفاکس با فعال‌سازی Third-party CA | کارکرد صحیح | نیاز به تغییر دستی تنظیمات مخفی فایرفاکس دارد |
21+
| برنامه‌هایی که به گواهی‌های کاربر اعتماد دارند | احتمال کارکرد صحیح | بستگی به سیاست امنیتی توسعه‌دهنده برنامه دارد |
22+
| برنامه‌هایی که فقط به گواهی‌های سیستم اعتماد دارند | عدم کارکرد | این یک باگ پیکربندی نیست، بلکه محدودیت امنیتی اندروید است |
23+
| برنامه‌هایی که قفل گواهی (Pinning) دارند | عدم کارکرد | ترافیک این برنامه‌ها را نمی‌توان رمزگشایی کرد و دور زدن آن ممکن نیست |
24+
| برنامه‌های متکی به QUIC/WebRTC | افت کیفیت یا عدم کارکرد | رفتارهای مبتنی بر UDP باید آزمایش شوند |
2625

27-
## Issue template language
26+
## متن پیشنهادی جهت پاسخ به مشکلات کاربران در اندروید
2827

29-
When reporting Android issues, specify:
30-
31-
- Android version;
32-
- device/vendor;
33-
- v2rayNG version;
34-
- browser or app name;
35-
- whether browser works;
36-
- whether the failing target is an independent app;
37-
- whether HEV TUN is enabled;
38-
- redacted preflight output if available.
39-
40-
## Recommended support wording
41-
42-
For app failures when the browser works:
28+
در صورتی که ترافیک مرورگر باز می‌شود اما برنامه‌ها متصل نمی‌شوند:
4329

4430
```text
45-
If the same service works in a browser but fails in the Android app, the app may ignore user CAs, use certificate pinning, use a custom network stack, or use UDP/QUIC/WebRTC paths not handled by the browser-oriented setup. Please test in a supported browser and provide platform details.
31+
اگر سرویس مورد نظر در مرورگر کار می‌کند اما در اپلیکیشن اندرویدی آن با خطا مواجه می‌شود، اپلیکیشن احتمالاً گواهی‌های کاربر را نادیده می‌گیرد، از قفل گواهی (Certificate Pinning) استفاده می‌کند، کانال شبکه اختصاصی دارد، یا از مسیرهای UDP/QUIC استفاده می‌کند که توسط ساختار مرورگر پشتیبانی نمی‌شوند. لطفاً نسخه تحت وب برنامه را در یک مرورگر سازگار تست کنید.
4632
```
4733

48-
## Related documents
34+
## مستندات مرتبط
4935

50-
| Document | Topic |
36+
| مستند | موضوع |
5137
|---|---|
52-
| [`android-guide.md`](android-guide.md) | v2rayNG setup steps |
53-
| [`platform-compatibility.md`](platform-compatibility.md) | Cross-platform support matrix |
54-
| [`protocol-coverage.md`](protocol-coverage.md) | QUIC/WebRTC expectations |
55-
| [`tun-operational-notes.md`](tun-operational-notes.md) | TUN vs browser proxy on Android |
38+
| [`android-guide.md`](android-guide.md) | آموزش گام‌به‌گام راه‌اندازی v2rayNG |
Lines changed: 29 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,48 @@
1-
# Emergency Key-Compromise Guide
1+
# راهنمای اضطراری نشت کلید خصوصی گواهی (CA)
22

3-
## Purpose
3+
## هدف
44

5-
Respond when `mycert.key` may have been exposed through git, issues, chat, screenshots, or an untrusted environment. Treat the old CA as compromised: remove trust, rotate locally, and verify the new fingerprint before resuming.
5+
اقدام فوری در زمانی که فایل کلید خصوصی `mycert.key` در گیت‌هاب، کامنت‌ها، چت، اسکرین‌شات‌ها یا در یک محیط غیر قابل اعتماد نشت کرده است. در این حالت گواهی ریشه قبلی را کاملاً ناامن (Compromised) تلقی کرده و مراحل حذف اعتماد، چرخش محلی و تأیید اثر انگشت جدید را انجام دهید.
66

7-
## Trigger
7+
## چه زمانی از این راهنما استفاده کنید؟
88

9-
Use this guide if `mycert.key` was uploaded, pasted, emailed, committed to git, screenshotted, shared, or generated on an untrusted website.
9+
اگر فایل یا متن کلید خصوصی `mycert.key` آپلود شده، کپی‌پیست شده، ایمیل شده، به گیت متعهد (committed) شده، اسکرین‌شات گرفته شده یا روی وب‌سایت‌های آنلاین تولید شده است.
1010

11-
## Impact
11+
## پیامدها
1212

13-
Anyone with the private key and a trusted copy of the matching CA context may impersonate certificates within that local trust boundary. Treat the old CA as compromised.
13+
هر شخصی که به کلید خصوصی گواهی ریشه معتبر سیستم شما دسترسی داشته باشد، می‌تواند ترافیک رمزگذاری شده سیستم شما را در محدوده آن گواهی جعل یا شنود کند. گواهی قبلی باید فاقد اعتبار شود.
1414

15-
## Immediate actions
15+
## اقدامات فوری
1616

17-
1. Stop the client.
18-
2. Disconnect from untrusted networks if concerned.
19-
3. Remove the old CA from OS/browser trust stores.
20-
4. Delete old `mycert.crt` and `mycert.key` from the active config folder.
21-
5. Generate a new CA locally.
22-
6. Install the new CA.
23-
7. Verify new fingerprint.
24-
8. Search the repository and issue history for accidental key exposure.
17+
1. کلاینت را متوقف کنید.
18+
2. گواهی ریشه قدیمی را از مخزن گواهی‌های معتبر سیستم‌عامل و مرورگر پاک کنید.
19+
3. فایلهای قدیمی `mycert.crt` و `mycert.key` را از پوشه پیکربندی حذف کنید.
20+
4. گواهی جدید را به صورت کاملاً محلی تولید کنید.
21+
5. گواهی جدید را نصب کنید.
22+
6. اثر انگشت جدید را تأیید کنید.
23+
7. تاریخچه گیت‌هاب یا تیکت‌ها را برای اطمینان از پاک شدن کلید نشت‌کرده بررسی کنید.
2524

26-
## Commands
25+
## دستورات چرخش اضطراری گواهی محلی
26+
27+
دستور زیر را در ترمینال اجرا کنید:
2728

2829
```bash
2930
python scripts/mitm_trust.py emergency --out-dir Xray-config
3031
```
3132

32-
This command rotates local files. You must still remove the old trusted CA from each OS/browser trust store manually.
33-
34-
## Git exposure response
35-
36-
If a key was committed:
37-
38-
1. Remove it from the latest commit.
39-
2. Rotate the CA immediately.
40-
3. Treat the old key as permanently compromised.
41-
4. Add `.gitignore` protection.
42-
5. Consider repository history cleanup if appropriate.
43-
44-
## Issue exposure response
33+
این دستور فایلهای محلی را تعویض می‌کند. شما همچنان باید گواهی قدیمی نصب‌شده را به صورت دستی از سیستم‌عامل یا مرورگر خود حذف کنید.
4534

46-
If a user posts a key in an issue:
35+
## نشت کلید در گیت (Git Commit)
4736

48-
1. Hide/delete the comment if possible.
49-
2. Tell the user to rotate immediately.
50-
3. Do not reuse that key.
51-
4. Do not download or test the user's key.
37+
اگر کلید را در گیت کامیت کرده‌اید:
38+
1. آن را سریعاً از آخرین کامیت حذف کنید.
39+
2. گواهی ریشه را بلافاصله چرخش دهید (تعویض کنید).
40+
3. کلید قبلی را برای همیشه ناامن فرض کنید.
41+
4. مطمئن شوید فایلهای `.crt` و `.key` در فایل `.gitignore` قرار دارند.
5242

53-
## Related documents
43+
## مستندات مرتبط
5444

55-
| Document | Topic |
45+
| مستند | موضوع |
5646
|---|---|
57-
| [`ca-rotate-guide.md`](ca-rotate-guide.md) | Standard rotation steps |
58-
| [`ca-remove-guide.md`](ca-remove-guide.md) | Remove compromised CA from trust stores |
59-
| [`SECURITY.md`](../SECURITY.md) | Vulnerability and secret-handling policy |
60-
| [`certificate-lifecycle.md`](certificate-lifecycle.md) | Key exposure lifecycle state |
47+
| [`ca-remove-guide.md`](ca-remove-guide.md) | نحوه پاک کردن گواهی ناامن از سیستم |
48+
| [`certificate-lifecycle.md`](certificate-lifecycle.md) | مدیریت چرخه عمر و امنیت کلید خصوصی |
Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,38 @@
1-
# Expired Certificate Recovery
1+
# بازیابی گواهی منقضی شده (CA)
22

3-
## Purpose
3+
## هدف
44

5-
Recover when the local CA has expired and the browser begins showing certificate or privacy errors. Check expiry with `mitm_trust.py`, rotate to a new pair, reinstall trust, and verify before restarting the client.
5+
اقدام لازم در زمان انقضای گواهی ریشه محلی و نمایش خطای امنیتی یا حریم خصوصی در مرورگر. انقضا را با اسکریپت `mitm_trust.py` بررسی کنید، گواهی جدید بسازید، آن را مجدداً نصب و اعتماددهی کنید.
66

7-
## Symptoms
7+
## نشانه‌های انقضای گواهی
88

9-
- Browser suddenly shows certificate/privacy errors.
10-
- Previously working setup fails after a date change.
11-
- `mitm_trust.py status` shows the certificate is expired.
9+
- مرورگر به‌طور ناگهانی خطاهای گواهی/حریم خصوصی (Privacy Error) نشان می‌دهد.
10+
- اتصال پروکسی که قبلاً به‌خوبی کار می‌کرد، قطع می‌شود.
11+
- در خروجی دستور `python scripts/mitm_trust.py status` وضعیت گواهی برابر با expired (منقضی شده) نشان داده می‌شود.
1212

13-
## Check expiry
13+
## روش بازیابی
1414

15-
```bash
16-
python scripts/mitm_trust.py status --cert Xray-config/mycert.crt --key Xray-config/mycert.key
17-
```
18-
19-
If OpenSSL is installed, the script prints certificate expiry.
20-
21-
## Recovery
22-
23-
1. Stop the client.
24-
2. Rotate certificate and key:
15+
1. کلاینت v2rayN/v2rayNG/Xray را متوقف کنید.
16+
2. گواهی ریشه و کلید جدید تولید کنید:
2517

2618
```bash
2719
python scripts/mitm_trust.py rotate --out-dir Xray-config
2820
```
2921

30-
3. Remove the expired CA from OS/browser trust store.
31-
4. Install the new CA.
32-
5. Verify fingerprint.
33-
6. Restart the client.
34-
7. Test a supported browser flow.
22+
3. گواهی منقضی شده قدیمی را از مخزن سیستم‌عامل و مرورگر خود کاملاً پاک کنید.
23+
4. گواهی جدید `mycert.crt` را نصب و اعتماددهی کنید.
24+
5. اثر انگشت گواهی جدید را تأیید کنید.
25+
6. کلاینت را دوباره اجرا کرده و تست کنید.
3526

36-
## Prevent recurrence
27+
## پیشگیری
3728

38-
- Add expiry date to local notes.
39-
- Check expiry before each release or major troubleshooting session.
40-
- Prefer rotation over trying to extend an old CA.
29+
- بررسی انقضا را قبل از عیب‌یابی‌های طولانی انجام دهید.
30+
- همواره چرخش و تولید گواهی جدید را به تلاش برای تغییر تاریخ گواهی‌های قدیمی ترجیح دهید.
4131

42-
## Related documents
32+
## مستندات مرتبط
4333

44-
| Document | Topic |
34+
| مستند | موضوع |
4535
|---|---|
46-
| [`ca-rotate-guide.md`](ca-rotate-guide.md) | Full rotation workflow |
47-
| [`ca-verify-guide.md`](ca-verify-guide.md) | Post-rotation verification |
48-
| [`certificate-lifecycle.md`](certificate-lifecycle.md) | Expiry warnings and status fields |
36+
| [`ca-rotate-guide.md`](ca-rotate-guide.md) | مراحل کامل چرخش و تعویض گواهی |
37+
| [`ca-verify-guide.md`](ca-verify-guide.md) | تأیید اثر انگشت گواهی جدید |
38+
| [`certificate-lifecycle.md`](certificate-lifecycle.md) | مدیریت وضعیت‌ها و چرخه عمر گواهی |

0 commit comments

Comments
 (0)