Современный, простой туннель TCP в ржавчине, который выявляет локальные порты на удаленный сервер, обходя стандартные брандмауэры Nat Connection. Это все, что это делает: не более, и не меньше.
# Установка (требует ржавчины, см. Альтернативы ниже). Установка Bore-Cli# на местном локальном локальном 8000-to-bore.pub
Это выставит ваш местный порт в localhost:8000
в общедоступном интернете на bore.pub:<PORT>
, где номер порта назначается случайным образом.
Подобно LocalTunnel и NGROK, за исключением того, что bore
предназначен для того, чтобы быть высокоэффективным, неопинозированным инструментом для пересылки трафика TCP, который прост в установке и просты для самостоятельного управления, без прикрепленных излишеств.
( bore
около 400 строк безопасного, асинхрового кода ржавчины, и это тривиально для настройки - просто запустите один двоичный файл для клиента и сервера.)
Если вы находитесь в MacOS, bore
упакована как формула Homebrew Core.
Brew Install Bore-Cli
В противном случае, самый простой способ установить задушенность - это изготовленные двоичные файлы. Они доступны на странице релизов для MacOS, Windows и Linux. Просто расслабляйте соответствующий файл для вашей платформы и перенесите исполняемый файл bore
в папку на вашем пути.
Вы также можете построить bore
из источника, используя Cargo, менеджер пакетов Rust. Эта команда устанавливает двоичный bore
на доступном пользователе пути.
груз установить буровой клин
Мы также публикуем версии Docker Images для каждого выпуска. Изображение построено для 64-битной архитектуры AMD. Они помечены конкретной версией и позволяют запустить статически связанный bore
с минимальным контейнером «царапина».
Docker run -it -init -rm -network host ekzhang/bore <args>
В этом разделе описывается подробное использование команды bore
.
Вы можете пересылать порт на локальной машине, используя bore local
. Это требует позиционного аргумента, локального порта для пересылки, а также --to
опция, которая указывает адрес удаленного сервера.
Серсовая локальная 5000 -к буру.
При желании вы можете пройти в опцию --port
, чтобы выбрать конкретный порт на удаленном отделении, хотя команда не удастся, если этот порт не будет доступен. Кроме того, прохождение --local-host
позволяет вам разоблачить другой хост в вашей локальной сети, кроме адреса Lopback localhost
.
Полные варианты показаны ниже.
Запускает локальный прокси на удаленный сервер Использование: складывает локальный [опции] -to <to> <comoar_port> Параметры: -l,----- -t, -to <to> адрес удаленного сервера для выставки локальных портов [env: bore_server =] -p, -port <port> Необязательный порт на удаленном сервере для выбора [по умолчанию: 0] -s, - -secret <seart> Необязательный секрет аутентификации [env: bore_secret] -h, -Help print help information
Как упоминалось в инструкциях запуска, существует общедоступный экземпляр сервера bore
, работающего на bore.pub
. Однако, если вы хотите самостоятельно bore
в свою собственную сеть, вы можете сделать это со следующей командой:
Сервер
Это все, что нужно! После того, как сервер начнет работать на данном адресе, вы можете обновить bore local
с помощью опции --to <ADDRESS>
для пересылки локального порта на этот удаленный сервер.
Полные параметры для команды bore server
показаны ниже.
Запускает удаленный прокси -сервер Использование: Сервер с отверстием [Параметры] Параметры: -Мин-порт <in_port> Минимальный приемный номер порта TCP [по умолчанию: 1024, ENV: BORE_MIN_PORT] -max-port <max_port> максимум принятый номер порта TCP [по умолчанию: 65535, env: bore_max_port] -s, - -secret <seart> Необязательный секрет аутентификации [env: bore_secret] -h, -Help print help information
Существует неявный порт управления на 7835
, используемый для создания новых соединений по требованию. При инициализации клиент отправляет сообщение «Привет» на сервер на порту управления TCP, прося прокси выбран удаленный порт. Затем сервер отвечает подтверждением и начинает прослушивание внешних соединений TCP.
Всякий раз, когда сервер получает соединение в удаленном порте, он генерирует защищенный UUID для этого соединения и отправляет его обратно клиенту. Затем клиент открывает отдельный поток TCP на сервер и отправляет сообщение «принять», содержащее UUID в этом потоке. Затем сервер прокси -прокси между двумя подключениями друг к другу.
По соображениям правильности и во избежание утечек памяти входящие соединения хранятся только сервером до 10 секунд, прежде чем его отбрасывают, если клиент не принимает их.
При пользовательском развертывании bore server
вы можете потребоваться секрет , чтобы предотвратить использование сервера. Протокол требует, чтобы клиенты проверяли владение секретом на каждом соединении TCP, отвечая на случайные проблемы в форме кодов HMAC. (Этот секрет используется только для начального рукопожатия, и дальнейший трафик не зашифруется по умолчанию.)
# на сервере ServerBore -SECRET MY_SECRET_STRING# на ClientBore Loc
Если в аргументах нет секрета, bore
также попытается прочитать с переменной среды BORE_SECRET
.
Создан Эриком Чжаном (@ekzhang1). Лицензирован по лицензии MIT.
Автор хотел бы поблагодарить участников и сопровождающих проекта Tokio за то, что он позволил писать эргономичные и эффективные сетевые услуги в Rust.