
прочитать
Частенько возникает необходимость открыть свой компьютер для доступа через интернет, для всех желающих или по паролю. Например, если хотите продемонстрировать новый код, опубликовать файлы или просто записать весь сетевой трафик у исследовательских целях.
Для этого нужно установить у себя веб-сервер и направить на него трафик через сторонний сервер по обратному SSH-туннелю с помощью программы вроде LocalTunnel или ProxyLocal
Но есть ещё один бесплатный сервис, который делает все то же самое, но работает стабильнее и имеет большую функциональность. Поэтому, наверное, он достоин упоминания: ngrok.com.
Программа распространяется в бинарниках под Linux, Mac OS X и Windows и работает сразу «из коробки» даже без регистрации.
Но если зарегистрироваться, то появляется пара дополнительных возможностей.
Доступ через SSL
curl https://myapp.ngrok.com
Защита туннеля паролем
ngrok -httpauth "user:password" 8080
Поддомены на выбор, с резервированием на будущее
ngrok -subdomain myapp 8080
Туннелирование TCP и UDP
ngrok -proto tcp 8080
стоит упомянуть Web Interface http://127.0.0.1:4040 утилиты ngrok. Очень подробный лог. Возможность повторить запрос пользователя без участия пользователя и тд.
Скачать ngrok можно по ссылке https://ngrok.com/download.
Как это работает
Схема очень проста. Вы скачиваете приложение, консольную программу ngrok. Запускаете, указав в параметре локальный порт службы, например веб-сервера, к которому нужно получить доступ из интернета. Ngrok создает туннель до своих серверов, и выдает вам временный адрес, что то вроде этого 07d9ce94.ngrok.io. Обратившись по этому адресу, вы попадете на порт своей локальной машины.
Примеры запуска
Открываем доступ к локальному порту http 8080.
ngrok http 8080
Открываем доступ к локальному порту http 8080 с авторизацией по логину и паролю.
ngrok http --auth "логин:пароль" 8080
Открываем доступ к локальному TCP порту 22 (для выполнения этой команды потребуется авторизовать клиент ngrok).
ngrok tcp 22
Авторизация клиента ngrok (выполняется одни раз), получить токен можно по адресу https://dashboard.ngrok.com/auth.
ngrok authtoken ваш_токен
Перенаправление порта http на другой (не локальный) адрес:порт.
ngrok http 192.168.0.1:80 # адрес и порт подставлены для примера (замените на адрес и порт другого компьютера)
Перенаправление порта tcp на другой (не локальный) адрес:порт.
ngrok tcp 192.168.0.254:22 # адрес и порт подставлены для примера
Получение справки по указанной команде.
ngrok help команда
полный список опций https://ngrok.com/docs
пакет для NPM
https://www.npmjs.com/package/ngrok
При необходимости, мы можем указать регион, в котором будет запущен прокси:
$ ./ngrok http -region=eu 80
Или защитить запущенный туннель паролем для доступа:
$ ./ngrok http -auth="user:pa55w0rd" 80
В случае появления ошибки вида:
The connection to was successfully tunneled to your ngrok client, but the client failed to establish a connection to the local address localhost:80.
Стоит проверить, запущен ли веб-сервер локально, и работает ли он на 80 порте.
https://sysadmin.pm/ngrok/
https://www.bootdev.ru/2018/05/ngrok.html
https://xakep.ru/2013/07/23/60957/
http://jakondo.ru/utilita-ngrok-rassharivaem-veb-sajt-na-localhost-v-globalnuyu-set-internet/
https://linuxthebest.net/kak-nastroit-veb-server-na-vashem-sobs/
5 способов создать мгновенный легкий веб-сервер с помощью командной строки Linux
Как сделать простой веб-сайт за один час
install_tftp_server.sh
установка dokuwiki centos php nginx
centos docker yii