-
Notifications
You must be signed in to change notification settings - Fork 6
Installation.fa
پردازنده و رم: حداقل رم، تعداد هسته و سرعت پردازندهٔ موردنیاز کاسپین هنوز با اندازهگیری مشخص نشده است. مصرف منابع به حجم ترافیک، پروتکل پراکسی و تعداد اتصالهای همزمان بستگی دارد. برای اعلام حداقل نیازمندیها، باید مصرف منابع در حالت بیکار و زیر بار اندازهگیری شود.
باینریهای انتشار لینوکس برای معماریهای x86-64، ARM64 و ARMv6/ARMv7 ساخته میشوند. سازگاری معماری بهتنهایی نشان نمیدهد که کارایی کافی خواهد بود.
این راهنما از README موجود منتقل شده است. تاریخ اندازهگیریها همان تاریخ اصلی است؛ این جابهجایی گزارش اجرای تازهٔ آزمونها نیست. English | فارسی | Русский | 中文
برنامهٔ نصب همهٔ چیزهای لازم را نصب میکند. به PowerShell، Go یا .NET SDK نیاز ندارید.
- یک کامپیوتر با Windows 10 نسخهٔ 2004 (بیلد 19041) یا جدیدتر، یا Windows 11، روی x64 یا ARM64.
- یک حساب مدیر روی همان کامپیوتر.
- یک آداپتور وایفای که Windows Mobile Hotspot را پشتیبانی کند.
- اتصال اینترنت.
- یک لینک یا پیکربندی پروکسی که Caspian پشتیبانی کند.
بیشتر کامپیوترهای Intel و AMD از این فایل استفاده میکنند:
CaspianSetup-0.2.1-windows-x64.exe
کامپیوترهای Windows با پردازندهٔ Snapdragon یا ARM از این فایل استفاده میکنند:
CaspianSetup-0.2.1-windows-arm64.exe
اگر نوع کامپیوتر را نمیدانید، Settings را باز کنید. System و سپس About را انتخاب کنید. نوع دستگاه در بخش System type نوشته شده است.
- صفحهٔ انتشار Caspian را باز کنید.
- بخش Assets آخرین نسخه را باز کنید.
- فایل مناسب Windows را دانلود کنید.
- روی فایل دانلودشده دو بار کلیک کنید.
- اگر SmartScreen باز شد، More info را انتخاب کنید.
- مطمئن شوید نام فایل در هشدار همان نام فایل دانلودشده است.
- Run anyway را انتخاب کنید.
- وقتی Windows اجازهٔ مدیر میخواهد، Yes را انتخاب کنید.
- صفحهٔ مجوز را بخوانید و ادامه دهید.
- یک رمز برای پنل وب Caspian انتخاب کنید.
- همان رمز را دوباره وارد کنید.
- این رمز را در جای امن نگه دارید.
نصبکننده دو انتخاب اختیاری نیز نشان میدهد:
- ساخت میانبر روی دسکتاپ.
- اجرای Caspian Control هنگام ورود به Windows.
هر دو انتخاب بهطور پیشفرض خاموشاند. نصبکننده همیشه میانبر Caspian Control را در منوی Start میسازد. در پایان، Open Caspian Control را روشن بگذارید و Finish را انتخاب کنید.
Windows تا زمانی که فایل گواهی امضای کد ندارد، هشدار Unknown publisher را نشان میدهد. فقط فایل صفحهٔ رسمی انتشار Caspian را اجرا کنید.

Caspian در Windows دو صفحهٔ جدا دارد:
| صفحه | کجا باز میشود | چه کاری انجام میدهد |
|---|---|---|
| Caspian Control | برنامهٔ کوچک Windows و آیکون کنار ساعت | سرویسهای پسزمینهٔ Caspian را شروع، متوقف یا دوباره راهاندازی میکند |
| پنل وب Caspian | مرورگر در http://127.0.0.1:8088/
|
نام و رمز وایفای، باند و اتصال پروکسی را تنظیم میکند |
ابتدا از Caspian Control استفاده کنید. وقتی Ready ظاهر شد، Open panel را انتخاب کنید. پنل وب صفحهٔ دوم است. هاتاسپات و تونل را در این صفحه راهاندازی میکنید.
وضعیت Ready در Caspian Control فقط یعنی دو سرویس پسزمینه پاسخ میدهند. این وضعیت به معنی اتصال تونل نیست. وقتی هاتاسپات و تونل آمادهاند، پنل وب سبز میشود.
- Caspian Control را از منوی Start یا دسکتاپ باز کنید.
- وقتی Windows اجازهٔ مدیر میخواهد، Yes را انتخاب کنید.
- Start all را انتخاب کنید.
- صبر کنید تا کارت بزرگ Ready را نشان دهد.
- Open panel را انتخاب کنید.
- رمزی را وارد کنید که هنگام نصب انتخاب کردید.
- Sign in را انتخاب کنید.
- یک نام برای شبکهٔ وایفای جدید وارد کنید.
- یک رمز وایفای با دستکم هشت نویسه وارد کنید.
- برای دستگاههای قدیمی، 2.4 GHz را نگه دارید.
- لینک یا پیکربندی پروکسی را پیست کنید.
- کلید شروع Caspian را روشن کنید.
- صبر کنید تا وضعیت پنل وب سبز شود.
- تلفن یا دستگاه دیگر را به شبکهٔ وایفای جدید وصل کنید.
- یک وبسایت را روی همان دستگاه باز کنید و اتصال را آزمایش کنید.
پنل دستگاههای متصل را نشان میدهد. Windows به آنها نشانیهایی از
192.168.137.0/24 میدهد. Caspian ترافیک اینترنت آنها را از تونل xray0
میفرستد.
رمز پنل و رمز وایفای دو رمز جدا هستند. رمز پنل، پنل وب را باز میکند. رمز وایفای، تلفن و دستگاههای دیگر را به شبکه وصل میکند.
| دکمه | نتیجه |
|---|---|
| Start all | هر دو سرویس Caspian را شروع میکند |
| Stop all | هر دو سرویس را متوقف نگه میدارد |
| Restart all | هر دو سرویس را متوقف و دوباره شروع میکند |
| Open panel | پنل وب Caspian را در مرورگر باز میکند |
بعد از بستن پنجره، برنامه کنار ساعت Windows میماند. برای باز کردن دوباره، روی آیکون Caspian دو بار کلیک کنید.
Windows هنگام توقف یا شروع دوبارهٔ هاتاسپات، دستگاهها را قطع میکند. صبر کنید تا پنل وب سبز شود، سپس دستگاهها را دوباره وصل کنید.
اگر Caspian Control وضعیت Ready دارد ولی پنل وب قرمز است، پیام پنل وب را بخوانید. پنل وب هاتاسپات و تونل پروکسی را آزمایش میکند.
روش PowerShell فقط برای توسعهدهندگان است. ابتدا Go، .NET 9 SDK و Git for Windows را نصب کنید. سپس PowerShell را با دسترسی مدیر باز کنید و این فرمان را اجرا کنید:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\Users\YOUR-NAME\Documents\caspian\packaging\windows\install.ps1" -NoOpen
گزینهٔ -NoOpen از باز شدن خودکار پنل جلوگیری میکند. برنامههای Windows از
.NET runtime and Windows Forms و
System.ServiceProcess.ServiceController استفاده میکنند. مجوزها و اعلانهای
.NET در third_party/dotnet/ قرار دارند. مجوز Wintun در
third_party/wintun/PREBUILT-BINARIES-LICENSE.txt قرار دارد و نسخهٔ اصلی آن از
وبسایت Wintun دریافت میشود.
سرویس caspian-panel پنل وب را اجرا میکند. فایل caspian.exe تونل را میسازد.
فایل caspian-tethering.exe هاتاسپات Windows را کنترل میکند. برنامهٔ
CaspianControl.exe سرویسها را کنترل میکند و wintun.dll رابط تونل را فراهم
میکند.
فایل DMG برنامهٔ بومی Caspian Control و موتور Caspian را در خودش دارد. به Terminal، Go، Homebrew یا runtime دیگری نیاز ندارید. به یک حساب مدیر نیاز دارید و اگر وایفای داخلی قرار است هاتاسپات باشد، اینترنت باید از Ethernet سیمی وارد Mac شود.
- Macهای Intel از
Caspian-v0.2.4-macos-amd64.dmgاستفاده میکنند. - Macهای Apple Silicon، یعنی M1 و جدیدتر، از
Caspian-v0.2.4-macos-arm64.dmgاستفاده میکنند.
اگر نوع پردازنده را نمیدانید، Apple menu → About This Mac را باز کنید.
برنامهٔ نسخهٔ v0.2.4 امضای ad-hoc دارد، اما هنوز با Apple Developer ID امضا و توسط Apple notarize نشده است. به همین دلیل Gatekeeper پیام “Caspian” Not Opened را نشان میدهد و میگوید Apple نتوانسته بیضرر بودن برنامه را تأیید کند. این پیام به معنی crash کردن برنامه نیست. فقط برای فایلی که از صفحهٔ رسمی انتشار Caspian گرفتهاید این محدودیت را بردارید.
- آخرین انتشار Caspian را باز و بخش Assets را باز کنید.
- DMG مناسب پردازندهٔ Mac را دانلود و باز کنید.
-
Caspian.appرا داخل پوشهٔ Applications بکشید. - نسخهای را که در Applications است یک بار باز کنید.
- وقتی Gatekeeper آن را مسدود کرد، Done را بزنید.
- مسیر Apple menu → System Settings → Privacy & Security را باز کنید.
- تا بخش Security پایین بروید و کنار Caspian روی Open Anyway بزنید. این دکمه پس از تلاش ناموفق برای باز کردن برنامه حدود یک ساعت نمایش داده میشود.
- رمز ورود Mac را وارد کنید، OK را بزنید و سپس Open را تأیید کنید.
macOS این برنامه را بهعنوان یک استثنا نگه میدارد و دفعات بعد با دوبار کلیک عادی باز میشود. همین فرایند در راهنمای رسمی Apple با عنوان باز کردن برنامه با تغییر تنظیم امنیتی توضیح داده شده است.
فایل اجرایی نصبشدهٔ سرویس پسزمینه، /usr/local/bin/caspian، ممکن است پس از
تأیید Caspian.app همچنان ویژگی قرنطینه را داشته باشد. در این حالت هشدار نام
caspian را با حروف کوچک نشان میدهد و پنجرهٔ کنترل ممکن است پیام
Caspian needs attention را نمایش دهد.
اگر هشدار نام تروجان را ذکر میکند یا از شناسایی بدافزار خبر میدهد، دستور زیر را اجرا نکنید. نصب را متوقف کنید و متن دقیق هشدار، نام تهدید شناساییشده، نسخهٔ انتشار و نشانی دانلود را در یک گزارش GitHub بنویسید. شناسایی بدافزار به بررسی نیاز دارد؛ نداشتن امضای معتبر بهتنهایی ثابت نمیکند که تشخیص اشتباه است. به توضیح Apple دربارهٔ هشدارهای امنیتی macOS مراجعه کنید.
فقط برای هشدار تأیید نشدن توسعهدهنده یا notarize نشدن برنامه، و پس از اطمینان
به فایل و منبع آن، از این روش جایگزین استفاده کنید. فایل انتشار را از صفحهٔ
رسمی انتشار Caspian بگیرید و چکسام DMG را با SHA256SUMS همان انتشار مقایسه
کنید. تطابق چکسام، یکسان بودن فایل با فایل انتشار را تأیید میکند، نه ایمن بودن آن را.
-
Terminal را باز کنید.
-
ویژگی قرنطینه را از فایل اجرایی نصبشدهٔ سرویس پسزمینه بردارید:
sudo xattr -d com.apple.quarantine /usr/local/bin/caspian
-
رمز ورود Mac را وارد کنید. Terminal هنگام تایپ، رمز را نمایش نمیدهد.
-
در Caspian، Advanced options → Restart services را انتخاب کنید.
این دستور فقط ویژگی قرنطینهٔ فایل مشخصشده را حذف میکند. فایل اجرایی را
اسکن، امضا یا notarize نمیکند. اگر Terminal پیام No such xattr را نشان داد،
این ویژگی از قبل وجود ندارد. اگر سرویس همچنان اجرا نمیشود، خطا را گزارش کنید
و سایر کنترلهای امنیتی را غیرفعال نکنید.
- Caspian Control را اجرا کنید. برنامه پیش از بررسی پنل، سرویس پسزمینهٔ داخل خودش را با نسخهٔ نصبشده مقایسه میکند.
- در نخستین اجرا، یا وقتی DMG بهروزرسانی دارد، نصب خودکار آغاز میشود. در پنجرهٔ اجازهٔ macOS رمز مدیر را وارد کنید. اگر نسخهٔ نصبشده همان نسخهٔ داخل برنامه باشد، دیگر رمزی درخواست نمیشود.
- صبر کنید تا پنجرهٔ کنترل عبارت Caspian is ready را نشان دهد. اگر اجازه را لغو کردید، دکمهٔ Set up Caspian یا Update Caspian برای تلاش دوباره باقی میماند.
- در نصب نخست، first-run panel password نشاندادهشده در خروجی را در جایی امن نگه دارید. دکمهٔ Copy panel password فقط همان رمز را کپی میکند.
- Open panel را بزنید و با رمز پنلی که نگه داشتید وارد شوید.
- نام و رمز وایفای را وارد کنید، کانفیگ پروکسی را پیست کنید و کلید پنل را برای شروع Caspian بزنید.
رمز ورود Mac، رمز پنل Caspian و رمز وایفای سه رمز جدا هستند. اگر رمز پنل را گم کردید، از Reset password در Caspian Control استفاده کنید؛ این کار به اجازهٔ مدیر نیاز دارد اما کانفیگ پروکسی و تنظیمات هاتاسپات را نگه میدارد. بستن پنجرهٔ کنترل، آیکون آن را در نوار بالای macOS فعال نگه میدارد؛ برای باز کردن دوباره، از همان منو Open Caspian Control را انتخاب کنید.
دو راه. اولی برای کسی است که میخواهد آن را اجرا کند، دومی برای کسی که میخواهد اول وارسیاش کند.
sudo /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Iman/caspian/main/install.sh)"
نصبکننده تشخیص میدهد روی چه دستگاهی است، فایل اجراییِ متناظر را از آخرین انتشار میگیرد، و اگر آنچه دانلود شد با چکسامِ منتشرشده نخواند، کار را رد میکند.
uname -m |
فایل | دستگاهِ معمول |
|---|---|---|
x86_64 |
caspian-linux-amd64 |
یک لپتاپ یا یک مینیپیسی |
aarch64 |
caspian-linux-arm64 |
Raspberry Pi 3، 4، 5 روی سیستم 64 بیتی |
armv7l |
caspian-linux-arm |
Raspberry Pi 2 و 3 روی سیستم 32 بیتی |
armv6l |
caspian-linux-arm |
Raspberry Pi 1، Zero، Zero W |
وقتی مطمئن نیست حدس نمیزند، بلکه رد میکند. لینوکس نبودن، معماریای که در آن
جدول نیست، نبودِ systemd، یا چکسامی که نمیخواند: هر کدام یک ردکردن است که
میگوید چه دیده. armv8l، یعنی فضای کاربریِ 32 بیتی روی هستهٔ 64 بیتی، عمداً
به هیچ فایلی نگاشت نشده است، چون حدس زدن در همانجا بود که یک پروژهٔ قبلی کدِ
ARMv7 را روی دستگاههای ARMv6 فرستاد و آنها در نخستین اجرا با دستورالعمل
غیرمجاز مردند.
اسکریپت را پیش از آنکه به یک shell بدهید بخوانید. برای نرمافزاری از این جنس، این توصیه تشریفات نیست، و اسکریپت طوری نوشته شده که خوانده شود.
curl -fsSL https://raw.githubusercontent.com/Iman/caspian/main/install.sh | less
برای سنجاق کردن یک نسخهٔ مشخص بهجای گرفتن آخرین نسخه:
sudo env CASPIAN_VERSION=v0.2.5 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Iman/caspian/main/install.sh)"
هر انتشار یک فایل SHA256SUMS همراه دارد. نصبکننده آن را برای شما بررسی
میکند، و شما هم میتوانید مستقل بررسی کنید:
curl -fsSLO https://github.com/Iman/caspian/releases/latest/download/caspian-linux-arm64
curl -fsSLO https://github.com/Iman/caspian/releases/latest/download/SHA256SUMS
sha256sum -c SHA256SUMS --ignore-missing
این چه چیزی را ثابت میکند و چه چیزی را نه: ثابت میکند فایلی که دارید همان
فایلی است که آن انتشار منتشر کرده. ثابت نمیکند چه کسی آن انتشار را ساخته است.
فایلهای اجرایی را GitHub Actions از یک کامیتِ تگخورده میسازد، و گردشکاری که
آنها را میسازد در همین مخزن است، در .github/workflows/release.yml. پس ساخت
خواندنی است، هرچند بهطور مستقل بازتولیدپذیر نیست.
هیچچیزِ راهِ خودکار اجباری نیست. ساخت از روی کد به Go 1.26 یا بالاتر نیاز دارد و فایل اجراییای میدهد که در عملکرد یکی است.
git clone https://github.com/Iman/caspian.git
cd caspian
go build -trimpath -o caspian ./cmd/caspian
sudo CASPIAN_LOCAL_BINARY="$PWD/caspian" bash install.sh
CASPIAN_LOCAL_BINARY به نصبکننده میگوید بهجای دانلود، از فایلی که همین حالا
ساختهاید استفاده کند. باقی کارهای نصبکننده، یعنی ساختن حساب سرویس و پوشهها و
یونیتها و دسترسیهایشان، به همان شکل انجام میشود.
کامپایل متقابل برای یک Pi از روی دستگاهی دیگر:
GOOS=linux GOARCH=arm64 go build -trimpath -o caspian-linux-arm64 ./cmd/caspian
GOOS=linux GOARCH=arm GOARM=6 go build -trimpath -o caspian-linux-arm ./cmd/caspian
GOARM=6 در ساخت 32 بیتی اختیاری نیست. دستگاههای armv6l و armv7l هر دو
همان فایل arm را نصب میکنند، پس یک ساختِ ARMv7 هر Pi 1 و Zero و Zero W ای را
که آن را نصب کند از کار میاندازد. گردشکارِ انتشار این را با readelf بررسی
میکند و بهجای منتشر کردن فایلی که دربارهٔ معماریِ خودش دروغ میگوید، شکست
میخورد.
پیش از آنکه به یک ساخت اعتماد کنید، دروازه را اجرا کنید:
bash scripts/gate.sh
این دروازه قالببندی، go vet، کل مجموعهٔ آزمون همراه با race detector، کف
پوششِ هر بسته، لایهٔ رگرسیونِ golden، یک پویش حریم خصوصی و یک زیرمجموعهٔ smoke را
اجرا میکند. در صورت شکست با کد غیرصفر بیرون میآید. آن را به هیچ لولهای ندهید:
یک لولهٔ shell وضعیتِ آخرین فرمانش را گزارش میکند، پس دادنش به tail همان
جوابی را که خواسته بودید دور میریزد.