Проект введения
Иногда нам нужно получить доступ к данным на домашнем или корпоративном компьютере, но это сложно сделать напрямую из-за того, что компьютер находится во внутренней сети или у него динамический IP-адрес, предоставленный интернет-провайдером.
В этом случае можно использовать интранет-прорыв. Интранет-прорыв используется, когда необходимо стабильно получать доступ к компьютеру в интрасети, у которого нет статического IP-адреса.
Go-netbus — это инструмент, разработанный для решения проблемы интранет-прорыва.
Обычно мы можем получить доступ к сервису, просто подключившись к его адресу. Однако если сервис находится в изолированной внутренней сети, мы не сможем получить к нему доступ. Но есть способ решить эту проблему: если внутренний сервис доступен из внешней сети, то мы можем найти точку прорыва.
Серверная часть
tunnel_bridge
, который будет прослушивать подключения от tunnel_client
.tunnel_server
, который будет слушать запросы на доступ от пользователей.Клиентская часть
tunnel_client
и позвоните tunnel_bridge
для установления соединения.На сервере требуется компьютер с общедоступным IP-адресом (например, сервер Alibaba Cloud). Конфигурация не ограничена, и сервер должен быть развёрнут на этом компьютере.
На клиенте разверните его на компьютере во внутренней сети и используйте тот же сегмент локальной сети, что и сервис, который вы хотите прорвать (например, MySQL).
Обратите внимание, что после прорыва сервис будет открыт для всего интернета, что может привести к риску атаки.
Теперь используется метод управления зависимостями go.mod. При использовании внутри страны рекомендуется настроить прокси, иначе могут возникнуть проблемы с загрузкой.
Это можно реализовать через настройку переменных среды, и IDEA может напрямую установить прокси.
export GOPROXY=https://goproxy.io
# linux
$ go build -o netbus main.go
# windows
$ go build -o netbus.exe main.go
Примечание: этот ключ предназначен только для клиента, а сервер всё ещё использует исходный ключ.
# Если вы хотите создать ключ с датой истечения 2019-12-31, используйте команду:
$ netbus -generate <key> [expired-time]
# key исходный ключ, обязательный параметр
# expired-time дата истечения срока действия, например: 2019-12-31. Если этот параметр не указан, будет создан ключ со сроком действия один месяц.
Поддерживаются два способа запуска:
— Запуск из командной строки (без необходимости настройки файла конфигурации). — Запуск с использованием файла конфигурации (рекомендуется).
# Запуск сервера
$ netbus -server <key> <port>
# Примечание
# key Рекомендуется длина от 6 до 16 символов для проверки подлинности.
# port Порт сервера, не используйте зарезервированные порты, обязательно.
# access-port-range Порт доступа, диапазон, обязательно, например 10000-20000.
# Запуск клиента
$ netbus -client <key> <server:port> <local:port:mapping> [tunnel-count]
# Примечание
# key Совпадает с ключом сервера.
# server:port Адрес сервера, формат: ip:порт.
# local:port:mapping Адрес внутреннего сервиса и порт доступа (если порт доступа не указан, это означает, что преобразование порта не выполняется), несколько адресов разделяются запятыми, например: 127.0.0.1:3389,127.0.0.1:3306:13306.
# tunnel-count Количество туннелей, по умолчанию 1, диапазон [1-5].
Подготовка перед запуском
Переименуйте config_demo.ini
в config.ini
.
Конфигурация сервера
# Конфигурация сервера
[server]
# Порт прокси
port = 6666
# Ключ, рекомендуемая длина 6-16 символов, используется для аутентификации
key = winshu
Конфигурация клиента
# Конфигурация клиента
[client]
# Совпадает с ключом сервера
key = winshu
# Адрес сервера, формат ip:порт
server-host = 127.0.0.1:6666
# Внутренний адрес сервиса и порт доступа (несколько адресов разделены запятыми), формат: внутренний IP:внутренний порт:доступный порт
# Внутренний IP:внутренний порт:доступный порт
local-host-mapping = 127.0.0.1:3389:13389
# Количество туннелей, по умолчанию 1, диапазон [1-5]
tunnel-count = 1
Команда запуска
# Запуск сервера
$ netbus -server
# Запуск клиента
$ netbus -client
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )