тоннель на локалхост быстро, бесплатно и полный опенсорс без регистрации и смс
тоннель создается через ssh подключчение к srv.us по ключу
podman-compose -f docker-compose.srv-us.yml up запускает тоннель с ключом внутри контейнера.
внешний адрес типа https://example.srv.us будет написан внизу информационного вывода,
другим концом тоннель приведёт по-умолчанию на 127.0.0.1:8081
SRV_DEBUG=false
SRV_HOST=127.0.0.1
SRV_PORT=8081
SRV_KEY_DIR=srv_us
SRV_KEY_FILE=srv_us_ed25519
SRV_KEY_PHRASE=""
SRV_KEY_COMMENT="$USER@$SRV_HOST"
SRV_NET_MODE=bridge
пример запуска SRV_HOST=192.168.1.111 SRV_PORT=9090 podman-compose -f docker-compose.srv-us.yml up
если подключиться к работающему контейнеру, переменнные будут иметь вид
DEBUG
HOST
PORT
KEY_FILE
KEY_COMMENT
NET_MODE
адрес вычисляется на основе переданного ключа. о необходимости создания ключа напоминает подсказка каждый раз при подключении ssh srv.us
для создания ключа ssh-keygen -t ed25519 -f ~/.ssh/srv_us_id_ed25519 -N '' как понятно, требуется:
- пакет
opensshили аналогичный - указать путь до файла, имя
srv_us_id_ed25519подставляется в скриптах по-умолчанию, но если выбрали другое, не забывайте поправить переменные - тип ключа
ed25519требует сервер, ключевая фраза и комментарий опциональны
этот пункт для примера работы
- нужен запущенный агент
eval $(ssh-agent -s) - и загруженный файл ключа
ssh-add ~/.ssh/$KEY_FILE - затем поднимаем тоннель
ssh srv.us -R 1:localhost:9999или несколькоssh srv.us -R 1:localhost:9999 -R 2:...
для чего всё это и затевалось
- создаём ключ на хосте (см. выше)
- запускаем
podman-compose -f docker-compose.srv-us.hostkey.yml upконтейнер с особенностями:- перезапускается при падении
- чтобы использовать
.envиз текущего каталога запуска, раскомментируйте пару строк - имя контейнера
srvus-tunnel-${PORT}, хостнейм во внутренней сети докераsrv_us - используется файл ключа
~/.ssh/${KEY_FILE}, где по-умолчаниюKEY_FILE=srv_us_ed25519 network_modeвыставлен по-умолчаниюhost
то есть, подгрузив этот контейнер во внутреннюю сеть своих контейнеров, вы можете предоставить (тестовый) доступ из больших интернетов, и каждый раз при открытии тоннеля внешний адрес будет одинаковый
build.shсобирает локальный контейнер с внедрённым ключом- однострочник для джедаев консоли и скрина
screen -Adm bash -c "until ssh srv.us -R 1:localhost:8081 ; do echo Restarting... ; done" ; - файл
localhost.shиз репозитория https://github.com/JoyGhoshs/Localhost.run/ , документация https://Localhost.run