Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
linux_faq:http_tunnel [2020/01/14 10:50] – [bridge - Клиент] admin | linux_faq:http_tunnel [2020/01/14 11:02] (current) – [bridge на ruby] admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | https:// | ||
+ | |||
+ | ====== С помощью WebRTC ====== | ||
+ | https:// | ||
+ | https:// | ||
+ | https:// | ||
+ | |||
+ | ====== с использованием метода CONNECT ====== | ||
+ | http:// | ||
+ | |||
+ | ====== Без использования метода CONNECT (только PUT и GET) ====== | ||
+ | ===== bridge на ruby ===== | ||
+ | https:// | ||
+ | На всякий случай утащил к себе: {{ : | ||
+ | Данная утилита (не моя) - скорее просто **proof-of-concept**. Она работает, | ||
+ | Протестировал на чистом контейнере **Ubuntu 19.10**. \\ | ||
+ | Продвинутая версия с **BasicAuth** (нашел среди форков) - https:// | ||
+ | Добавлен HTTPS - https:// | ||
+ | Вот мой вариант - https:// | ||
+ | ==== bridge - сервер ==== | ||
+ | Сервер может быть настроен где угодно (не обязательно внутри сети, куда нам нужно попасть). | ||
+ | apt-get install ruby git | ||
+ | git clone https:// | ||
+ | sudo cp ./ | ||
+ | Запускаем сервер | ||
+ | sudo http_bridge server 80 /some-path user: | ||
+ | Сервер будет принимать подключения на порту **80**, **URN / | ||
+ | |||
+ | === / | ||
+ | Для автоматического запуска сделаем юнит сервиса: | ||
+ | < | ||
+ | [Unit] | ||
+ | Description=Setup a secure tunnel to remote server | ||
+ | After=network.target | ||
+ | |||
+ | [Service] | ||
+ | ExecStart=/ | ||
+ | RestartSec=10 | ||
+ | Restart=always | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ | ||
+ | Уведомляем **systemd**, | ||
+ | systemctl daemon-reload | ||
+ | systemctl enable http-bridge-server.service | ||
+ | systemctl start http-bridge-server.service | ||
+ | ==== bridge - Клиент ==== | ||
+ | apt-get install ruby git | ||
+ | git clone https:// | ||
+ | sudo cp ./ | ||
+ | Запускаем клиент: | ||
+ | sudo bash -c ' | ||
+ | Всё. Теперь на клиентской машине на порту **222** у нас доступен порт **22** хоста **some.ssh-server.com**. \\ | ||
+ | \\ | ||
+ | Для автоматического запуска клиента при старте сессии **ssh** нужно добавить в **~/ | ||
+ | < | ||
+ | ProxyCommand / | ||
+ | </ | ||
+ | или в случае с proxy-сервером: | ||
+ | < | ||
+ | ProxyCommand bash -c ' | ||
+ | </ | ||
+ | И теперь при выполнении: | ||
+ | ssh user@mysshserver.com | ||
+ | автоматически будет запускаться **bridge** (повышение привилегий в этом случае не нужно). | ||
+ | |||
+ | === / | ||
+ | Для автоматического запуска клиента сделаем юнит сервиса: | ||
+ | < | ||
+ | [Unit] | ||
+ | Description=HTTP Tunnel Client Service | ||
+ | After=network.target | ||
+ | |||
+ | [Service] | ||
+ | Environment=" | ||
+ | ExecStart=/ | ||
+ | RestartSec=10 | ||
+ | Restart=always | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ | ||
+ | Уведомляем **systemd**, | ||
+ | sudo systemctl daemon-reload | ||
+ | sudo systemctl enable http-bridge-client.service | ||
+ | sudo systemctl start http-bridge-client.service | ||
+ | |||
+ | ===== httptunnel ===== | ||
+ | https:// | ||
+ | Можно найти в репозиториях многих дистрибутивов. \\ | ||
+ | Пишут, что испоьзует чистые **PUT** и **GET** запросы, | ||
+ | |||