Довольно часто у разработчика возникает необходимость показать свои наработки, расположенные на локальном компьютере. Если же приходится тестировать мобильные приложения, то доступ к API также нужен.
Конечно, можно купить ip-адрес, домен, хостинг, настроить всё это. Но проще, быстрее и доступнее использовать утилиту ngrok, создающую туннель к localhost.
Скачать ngrok можно по адресу: https://ngrok.com/
Программа доступна для Mac OS, Windows, Linux и FreBSD. В ограниченном режиме можно использовать бесплатно, которого, к слову сказать, хватает с лихвой в большинстве случаев.
Для начала нужно установить программу.
Установка Ngrok
Mac OS X 64-Bit:
$ cd /usr/local/src && wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-darwin-amd64.zip
Linux 64-Bit:
$ cd /usr/local/src $ sudo wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
Linux 32-bit:
$ sudo wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-386.zip
FreeBSD 64-Bit:
$ cd /usr/local/src && wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-freebsd-amd64.zip
FreeBSD 32-Bit:
$ cd /usr/local/src && wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-freebsd-386.zip
Например, для Xubuntu:
Если выдаёт ошибку, проверьте права на запись файлов в указанной директории.
Далее необходимо распаковать архив. В нашем случае с Xubuntu:
$ sudo unzip ngrok-stable-linux-amd64.zip
Или сделать распаковку в окне:
Теперь перемещаем утилиту:
$ sudo mv ngrok /usr/local/bin
Затем даём права на запуск скрипта:
$ sudo sudo chmod +x /usr/local/bin/ngrok
Вывести помощь в терминале можно командой:
$ ./ngrok help
Создание туннеля в простейшем варианте (обратите внимание на порт, обычно он 80, у мена 8000):
$ ngrok http 8000
Получаем:
Где http://370f2cc5.ngrok.io уникальный адрес в Интернет.
Можно в hosts файл прописать домен, например, mysite.local, после чего запустить туннель:
$ ngrok http -host-header=rewrite mysite.local:80
Если зарегистрироваться, то:
- будет доступ через SSL
$ curl https://myapp.ngrok.com
- появится возможность защиты туннеля паролем
$ ngrok -httpauth "user:password" 80
- станет доступен выбор поддоменов с резервированием
$ ngrok -subdomain myapp 80
- будет возможно туннелирование TCP и UDP
$ ngrok -proto tcp 8080
СВами