Как SKNet работает на самом деле
Простое объяснение без сетевой теории: кто к кому подключается и где проходят данные.
1 минутаКороткая версия
SKNet состоит из публичного edge-сервера и маленького клиента рядом с вашим приложением.
Клиент первым подключается к edge-серверу. Поэтому домашний роутер, NAT и закрытые входящие порты не мешают работе. Когда человек открывает публичный адрес, edge передаёт запрос через уже созданное соединение.
Путь одного запроса
-
DNS находит SKNet
Браузер узнаёт IP публичного edge-сервера.
-
Edge принимает HTTPS
SKNet завершает TLS и по имени домена находит нужный активный туннель.
-
Запрос идёт в ваш клиент
Для каждого потока открывается отдельное соединение, поэтому большой ответ не блокирует остальные.
-
Клиент обращается к приложению
Например, к http://app:3000 внутри вашей Docker-сети.
-
Ответ возвращается тем же путём
Браузер получает обычный HTTPS-ответ и не знает, где физически запущено приложение.
Что видит SKNet
| SKNet видит | SKNet не получает автоматически |
|---|---|
| HTTP-запросы, проходящие через туннель | Доступ ко всем файлам компьютера |
| Публичное имя туннеля и состояние соединения | Доступ к другим контейнерам |
| Технические сведения для маршрутизации | Пароли приложения и баз данных |
Что происходит при остановке
Публичный адрес остаётся закреплён за аккаунтом, но отвечает, что туннель сейчас недоступен. После повторного запуска клиент подключается снова с тем же токеном — DNS менять не нужно.
Откройте исходник документа по ссылке «Предложить правку» — там же видно, что и когда в нём менялось.