Skip to content

Latest commit

 

History

56 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Passwall+ — تونل سراسری برای روتر OpenWrt

نسخه ۱.۰.۹ · پشتیبانی و تماس: t.me/routekernel1 🇬🇧 English guide: README.en.md

روی روتر نصبش می‌کنید، Connect را می‌زنید، و از آن لحظه هر دستگاهی که به شبکهٔ شماست — موبایل، لپ‌تاپ، تلویزیون، کنسول — از تونل رد می‌شود. روی هیچ دستگاهی چیزی نصب نمی‌کنید و هیچ کانفیگی جایی paste نمی‌کنید.

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

هستهٔ کار Xray است. به PassWall2 یا هیچ پکیج دیگری نیاز ندارد و به تنظیمات آن‌ها هم دست نمی‌زند. اگر روتر از قبل هستهٔ Xray داشته باشد از همان استفاده می‌کند و نسخهٔ دومی دانلود نمی‌شود.


۱. قبل از نصب: روتر شما جا دارد؟

حداقل راحت
فلش خالی ۲۰ مگابایت ۵۰ مگابایت
رم ۱۲۸ مگابایت ۲۵۶ مگابایت به بالا
پردازنده هر معماری‌ای که Xray برایش بیلد دارد دو کور به بالا

فلش. خود پکیج حدود ۱۳ مگابایت است، چون هستهٔ Xray داخلش است. اگر روتر از قبل xray-core داشته باشد — مثلاً PassWall2 آن را آورده — Passwall+ از همان استفاده می‌کند و چیزی دانلود نمی‌شود. دیتای مسیریابی ایران اختیاری است و جدا حساب می‌شود: جفت کامل ۲۵ مگابایت، جفت -lite حدود ۲ مگابایت.

روترهای ۳۲ مگابایتی — که خیلی از مدل‌های قدیمی‌اند — جا ندارند، مگر اینکه فضای USB اضافه کنید.

رم. هستهٔ در حال اجرا بین ۴۰ تا ۸۰ مگابایت می‌گیرد. روی روتر ۱۲۸ مگابایتی کار می‌کند، ولی اگر ساب صد کانفیگی دارید در تنظیمات Checked at once را از ۳۰ بیاورید روی ۱۰. آن عدد یعنی چند هندشیک هم‌زمان زده شود، و روی رم کم همان چیزی است که روتر را تحت فشار می‌گذارد — نه خود تونل.

پردازنده. سرعت را رمزنگاری TLS تعیین می‌کند، نه تعداد کورها. روی روتر مرجع — چهار کور Cortex-A7 با ۷۱۷ مگاهرتز — اندازه گرفته شده: ۱.۶ مگابایت بر ثانیه از داخل تونل، و انتخاب نود از بین ۹۸ کانفیگ ۸.۸ ثانیه. روی پردازندهٔ ضعیف‌تر هم همین کار را می‌کند، فقط کندتر.


۲. نصب

هر ریلیز هر دو فرمت پکیج را دارد، چون OpenWrt در ۲۵.۱۲ پکیج‌منیجرش را عوض کرد. جفتی را بردارید که به روتر شما می‌خورد:

OpenWrt شما پکیج‌منیجر دو فایلی که لازم دارید
۲۵.۱۲ و بالاتر apk passwall-plus-<نسخه>.<معماری>.apk و luci-app-passwall-plus-<نسخه>.apk
۲۴.۱۰ و ۲۳.۰۵ opkg passwall-plus_<نسخه>_<معماری>.ipk و luci-app-passwall-plus_<نسخه>_all.ipk

معماری روتر شما در /etc/openwrt_release جلوی DISTRIB_ARCH نوشته شده. پکیج luci-app-passwall-plus معماری ندارد و به همهٔ روترها می‌خورد.

راه ساده: از خود LuCI

در LuCI بروید به System ← Software و Upload Package… را بزنید. اول فایل اصلی را آپلود و نصب کنید، بعد فایل luci-app-… را. بعد از دومی یک بار Ctrl+F5 بزنید تا صفحهٔ جدید ظاهر شود.

راه دوم: از ترمینال

اول هر دو فایل را خودتان در پوشهٔ /tmp روتر بگذارید — با WinSCP، با FileZilla، یا از راه System ← Software ← Upload Package… در خود LuCI. بعد به روتر SSH بزنید و روی ۲۵.۱۲ و بالاتر:

apk add --allow-untrusted /tmp/passwall-plus-*.apk /tmp/luci-app-passwall-plus-*.apk

روی ۲۴.۱۰ و ۲۳.۰۵:

opkg install /tmp/passwall-plus_*.ipk /tmp/luci-app-passwall-plus_*.ipk

موقع نصب، روتر باید اینترنت داشته باشد

چند چیزی که Passwall+ لازم دارد در ایمیج استاندارد OpenWrt نیست — kmod-nft-tproxy، curl، ip-full — و پکیج‌منیجر همان موقع نصب آن‌ها را می‌گیرد. پس این کار را روی یک اتصال سالم انجام دهید، قبل از اینکه به تونل احتیاج پیدا کنید.

اگر این مرحله خراب شد یا فایل را دستی نصب کردید، در صفحهٔ Settings بروید پایین، بخش Does this router have what it needs?. آنجا سه سؤال از خود سیستم پرسیده می‌شود — می‌تواند ترافیک را منحرف کند؟ policy routing بلد است؟ HTTPS می‌گیرد؟ — و هرچه کم باشد با یک دکمه نصب می‌شود. هیچ‌وقت به xray-core دست نمی‌زند، پس روتری که PassWall2 دارد دست‌نخورده می‌ماند.

بعد از نصب هیچ چیزی خودش اجرا نمی‌شود. تا Connect را نزنید تونل خاموش است.


۳. اولین اتصال

۱. در LuCI بروید به Services ← Passwall+. ۲. صفحه که باز شد، روتر همان لحظه شروع می‌کند به اندازه‌گیری نودها. نوار پیشرفت را نگاه کنید. ۳. وقتی نوار سبز شد، Connect را بزنید.

همین. اگر ساب پیش‌فرض باز نشد یا اصلاً لیستی ندارید، بروید به صفحهٔ Nodes، یک کانفیگ خودتان را در بخش Nodes added manually بگذارید و برگردید.

اگر PassWall2 روی همین روتر روشن است، اول خاموشش کنید. دو پروکسی ترنسپرنت سر یک بسته دعوا می‌کنند و بازنده اتصال شماست. Passwall+ اگر ببیند PassWall2 دارد ترافیک را منحرف می‌کند، بالای صفحه به شما می‌گوید.


۴. چهار صفحه‌ای که می‌بینید

Status — وضعیت

دکمه چه می‌کند
Connect یک نود پیدا می‌کند و همهٔ دستگاه‌های شبکه را از آن رد می‌کند
Disconnect تونل را قطع می‌کند. شبکه بلافاصله به حالت عادی برمی‌گردد
Choose again انتخاب فعلی را دور می‌ریزد و از اول اندازه می‌گیرد

اندازه‌گیری وقتی صفحه باز می‌شود شروع می‌شود، نه وقتی دکمه را می‌زنید — پس تا شما تصمیم بگیرید، جواب معمولاً آماده است. نوار پیشرفت می‌گوید کدام مرحله در حال اجراست و نودهای واقعی را می‌شمارد، نه ثانیه‌های حدسی.

Connected یعنی ترافیک واقعاً دارد از تونل می‌رود — هم پروسس زنده است و هم قوانین فایروال سر جایشان هستند. هسته‌ای که اجرا شده ولی قانونی جلویش نیست اتصال نیست، و این صفحه به آن Connected نمی‌گوید.

پایین‌تر Traffic through the tunnel است: امروز، هفت روز اخیر و این ماه به شکل حلقه، آپلود در برابر دانلود، به‌علاوهٔ چهارده روز اخیر به شکل میله. اعداد هر پنج دقیقه از هسته خوانده و در رم جمع می‌شوند و هر پنج دقیقه روی حافظهٔ روتر نوشته می‌شوند. این عدد در تنظیمات قابل تغییر است و پنج دقیقه یعنی قطع برق روتر حداکثر یک نوبت خوانده‌شده را می‌برد — نه یک ساعت، که تا نسخهٔ ۱.۰.۰ می‌برد.

بالای صفحه گاهی یک کادر زرد پیام ظاهر می‌شود. آن کادر فقط برای چیزهایی است که شما باید کاری برایشان بکنید، و گوشه‌اش یک ضربدر دارد که می‌بندَدش. فهرست کاملِ چیزهایی که ممکن است آنجا بخوانید در بخش ۷ آمده.

Nodes — نودها

بالای صفحه انتخاب می‌کنید از چه منبعی استفاده شود:

گزینه یعنی
مالِ من و ساب‌ها هم کانفیگ‌های دستی، هم هر سابی که روشن است (پیش‌فرض)
فقط مالِ من فقط کانفیگ‌های دستی. ساب‌ها اصلاً خوانده نمی‌شوند
فقط ساب‌ها کانفیگ‌های دستی کنار گذاشته می‌شوند

این تعیین می‌کند چه کسی سنجیده شود، نه چه کسی برنده شود. نودی استفاده می‌شود که سریع‌ترین جواب را بدهد، از هر منبعی که آمده باشد. کانفیگ دستی به لیست اضافه می‌شود، جایش را نمی‌گیرد. اگر می‌خواهید یک نود مشخص حتماً استفاده شود، پایین همین صفحه کنارش Use this one را بزنید.

ساب‌ها. آدرس را می‌دهید و هر ربع ساعت خوانده می‌شود. لازم نیست بدانید فرمتش چیست:

فرمت مثال
لیست سادهٔ کانفیگ هر خط یک vless:// یا vmess://
بلوک base64 همان لیست، کدشده — که بیشتر ساب‌فروش‌ها می‌دهند
کانفیگ Xray فایل JSON با outbounds
کانفیگ sing-box JSON با outbounds یا endpoints — از جمله فورک sing-box-lx با ترنسپورت xhttp
کانفیگ Clash چه JSON، چه .yaml با proxies:
کانفیگ Hysteria فایل .yaml هیستریا۲ با server: و auth:
WireGuard فایل .conf با [Interface] و [Peer]

AmneziaWG خوانده نمی‌شود و عمداً کنار گذاشته می‌شود. آن، وایرگارد است با بسته‌های زائد و هدرهای بازنویسی‌شده تا شبیه وایرگارد نباشد، و هستهٔ Xray اصلاً بلدش نیست. اگر آن را به لیست اضافه می‌کردیم، نودی می‌شد که مثل بقیه اندازه گرفته می‌شود و به هیچ جا وصل نمی‌شود.

اگر به‌جای آدرس، خودِ فایل را دارید، در پنجرهٔ ویرایش همان ساب کادر Or a file هست با دکمهٔ Browse…. فایل را انتخاب می‌کنید، آدرس را خالی می‌گذارید، و از آن به بعد همان فایل هر بار خوانده می‌شود. مسیرش دقیقاً همان مسیر یک ساب دانلودشده است، پس یک کانفیگ JSON اینجا همان نودهایی را می‌دهد که اگر روی یک آدرس منتشر شده بود می‌داد.

Nodes added manually. کانفیگ خودتان را اینجا بگذارید — vless، vmess، trojan، ss، socks، hysteria2، tuic یا wireguard. اگر کادر Name را خالی بگذارید، اسمی که بعد از # در خود کانفیگ نوشته شده برداشته می‌شود، حتی اگر فارسی باشد.

وایرگارد. لینک wireguard:// خوانده می‌شود، و از نسخهٔ ۱.۰.۱ خودِ فایل .conf وایرگارد هم — همان چیزی که سرویس‌دهنده به شما می‌دهد، با [Interface] و [Peer]. لازم نیست فایل را باز کنید و متنش را کپی کنید: در پنجرهٔ ویرایش هر نود دکمهٔ Browse… هست، فایل را انتخاب می‌کنید و محتوایش خودش داخل کادر می‌آید. فایل هیچ‌جا آپلود نمی‌شود؛ مرورگر خودتان آن را می‌خواند. PrivateKey، Address، MTU، Reserved، PublicKey، PresharedKey، Endpoint و PersistentKeepalive خوانده می‌شوند. AllowedIPs و DNS عمداً نادیده گرفته می‌شوند، چون تصمیم دربارهٔ مسیریابی و حل نام با تنظیمات خود Passwall+ است.

سه ستون تست. در همین جدول، جلوی هر نودی که دستی اضافه کرده‌اید سه ستون هست: Ping، TCPing و URL Test. هر خانه کلمهٔ Test را نشان می‌دهد؛ روی آن کلیک کنید، عدد همان تست چند ثانیه بعد جایش می‌نشیند:

ستون چه می‌پرسد چه نمی‌گوید
Ping رفت‌وبرگشت ICMP تا آن آدرس دربارهٔ خود سرور هیچ. سرور پشت CDN را لبه جواب می‌دهد و خیلی از سرورهای سالم اصلاً به پینگ جواب نمی‌دهند
TCPing یک هندشیک به همان پورتی که تونل استفاده می‌کند اینکه رمز و پروتکل درست است یا نه
URL Test یک درخواست وب کامل از داخل همان نود چیزی؛ این تنها تستی است که کارکردن نود را ثابت می‌کند. کندترین هم هست

یعنی جواب نداد و یعنی این تست روی این نود اجراشدنی نیست (مثلاً URL روی یک نود hysteria2، که Xray بلد نیست و برای یک دکمه ارزش بالا آوردن هستهٔ دوم را ندارد).

جدول پایین صفحه. هر نودی که روتر می‌شناسد، با چیزی که برایش اندازه گرفته شده:

  • TCPing — یک هندشیک TCP به نود. برای همه پر می‌شود.

  • URL Test — یک درخواست کامل از داخل نود. بیشتر این ستون عمداً خالی است، چون به‌محض پیدا شدن یک نود به‌قدر کافی سریع، اندازه‌گیری متوقف می‌شود.

    این دو دقیقاً همان دو تستی هستند که کنار هر نود دستی دکمه دارند؛ اینجا برای کل لیست یک‌جا انجام شده‌اند.

دکمهٔ Check every node ستون اول را برای همه پر می‌کند، بدون اینکه به تونلی که در حال کار است دست بزند.

پاک کردن نود. نودی که همین حالا تونل از آن استفاده می‌کند پاک نمی‌شود و برنامه می‌گوید چرا — اول قطع یا انتخاب دوباره را بزنید. نودی هم که پاک می‌کنید بلافاصله از لیست پایین می‌رود؛ لازم نیست تا خواندن بعدی ساب‌ها صبر کنید.

Settings — تنظیمات

مهم‌ترین‌هایش:

Send Iranian traffic direct. سایت‌ها و آدرس‌های ایرانی از تونل رد نمی‌شوند. دو فایل دیتا لازم دارد که با دکمه‌های Update در بخش Routing data گرفته می‌شوند. جلوی هر فایل، حجمش و تاریخ آخرین به‌روزرسانی نوشته شده؛ هر بار که Update را بزنید و دانلود موفق باشد، همان تاریخ به‌روز می‌شود. برای فایلی که از راه دیگری روی روتر آمده و تاریخ ثبت‌شده ندارد، تاریخ نوشته‌شدن خود فایل نشان داده می‌شود.

دربارهٔ حجم. فایل کامل geoip.dat حدود ۱۷ و geosite.dat حدود ۸ مگابایت است — بیشتر از فضای خالی خیلی از روترها. همان پروژه geoip-lite.dat (۳۸ کیلوبایت) و geosite-lite.dat (۲ مگابایت) را هم منتشر می‌کند که دسته‌های ایران را دارند و چیز دیگری ندارند؛ اگر کامل‌ها جا نمی‌شوند آدرس آن‌ها را در همان کادرها بگذارید. در هر حال فضای خالی اول چک می‌شود و دانلودی که جا نشود رد می‌شود، نه اینکه نصفه نوشته شود: پر شدن اورلی روتر آن را read-only می‌کند و از آن لحظه هیچ چیزی کار نمی‌کند.

Cores. اگر نودی دارید که hysteria2 یا tuic حرف می‌زند — که Xray بلد نیست — اینجا sing-box یا hysteria را نصب کنید. آن هسته فقط برای همان یک نود به عنوان کمکی محلی اجرا می‌شود و بقیهٔ چیزها عوض نمی‌شوند. نسخهٔ منتشرشدهٔ هر کدام کنار نسخهٔ نصب‌شده نشان داده می‌شود و دکمه می‌گوید Update to ….

Language. انگلیسی یا فارسی. بعد از Save یک بار صفحه را رفرش کنید.

Log — لاگ

چند صد خط آخری که برنامه در لاگ سیستم نوشته، تازه‌ترین در پایین، و هر پنج ثانیه تازه می‌شود. همان چیزی که با logread -e passwall-plus می‌دیدید، بدون اینکه لازم باشد SSH بزنید. وقتی تونل بالا نمی‌آید، جوابِ «چرا» تقریباً همیشه همین‌جاست: کدام نود انتخاب شد، هسته چه چیزی را رد کرد، قوانین فایروال رفتند یا نه.

خود خط‌های لاگ هیچ‌وقت ترجمه نمی‌شوند — لاگ خودِ روتر است و انگلیسی می‌ماند.


۵. نود چطور انتخاب می‌شود

دانستنش لازم نیست، ولی اگر کنجکاوید: انتخاب در دو مرحله انجام می‌شود و برای همین چند ثانیه طول می‌کشد نه نیم دقیقه.

۱. یک هندشیک TCP به همهٔ نودها، سی‌تا سی‌تا. روی یک لیست معمولی حدود هشت ثانیه طول می‌کشد و یک‌سوم تا نصف نودها را قبل از هر کار سنگینی کنار می‌گذارد. نودی که هندشیک را کامل نکند هیچ چیزی را نمی‌تواند حمل کند. ۲. بازمانده‌ها، نزدیک‌ترین اول، ده‌تا ده‌تا — این بار یک درخواست وب کامل از داخل هر کدام. به‌محض اینکه یکی زیر یک ثانیه جواب داد همان انتخاب می‌شود و بقیه اصلاً اجرا نمی‌شوند.

نتیجه‌ها نگه داشته می‌شوند، پس وقتی نود انتخاب‌شده بعداً از کار افتاد روتر سراغ نفر بعدی لیست می‌رود، نه اینکه از اول شروع کند.

چرا هندشیک و نه پینگ. بیشتر این نودها پشت Cloudflare هستند و پینگ را لبهٔ CDN جواب می‌دهد — یعنی دربارهٔ خود سرور هیچ چیزی نمی‌گوید. خیلی از نودهای سالم هم اصلاً به پینگ جواب نمی‌دهند. پس پینگ هم نود خراب را نگه می‌دارد و هم نود سالم را دور می‌ریزد. اگر باز هم پینگ می‌خواهید، در تنظیمات زیر First pass هست.


۶. همهٔ تنظیمات

آن‌هایی که ارزش عوض کردن دارند روی صفحه‌اند. بقیه در /etc/config/passwall-plus هستند، که یک فایل معمولی UCI است. نام داخل بک‌تیک، نام گزینه در آن فایل است.

Routing

تنظیم پیش‌فرض چه کار می‌کند
Send Iranian traffic direct route_ir خاموش ترافیک ایران از تونل رد نمی‌شود. تا وقتی دیتای مسیریابی دانلود نشده عمداً هیچ کاری نمی‌کند
Geoip source geoip_url Chocolate4U لیست آدرس‌های ایران از کجا گرفته شود. قابل ویرایش، برای وقتی که فایل -lite می‌خواهید
Geosite source geosite_url Chocolate4U همان، برای نام‌ها
Iranian DNS ir_dns هیچ‌کدام در حالت تفکیک، برای دامنه‌های ایرانی استفاده می‌شود تا ترافیک CDN داخل کشور بماند. خالی گذاشتنش هم یک جواب درست است: تفکیک بدون آن هم کار می‌کند و هیچ سرور ایرانی نمی‌بیند شما چه دامنه‌هایی را می‌پرسید
Block advertising block_ads خاموش دامنه‌های تبلیغات و ردیابی را می‌بندد، برای همهٔ دستگاه‌های شبکه. لیست جداگانه‌ای دانلود نمی‌شود: نام‌ها از دستهٔ category-ads-all داخل همان geosite.dat می‌آیند
Block BitTorrent block_torrent روشن تورنت روی نود رایگان، همان چیزی است که نود رایگان را از بین می‌برد

Network

تنظیم پیش‌فرض چه کار می‌کند
Name lookups dns_mode از راه dnsmasq dnsmasq یعنی ریزالور خود روتر جواب می‌دهد و فقط upstream آن وارد تونل می‌شود، پس نام دستگاه‌های شبکهٔ خودتان و پرینتر سر جایشان می‌مانند. direct هر پرسش را مستقیم داخل تونل می‌فرستد و نام‌های داخلی را از دست می‌دهید
Force DNS through the router dns_hijack روشن بعضی دستگاه‌ها روتر را نادیده می‌گیرند و خودشان مستقیم از 8.8.8.8 یا 1.1.1.1 می‌پرسند. آن پرسش بدون تونل بیرون می‌رود، پس جوابش هر چیزی است که فیلترچی بخواهد و دستگاه به همان وصل می‌شود — بدون اینکه ظاهراً چیزی خراب باشد. این گزینه آن پرسش‌ها را به زور به روتر برمی‌گرداند
IPv6 ipv6 رد شود تقریباً هیچ نود رایگانی IPv6 ندارد، و کلاینتی که IPv6 را ترجیح می‌دهد بدون تونل بیرون می‌رود — آن هم بدون اینکه چیزی خراب به نظر برسد. رد کردنش کلاینت را به IPv4 برمی‌گرداند
Refuse QUIC block_quic خاموش UDP/443 را قبل از تونل می‌اندازد تا مرورگر به TCP برگردد. فقط وقتی روشنش کنید که نودتان UDP را بد حمل کند
Firewall firewall_backend خودکار nftables یا iptables. خودکار درست است مگر روتر هر دو را داشته باشد
Interfaces to tunnel lan_zone همه از خود روتر خوانده می‌شود. خالی یعنی همهٔ اینترفیس‌های LAN
Reconnect after a reboot autostart خاموش تونل بعد از ریبوت یا قطع برق خودش برمی‌گردد

Choosing a node

تنظیم پیش‌فرض چه کار می‌کند
Nodes to use sources مالِ من و ساب‌ها کدام منبع‌ها اجازهٔ ورود دارند
First pass prefilter هندشیک TCP چطور تصمیم گرفته شود یک نود ارزش اندازه‌گیری کامل را دارد
Good enough (ms) good_ms ۱۰۰۰ اولین نودی که سریع‌تر از این باشد انتخاب می‌شود. کمترش یعنی نود بهتر و انتظار بیشتر
Measured at a time batch_size ۱۰ چند نود هم‌زمان کامل اندازه گرفته شوند
Batches at most max_batches ۵ وقتی هیچ‌کدام کافی نیست، تا کجای لیست ادامه بدهد
Checked at once sift_parallel ۳۰ چند هندشیک هم‌زمان. روی روتر ضعیف این را کم کنید

Traffic

تنظیم پیش‌فرض چه کار می‌کند
Every (Min) stats_flush_minutes ۵ جمع‌ها هر پنج دقیقه در رم اضافه می‌شوند؛ این می‌گوید هر چند دقیقه روی فلش نوشته شوند. یعنی با قطع برق روتر حداکثر همین‌قدر از دست می‌رود

فقط در فایل

این‌ها روی صفحه نیستند، چون عوض کردنشان نادر است و اشتباه کردنشان بی‌صدا.

گزینه پیش‌فرض چه کار می‌کند
tproxy_port dns_port api_port bridge_port ۱۰۸۲، ۱۰۵۳، ۱۰۸۵۳، ۱۰۸۰۸ پورت‌هایی که تونل و ریزالور و رابط آمار و کمکی روی آن گوش می‌دهند
sift_timeout ۲ ثانیه به هر هندشیک چقدر فرصت داده شود
test_timeout ۶ ثانیه به هر درخواست کامل چقدر فرصت داده شود
test_url gstatic.com/generate_204 برای اندازه‌گیری چه چیزی گرفته شود
fresh_seconds ۳۶۰۰ ثانیه اندازه‌گیری جوان‌تر از این دوباره گرفته نمی‌شود
max_nodes ۳۰۰ سقف تعداد کانفیگ در یک دور
geo_dir /etc/passwall-plus/geo دیتای مسیریابی کجا بماند. اگر برنامهٔ دیگری همین فایل‌ها را در /usr/share/xray داشته باشد از همان استفاده می‌شود
remote_dns 1.1.1.1 ریزالوری که از داخل تونل برای هر چیز غیرایرانی استفاده می‌شود
core_dir /usr/libexec/passwall-plus هسته‌های دانلودشده کجا بمانند. روی روتر کم‌فلش به USB اشاره بدهید
core_xray خالی یک Xray مشخص را اجبار می‌کند
loglevel warning هسته چه چیزی در لاگ بنویسد. debug خیلی زیاد است

ساب‌ها و کانفیگ‌های دستی هم بخش‌های UCI در همین فایل‌اند. هر کاری که صفحهٔ Nodes می‌کند با ویرایش آن فایل هم می‌شود، و برعکس.

اگر از نسخهٔ ۱.۰.۰ به‌روزرسانی می‌کنید: گزینهٔ قدیمی stats_flush_seconds دیگر خوانده نمی‌شود و جایش را stats_flush_minutes با پیش‌فرض ۵ گرفته است. کاری لازم نیست بکنید؛ اگر عدد خاصی می‌خواهید، آن را به دقیقه بنویسید.


۷. اگر کار نکرد

می‌نویسد هیچ لیستی از نود ندارید. یعنی نه سابی خوانده شده و نه کانفیگ دستی دارید. آدرس ساب را در صفحهٔ Nodes چک کنید، یا — که مطمئن‌تر است — یک کانفیگ خودتان را دستی بگذارید. روی اتصال فیلترشده آدرس ساب معمولاً باز نمی‌شود تا وقتی تونل بالا بیاید، و تونل هم بدون یک نود بالا نمی‌آید؛ یک کانفیگ دستی این حلقه را می‌شکند.

می‌گوید نودها جواب دادند ولی هیچ‌کدام درخواست را کامل نکردند. یعنی نودها هستند و چیزی بین شما و آن‌ها جلوی ترافیک را گرفته. Choose again را بزنید، و اگر باز هم همین بود لیست را عوض کنید.

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

وصل می‌شود ولی سایتی باز نمی‌شود. اول در صفحهٔ Status ببینید واقعاً Connected نوشته یا نه. اگر بله:

  • اگر PassWall2 هم روشن است خاموشش کنید.
  • Refuse QUIC را در تنظیمات روشن کنید. بعضی نودها UDP را بد حمل می‌کنند و مرورگر روی QUIC گیر می‌کند.
  • Choose again را بزنید تا نود دیگری انتخاب شود.

بعضی سایت‌ها باز می‌شوند و بعضی نه. معمولاً مسئلهٔ حل نام است. چک کنید Settings ← Name lookups روی Through dnsmasq باشد.

اسم دستگاه‌های شبکهٔ خودم دیگر حل نمی‌شود. دقیقاً همان چیزی است که Through dnsmasq جلویش را می‌گیرد؛ حالت Straight into the tunnel این ایراد را ذاتاً دارد.

تفکیک ایران را روشن کردم و انگار کاری نمی‌کند. اگر فایل‌ها دانلود نشده باشند، صفحهٔ وضعیت می‌نویسد Iran split is on, but the routing data is missing و تا آن موقع همه چیز از تونل می‌رود. اگر روی روتر شما فایل geo از برنامهٔ دیگری مانده باشد و دسته‌های ایران را نداشته باشد، Passwall+ خودش تونل را بدون تفکیک بالا می‌آورد و همان بالای صفحه می‌گوید چه شد.

عدد ترافیک صفر مانده. یعنی هسته آمار نمی‌دهد. لاگ را ببینید.

آن کادر زرد بالای صفحه چه چیزهایی می‌تواند بگوید

کادر پیام در صفحهٔ Status فقط برای چیزهایی است که شما باید کاری برایشان بکنید. با ضربدر گوشه‌اش بسته می‌شود، و دفعهٔ بعد که همان مشکل پیش بیاید دوباره می‌آید. پیام‌های «انجام شد» — مثل hysteria نصب شد — از نسخهٔ ۱.۰.۱ دیگر اینجا نمی‌آیند؛ همان جایی که دکمه را زده‌اید یک اعلان کوتاه نشان داده می‌شود و تمام.

فهرست کامل چیزهایی که ممکن است اینجا بخوانید:

پیام (خلاصه) یعنی چه کار کنید
PassWall2 هم دارد ترافیک را منحرف می‌کند دو پروکسی ترنسپرنت روی یک روتر یکی را خاموش کنید
دیتای مسیریابی این روتر آن جفتی نیست که انتظار می‌رود فایل geo از برنامهٔ دیگری مانده و دستهٔ ایران را ندارد. تونل بدون تفکیک بالا آمده در Settings کنار Routing data دکمهٔ Update را بزنید
Iran routing روشن است ولی geoip/geosite روی روتر نیست تفکیک روشن است و فایل‌ها دانلود نشده‌اند همان دکمهٔ Update
فایل دانلودشده دیتای مسیریابی خواندنی نیست آدرس اشتباه است یا یک صفحهٔ خطا برگشته. فایل قبلی دست‌نخورده مانده آدرس را در Settings چک کنید
جا نیست در … فضای خالی روتر برای این دانلود کافی نیست فایل‌های -lite را استفاده کنید، یا فضا خالی کنید
دانلود ناموفق / ناقص به نظر می‌رسد آدرس در دسترس نبود یا نصفه آمد اتصال را چک کنید و دوباره بزنید
هسته برای پردازندهٔ این روتر بیلدی منتشر نمی‌کند معماری روتر در ریلیزهای آن پروژه نیست آن هسته روی این روتر نصب‌شدنی نیست
برنامهٔ دانلودشده روی این روتر اجرا نمی‌شود فایل رسید ولی برای این پردازنده نیست یا خراب است دوباره امتحان کنید
unzip لازم است و نیست ابزار باز کردن آرشیو نصب نیست در Settings دکمهٔ Install them
نمی‌شود به GitHub رسید تا نسخهٔ جاری معلوم شود برای این کار خودِ اتصال لازم است اول تونل را وصل کنید، بعد دوباره
این روتر نه opkg دارد نه apk نصب خودکار ممکن نیست دستی نصب کنید
این‌ها نصب نشدند: … اسم پکیج روی این بیلد OpenWrt فرق دارد دستی نصب کنید
این کرنل با nftables/iptables پروکسی شفاف بلد نیست ماژول tproxy نیست kmod-nft-tproxy (یا iptables-mod-tproxy) را نصب کنید — دکمهٔ Install them همین کار را می‌کند
این روتر نه nftables دارد نه iptables فایروالی نیست که ترافیک را منحرف کند ایمیج روتر ناقص است
دایرکتوری تنظیمات اضافهٔ dnsmasq پیدا نشد نام‌ها مستقیم داخل تونل حل می‌شوند و نام دستگاه‌های داخلی حل نمی‌شود معمولاً کاری لازم نیست
هیچ نودی در لیست جواب نداد لیست کهنه است یا اتصال شما همه را بسته لیست را تازه کنید یا یک کانفیگ دستی بگذارید
… جواب دادند ولی هیچ‌کدام درخواست را کامل نکرد نودها هستند، ترافیک عبور نمی‌کند Choose again، یا لیست دیگری
هیچ چیزی در لیست به‌عنوان نود خوانده نشد فرمت ساب شناخته نشد آدرس ساب را چک کنید
اصلاً لیست نودی وجود ندارد نه سابی خوانده شده نه کانفیگ دستی هست در صفحهٔ Nodes یک کانفیگ دستی بگذارید
نود انتخاب‌شده hysteria2/tuic حرف می‌زند که Xray بلد نیست به هستهٔ کمکی نیاز است در Settings بخش Cores، sing-box یا hysteria را نصب کنید
کمکیِ پروتکل این نود بالا نیامد هستهٔ کمکی اجرا نشد لاگ را ببینید یا نود دیگری بردارید
پروسس تونل بالا آمد ولی اتصالی نپذیرفت هسته اجرا شد و روی پورت گوش نداد logread -e passwall-plus بگیرید

می‌خواهم ببینم پشت پرده چه می‌گذرد:

logread -e passwall-plus
/usr/libexec/pwplus-rules status

دومی می‌گوید قوانین فایروال واقعاً لود شده‌اند یا نه، و چقدر ترافیک گرفته‌اند.

پشتیبانی و تماس: t.me/routekernel1


۸. حذف

/etc/init.d/passwall-plus stop
apk del luci-app-passwall-plus passwall-plus

روی ۲۴.۱۰ و ۲۳.۰۵ به‌جای apk del بنویسید opkg remove.

این کار سرویس و هسته و صفحهٔ وب را برمی‌دارد و کارهای زمان‌بندی‌شده را هم از crontab روتر پاک می‌کند. تنظیمات شما عمداً می‌مانند. اگر آن‌ها را هم می‌خواهید پاک کنید — شامل دیتای مسیریابی و تاریخچهٔ ترافیک:

rm -rf /etc/config/passwall-plus /etc/passwall-plus

به هیچ چیز دیگری دست زده نمی‌شود: نه zone فایروال، نه تنظیمات پکیج دیگری. قوانین مسیریابی فقط تا وقتی وجود دارند که تونل بالا باشد.


اگر می‌خواهید دقیق‌تر بدانید چه چیزهایی بررسی شده، چه چیزی خراب بوده و چطور تأیید شده — و چه چیزی هنوز تست ندارد — AUDIT.md را ببینید.


۹. لایسنس

GPL-3.0-only. هستهٔ Xray زیر لایسنس MPL-2.0 نویسندگان خودش است.


۱۰. تشکر

لیست پیش‌فرض نودها مجموعهٔ TOP 100 است که @Raydikalx منتشر می‌کند و به‌صورت رایگان و عمومی جمع‌آوری و به‌روز نگه می‌دارد. دیتای مسیریابی ایران از Chocolate4U/Iran-v2ray-rules است. این پروژه حتی یک نود هم از خودش ندارد: چیزی را که آن لیست‌ها ارائه می‌دهند اندازه می‌گیرد و سریع‌ترین را از جایی که شما هستید انتخاب می‌کند. بدون آن‌ها اینجا چیزی برای اندازه‌گیری نبود. ممنون.