Прототип застосунку SingLinkVPN тепер з відкритим кодом

By SingLinkVPN Editorial Team2026-11-12Оновлення продукту4 хв читання
Прототип застосунку SingLinkVPN тепер з відкритим кодом
Contents

Сьогодні SingLinkLabs, команда, що стоїть за SingLinkVPN, опублікувала на GitHub вихідний код прототипу першого покоління застосунку SingLinkVPN за ліцензією Apache-2.0. Це 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 потрібні підпис і нотаризація 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.

Додаткові матеріали

Related articles