نمونهٔ اولیهٔ اپلیکیشن SingLinkVPN اکنون متنباز است

Contents
امروز SingLinkLabs، تیمی که SingLinkVPN را میسازد، کد منبع نمونهٔ اولیهٔ نسل اول اپلیکیشن SingLinkVPN را با مجوز Apache-2.0 در GitHub منتشر کرد. این یک اپلیکیشن VPN به سبک محصولات مصرفی برای Windows، macOS، Android و iOS است که از یک کدبیس واحد و بر پایهٔ پروتکل SingLink، که تازه متنباز شده، ساخته شده است.
این اپلیکیشن همراه با خود پروتکل منتشر میشود — ببینید: پروتکل SingLink اکنون متنباز است. این دو در کنار هم نشان میدهند که یک پروتکل VPN باز و یک کلاینت کامل چگونه با هم جفت میشوند، از دکمهٔ اتصال تا بستههای رمزگذاریشده.
مخزن: SingLinkLabs / singlink-vpn-app · وضعیت: نمونهٔ اولیهٔ نسل اول · مجوز: Apache-2.0 · ساختهشده با: Flutter (Dart) برای رابط کاربری، Go برای هسته
این همان اپلیکیشنی نیست که از وبسایت ما دانلود میکنید
اپلیکیشنهای رسمی SingLinkVPN که از وبسایت ما دانلود میکنید و در فروشگاههای اپلیکیشن هستند محصولاتی جداگانهاند. آنها روی پروتکلهای عملیاتی ما، از جمله SingLink 2.0، کار میکنند و کد منبع اصلیشان بخشی از این انتشار نیست. برای کاربران فعلی هیچ چیز تغییر نمیکند.
این نمونهٔ اولیه یک کلاینت مرجع برای پروتکل باز SingLink است. فقط به سرورهایی وصل میشود که با همین پروتکل کار میکنند و ورود به حساب ندارد: سرورها را خودتان با چسباندن لینک سرور یا وارد کردن آن از کلیپبورد اضافه میکنید. در هیچ فروشگاه اپلیکیشنی منتشر نشده است.
اپلیکیشن چه کارهایی انجام میدهد
- اتصال و قطع اتصال با یک لمس از طریق یک دکمهٔ گرد بزرگ که سه حالت را نشان میدهد: متصل نیست، در حال اتصال و متصل.
- وضعیت محافظت ("Not protected" یا "Protected") و زمانسنج اتصال.
- IP شما: پس از اتصال، اپلیکیشن نشانی IP خروجی را که وبسایتها میبینند نمایش میدهد.
- انتخاب موقعیت: سرورها با پرچم کشورها فهرست میشوند و "Quick connect (auto)" در بالای فهرست قرار دارد. تغییر موقعیت در حین اتصال، بهطور خودکار دوباره وصل میشود.
- تأخیر صادقانه: فقط مقادیر اندازهگیریشده نمایش داده میشوند. سرورهایی که هنوز اندازهگیری نشدهاند بهجای عددی ساختگی "—" نشان میدهند.
- سرعت زنده: سرعت دانلود و آپلود، بهعلاوهٔ حجم دادهای که در نشست فعلی مصرف شده است.
- پیامهای خطای روشن که میگویند قدم بعدی چیست، و جزئیات فنی فقط یک لمس فاصله دارد.
- حالت روشن و تیره، مطابق با تنظیمات سیستم.
دو حالت اتصال
روی گوشیها، VPN برای کل دستگاه. Android از VpnService سیستم و iOS از Network Extension استفاده میکند. ترافیک همهٔ اپلیکیشنها از تونل عبور میکند و جستوجوهای DNS هم درون آن انجام میشوند.
روی رایانهها، حالت پراکسی سیستم. وقتی وصل میشوید، اپلیکیشن پراکسی سیستم را تنظیم میکند و هنگام قطع اتصال یا خروج، تنظیمات قبلی شما را برمیگرداند. اگر اپلیکیشن در حین اتصال بهاجبار بسته شود، دفعهٔ بعد که اجرا شود آنها را بازمیگرداند. مرورگرها و بیشتر اپلیکیشنها از پراکسی سیستم پیروی میکنند؛ معدود برنامههایی که تنظیمات پراکسی را نادیده میگیرند پیروی نمیکنند. یک VPN در سطح بسته برای دسکتاپ (Network Extension روی macOS و Wintun روی Windows) گام برنامهریزیشدهٔ بعدی است.
چگونه ساخته شده است
- یک کدبیس Flutter هر چهار اپلیکیشن را تولید میکند، با رابط کاربری یکسان روی همهٔ پلتفرمها. رابط کاربری انگلیسی است.
- یک هستهٔ Go پروتکل SingLink را در خود دارد و برای هر پلتفرم به یک کتابخانهٔ بومی کامپایل میشود که اپلیکیشن مستقیماً آن را فراخوانی میکند.
- روی گوشیها، هسته پشتهٔ شبکهٔ فضای کاربر gVisor از Google (Apache-2.0) را اضافه میکند که ترافیک کل دستگاه را به اتصالهای SingLink تبدیل میکند.
- از صفر نوشته شده است. جز قالب خالیای که Flutter برای هر پروژهٔ جدید میسازد، تمام کد تازه است. هیچ کد، آیکون یا تصویری از اپلیکیشنهای VPN دیگر برداشته نشده است.
وضعیت هر پلتفرم
- macOS 13 یا جدیدتر (Apple silicon): حالت پراکسی سیستم. ساخته و با یک اتصال واقعی آزمایش شده است.
- Android 7 یا جدیدتر: VPN برای کل دستگاه. فایل APK ساخته شده و با یک اتصال واقعی روی شبیهساز Android آزمایش شده است.
- iOS 15 یا جدیدتر: VPN برای کل دستگاه. در شبیهساز iOS ساخته و اجرا میشود؛ شبیهساز نمیتواند تونل VPN ایجاد کند و اجرای آن روی یک iPhone واقعی به حساب Apple Developer نیاز دارد.
- Windows 10 و 11 (x64): حالت پراکسی سیستم. کتابخانهٔ هسته ساخته شده است؛ خود اپلیکیشن باید روی Windows کامپایل شود و مخزن یک گردش کار GitHub Actions دارد که این کار را انجام میدهد.
محدودیتها، صادقانه
- این یک نمونهٔ اولیه است. برای توسعهدهندگان، پژوهشگران و هر کسی است که میخواهد ببیند اجزا چگونه کار میکنند، نه جایگزینی برای اپلیکیشنهای رسمی.
- توزیع به گامهای بیشتری نیاز دارد. انتشار عمومی برای Mac به امضا و تأیید (notarization) Apple نیاز دارد، iPhone واقعی به حساب Apple Developer نیاز دارد و نسخههای Android با یک کلید آزمایشی امضا شدهاند.
- پشتیبانی از macOS در حال حاضر یعنی macOS 13 یا جدیدتر روی Macهای Apple silicon (M-series).
- دسکتاپ از حالت پراکسی سیستم استفاده میکند، بنابراین برنامههایی که تنظیمات پراکسی را نادیده میگیرند هنوز پوشش داده نمیشوند.
- پروتکل زیربنایی پیشنویس است. بازبینی امنیتی داخلی شده اما هنوز ممیزی شخص ثالث نشده است، و در سرزمین اصلی چین در عمل آزموده نشده است.
- نام سرورها همانطور نمایش داده میشود که سرور میفرستد. برای رابط کاربری کاملاً انگلیسی، نام سرورها را انگلیسی بگذارید.
بسازید و مشارکت کنید
فایل README در مخزن توضیح میدهد که چگونه هسته و اپلیکیشن را برای هر پلتفرم بسازید. هستهٔ پروتکل در مخزن جداگانهٔ خودش قرار دارد: SingLinkLabs / singlink-protocol.
پرسشها، گزارش باگها و Pull Requestها در GitHub پذیرفته میشوند. لطفاً آسیبپذیریهای امنیتی را بهصورت خصوصی گزارش دهید، نه در یک Issue عمومی — روند کار در SECURITY.md در مخزن پروتکل شرح داده شده است.
مجوز و علائم تجاری
کد با مجوز Apache-2.0 منتشر شده است: میتوانید آن را طبق شرایط مجوز، از جمله برای مقاصد تجاری، استفاده، تغییر و بازتوزیع کنید. نامهای "SingLink" و "SingLinkVPN"، نامهای چینی آنها و لوگو علائم تجاری SingLinkLabs هستند و این مجوز اجازهٔ استفاده از آنها را نمیدهد. فورکها باید از نام و آیکون خودشان استفاده کنند. اپلیکیشن شامل پشتهٔ شبکهٔ gVisor است که آن هم با مجوز Apache-2.0 منتشر شده است.
مطالعهٔ بیشتر
- پروتکل SingLink اکنون متنباز است
- پروژههای متنباز SingLinkLabs
- وایتپیپر فنی SingLink 2.0، پروتکل عملیاتی اپلیکیشنهای رسمی
- اپلیکیشنهای رسمی SingLinkVPN را دانلود کنید

