FAST NAT: протокол для проникновения в локальную сеть
FAST NAT — это расширенная версия WeNAT, которая поддерживает такие протоколы, как HTTP, TCP, UDP и WebSocket.
Проще говоря, FAST NAT позволяет назначить компьютеру из локальной сети публичный IP-адрес и порт. Например: 123.1.1.1:8888 -> 192.168.1.123:3306.
Когда сервер получает данные на порт 8888, он перенаправляет их на порт 3306 компьютера из локальной сети. Это и есть проникновение через сервер. В отличие от прямого соединения P2P, сервер выступает в роли посредника.
На заметку
Также можно разработать индивидуальное решение на основе P2P. Оно подойдёт для умного дома или сетевого хранилища (NAS) и позволит передавать файлы и управлять устройствами без участия сервера.
Контакты: QQ: 599194993; e-mail: newpanjing@icloud.com.
Онлайн-демоверсия 2.0
На основе этого решения мы разработали новую версию клиента для проникновения в локальную сеть. Весь исходный код доступен для покупки. Связаться с нами можно по QQ: 599194993.
Скачать клиент: https://nat.72wo.com
Поддерживаются операционные системы Windows, Linux, macOS, Raspberry Pi и командная строка.
Поддерживаемые протоколы
TCP, UDP, HTTP, HTTPS, WebSocket.
Сценарии использования
Контакты: Группа QQ: 524948153; E-mail: newpanjing@icloud.com.
Язык разработки
Сервер и веб-сайт написаны на node.js, а клиент — на nw.js и node.js.
Протокол TCP и его процесс
Схема процесса
Процесс работы прокси для внутренней и внешней сети
Обработка ошибок и разрывов соединения
Если одна из сторон сталкивается с ошибкой, все порты для прослушивания и все соединения закрываются. Клиент повторно инициирует запрос на соединение и может использовать случайный порт или продолжить использовать порт из предыдущего сеанса.
Интерфейс TCP
Типы протоколов
Протокол представлен в виде строки JSON.
Безопасность
При первом подключении к серверу требуется предоставить токен пользователя. После проверки подлинности сервер открывает два порта для последующего использования. В дальнейшем проверка не проводится. Хотя это создаёт риски безопасности, распространённые приложения TCP, такие как MySQL, MongoDB и Redis, имеют механизмы защиты на уровне пользователей.
Типы протоколов
Тип |
---|
TCP |
UDP |
HTTP |
WebSocket |
Подключение к коммуникационному серверу
После успешного подключения к порту 8888 на коммуникационном сервере будет отправлен ответ со следующей информацией:
Поле | Тип | Описание |
---|---|---|
id | string(8) | Идентификатор текущего сеанса |
outId | string(8) | Идентификатор сеанса внешней сети |
intPort | int(5) | Порт для подключения к внутренней сети (от 30000 до 65535) |
outPort | int(5) | Порт внешней сети |
command | string | Команда операции |
protocol | string | [Тип протокола](#Типы протоколов) |
Пример ответа:
{
id: 'CucfFpk7',
intPort: 61289,
outPort: 59918,
command: 'start_proxy',
outId: 'GpNYO5KW'
}
Инициация подключения к серверу
Получив ответ от сервера, необходимо установить TCP-соединение на внутреннем порту и отправить идентификатор внешней сети. Первый пакет данных представляет собой пакет протокола, а последующие пакеты являются обычными пересылаемыми данными.
Поле | Тип | Описание |
---|---|---|
outId | string(8) | Идентификатор внешней сети |
Пример запроса:
{
outId: 'GpNYO5KW'
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )