Ngrok: новый способ расшарить localhost
Частенько возникает необходимость открыть свой компьютер для доступа через интернет, для всех желающих или по паролю. Например, если хотите продемонстрировать новый код, опубликовать файлы или просто записать весь сетевой трафик у исследовательских целях.
Для этого нужно установить у себя веб-сервер и направить на него трафик через сторонний сервер по обратному SSH-туннелю с помощью программы вроде LocalTunnel или ProxyLocal.
$ gem install localtunnel
$ localtunnel -k ~/.ssh/id_rsa.pub 8080
После ваш компьютер будет доступен с адреса вроде http://8bv2.localtunnel.com. Запускаем программу — и localhost в онлайне.
$ localtunnel 8080
Недавно появился новый бесплатный сервис, который делает все то же самое, но работает стабильнее и имеет большую функциональность. Поэтому, наверное, он достоин упоминания: 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