Статьи

Доступ к localhost из любого места

Вы часами работали локально на своем компьютере, чтобы новый дизайн сайта выглядел просто правильно. Ваша CMS прекрасно настроена с образцом контента, и вы хотите протестировать его на нескольких мобильных устройствах и планшетах. Ваш клиент также хочет взглянуть — но у вас нет времени перенести все это на общедоступный сервер, чтобы быстро взглянуть на него.

Если вы веб-разработчик, скорее всего, вы бывали в такой ситуации много раз. И вы, вероятно, потратили те времена, сжигая немного полуночной нефти, перенося вещи на общедоступный сервер, желая, чтобы был более легкий путь.

Всем этим уставшим веб-разработчикам, я здесь, чтобы сказать вам, что пришел более легкий путь! Фактически, существует множество приложений и служб, которые помогут упростить этот процесс, предоставляя доступ к вашему локальному хосту из Интернета. Те, которые я буду обсуждать в этой статье:

Как можно получить доступ к localhost из любого места?

Это возможно через безопасный туннель онлайн! Это сервисы, которые предоставляют вам туннель от Интернета до вашей машины.

Это означает, что они предоставляют общедоступный URL-адрес, отслеживают вызовы по этому URL-адресу и перенаправляют эти вызовы на локальный сервер. Все запутанные настройки были сделаны для вас — все, что вам нужно сделать, это установить приложение и указать его на свой локальный хост.

Примечание об использовании виртуальных хостов

На моем локальном хосте у меня настроены виртуальные хосты. Без ServerAlias адреса каждой службы, указанной ниже как ServerAlias , мой сервер отказывался бы играть хорошо. Несколько часов путаницы последовало. Если вы находитесь в той же лодке, добавьте ServerAlias в ваш httpd.conf, заменив адрес ngrok, который вы видите ниже, адресом службы, которую вы используете:

 <VirtualHost *:80> DocumentRoot "/Users/patcat/Web" ServerName mytestsite.test ServerAlias 350c0f8e.ngrok.com </VirtualHost> 

ngrok

ngrok — это приложение для Windows, Mac OS X и Linux, которое создает туннель, но также позволяет проверять весь трафик, проходящий через туннель, и воспроизводить этот трафик для тестирования.

Вы можете использовать основные функции бесплатно, а затем зарегистрироваться, чтобы получить доступ к дополнительным функциям. Он работает на платной системе , поэтому вы решаете, сколько стоит это программное обеспечение! Одним из ключевых преимуществ ngrok является то, что он не имеет зависимостей. Вы устанавливаете ngrok и запускаете его. Больше ничего не требуется.

Как использовать нгрок

Перейдите на ngrok.com , скачайте архив и распакуйте его туда, где вы хотите, чтобы ngrok жил на вашем компьютере.

Откройте терминал командной строки и перейдите в папку, в которую вы извлекли ngrok. Выполните следующую команду, чтобы создать туннель для вашего локального хоста на порту 80:

 ./ngrok 80 

Вы увидите такой экран:

Ngrok работает на порту 80

В приведенном выше примере мы получили трафик на случайно сгенерированный адрес ngrok http://3dfab6bf.ngrok.com, который пересылается нашему локальному хосту 127.0.0.1:80.

Откройте этот URL на любом устройстве с подключением к Интернету, и вы получите доступ к локальному хосту из Интернета!

Одним из наиболее уникальных предложений, предоставляемых ngrok, является возможность проверки прошлого трафика. Для этого перейдите по адресу http: // localhost: 4040 / на вашем компьютере. Вы получите доступ к панели инструментов, отображающей входящие запросы. Вы можете щелкнуть каждый запрос слева и просмотреть подробности справа для заголовков и других данных. Мое любимое использование этого — видеть данные JSON, возвращаемые из запросов. Самая базовая схема этого при загрузке простой HTML-страницы выглядит так:

Просмотр входящих запросов ngrok

Вы даже можете повторить запрос, нажав кнопку «Воспроизвести» справа. Это перезапустит запрос для вас через туннель.

Расширенные возможности ngrok

Если вы зарегистрируетесь в ngrok бесплатно, вы можете использовать дополнительные функции, такие как:

Пользовательские субдомены (так что вам не нужно запоминать этот случайно сгенерированный URL!). Если вы платите немного, чтобы поддерживать работу ngrok, вы можете зарезервировать поддомен, чтобы другие не могли его взять. Следующее позволяет вам просматривать ваш локальный хост на nogophersinmytunnel.ngrok.com:

 ngrok -subdomain nogophersinmytunnel 80 

Защита паролем для предотвращения доступа случайных пользователей к вашему сайту:

 ngrok -httpauth "username:password" 80 

Если вы заплатили немного денег за ngrok, они позволят вам использовать ваши собственные домены, а не использовать ngrok.com:

 ngrok -hostname "tunnel.yourdomain.com" 80 

Вы можете даже туннелировать к IP-адресу в вашей локальной сети, который иначе не был бы доступен для внешнего мира:

 ngrok 192.168.0.27:80 

Или создайте туннель для других не HTTP-сервисов:

 ngrok -proto=tcp 22 

Есть множество других вещей, которые вы можете сделать, от запуска нескольких туннелей одновременно до создания файла конфигурации, чтобы сохранить все эти настройки для будущего использования.

Чтобы узнать обо всем, что возможно, смотрите страницу использования ngrok .

PageKite

PageKite — это основанный на Python «обратный прокси-сервер на основе динамического туннеля», который работает на устройствах Windows, Mac OS X, Linux и даже Android! Он очень похож на ngrok, но существует уже немного дольше и выглядит немного более проверенным в бою для более широкого круга применений. Они даже работают с протоколом Minecraft, чтобы люди могли запускать сервер Minecraft на своей локальной машине.

Вы можете подписаться на бесплатную пробную версию на месяц. После этого у него есть система «плати сколько хочешь» (минимум 3 доллара США в месяц или бесплатно, если вы работаете на бесплатном программном обеспечении с открытым исходным кодом). Вам нужно платить больше, чтобы получить больше в этом случае, хотя те, кто платит большие суммы, получают большую квоту, более длительный срок обслуживания, настраиваемые субдомены и так далее.

Похоже, что у PageKite нет инспектора трафика, такого как ngrok, но он обладает довольно невероятными функциями, такими как приложение для Android, которое позволяет вам использовать тот же туннель PageKite на вашем устройстве Android.

Недавно они развернули в Австралии интерфейсный сервер ретрансляции, что потенциально может обеспечить более высокую скорость для австралийских разработчиков.

Как использовать PageKite

Перейдите на PageKite.net и загрузите версию для вашей ОС. Для пользователей Windows вы должны сначала убедиться, что у вас установлен Python. Для Mac OS X и Linux вы можете использовать простую команду curl, чтобы установить ее прямо из командной строки.

После загрузки выполните эту команду, чтобы запустить туннель к вашему локальному серверу. Вы выбираете конкретный поддомен, который используете каждый раз (а не случайное распределение в ngrok). Я выбрал quickgetintothetunnel здесь:

 pagekite.py 80 quickgetintothetunnel.pagekite.me 

Он пройдет и зарегистрирует вас в службе, если вы еще не зарегистрированы. Тогда у вас будет локальный хост, который будет работать на весь мир!

PageKite работает на порте 80

Расширенные возможности PageKite

Вот некоторые из впечатляющих дополнительных функций, которые имеет PageKite:

Нет необходимости в веб-сервере. Если у вас нет запущенного сервера, он имеет встроенный веб-сервер, который может запускать ваши статические файлы, например:

 pagekite.py /path/to/folder igotthattunnelvision.pagekite.me 

Как и ngrok, вы можете ограничить доступ с помощью пароля:

 pagekite.py 80 terelekkayatuneli.pagekite.me +password/username=password 

Или ограничить доступ через IP-адреса:

 pagekite.py 80 arcadefirecamethroughmywindow.pagekite.me +ip/1.2.3.4=ok +ip/4.5.6=ok 

Как уже упоминалось выше, вы можете даже запустить все это на своем телефоне. Я установил веб-сервер Android под названием kWS, а затем запустил Pagekite для показа его в Интернете:

PageKite и kWS работают на моем телефоне

PageKite доставляет сайт с моего телефона

Это определенно не то, чем я буду заниматься каждый день, но довольно приятно видеть, что теперь это возможно только на смартфоне!

Как и ngrok, PageKite может выполнять несколько туннелей одновременно, поддерживает наличие собственного домена и настройку файла конфигурации для своих туннелей. Для получения дополнительной информации ознакомьтесь с кратким руководством пользователя и более подробной инструкцией .

Вперед

Forward — это сервис туннелирования, который работает на Ruby и работает в Windows, Mac и Linux. В нем больше внимания уделяется использованию сервиса для отображения работы клиентов, и он включает в себя такие функции, как настройка страниц-заполнителей, когда туннель выключен, и отключение robots.txt, чтобы наши дружественные поисковые системы не индексировали его.

Форвард имеет бесплатную 30-дневную пробную версию, а затем ежемесячные планы для физических лиц, малого бизнеса и крупных предприятий.

Как использовать Форвард

Зарегистрируйте аккаунт на forwardhq.com . При регистрации вы указываете начальный URL, который хотите использовать в службе (аналогично PageKite). Я настроил свою пересылку на patcat.fwd.wf. Убедитесь, что на вашем компьютере установлены Ruby и Rubygems!

Установите жемчужину вперед. Мне нужно было использовать sudo для успешной работы на моем Mac:

 sudo gem install forward 

Чтобы запустить туннель к вашему локальному хосту через порт 80, вы запускаете эту команду:

 forward 80 

Он будет работать так же, как Ngrok и PageKite!

Вперед работает на порт 80

Расширенные возможности Forward

Многие из продвинутых функций Forward похожи на ngrok:

Вы не можете установить совершенно другой поддомен, но можете установить префикс поддомена, который они называют «проектом». Например, я могу установить platypusestunneltoo-patcat.fwd.wf как мой туннель так:

 forward 80 platypusestunneltoo 

Вы можете настроить его для размещения определенных проектов с вашим собственным доменом, а не с fwd.wf:

 forward 80 --cname molesdotoo.mydomain.com platypusestunneltoo 

Как и другие, вы можете защитить паролем. Тем не менее, Forward также имеет возможность войти в свою учетную запись на forwardhq.com и установить глобальное имя пользователя и пароль, что представляется весьма полезным! Для специфичных для проекта имен пользователей и паролей вы должны выполнить следующую команду:

 forward 80 --auth username:password 

Моя любимая особенность в Forward — это то, что он очень хорошо работает с виртуальными хостами, предоставляя способ создать туннель для конкретного виртуального хоста без необходимости настройки вашего сервера (в основном вам не нужно изменять файл http.conf, например: Я предложил выше … что приятно!)

 forward myvirtualhost.test 

В Forward также есть файлы проекта, в которые можно сохранить настройки, как это сделали ngrok и PageKite. Полный список их вариантов можно найти на их странице поддержки .

ProxyLocal

ProxyLocal , по-видимому, является гораздо меньшим по объему туннельным сервисом, который работает на Ruby. Это совершенно бесплатно и может быть хорошим бюджетным вариантом для студентов и тех, кто нуждается в услуге туннелирования очень редко.

Обновление: ProxyLocal с тех пор завершил работу и рекомендует ngrok в качестве службы замены.

У него меньше возможностей, но он хорошо справляется со своей задачей. Для запуска также не требуется регистрация, что довольно быстро и удобно!

Как использовать ProxyLocal

Установите драгоценный камень ProxyLocal. Как и в случае с Forward, для успешной установки на моем Mac мне понадобилось использовать sudo:

 sudo gem install proxylocal 

Чтобы получить туннель к вашему локальному узлу на работающем порту 80, используйте команду:

 proxylocal 80 

Вперед работает на порт 80

Единственный другой вариант, который он предоставляет, это пользовательские имена хостов. Приведенная ниже команда установит URL нашего туннеля на lightattheendofthe.t.proxylocal.com:

 proxylocal 80 --host lightattheendofthe 

BrowserStack

BrowserStack предоставляет автоматизированные снимки экрана и виртуальные машины для тестирования вашего веб-сайта с целым рядом устройств и браузеров. Если причина, по которой вы хотите получить доступ к localhost, заключается в тестировании, BrowserStack может вас заинтересовать.

Вы можете использовать описанные выше методы для тестирования сайтов localhost в виртуальных машинах BrowserStack, однако он также имеет расширение браузера для Chrome и Firefox, позволяющее вам предоставлять доступ к localhost со своих серверов.

Однако эта функция предназначена только для служб BrowserStack и недоступна для широкой публики. BrowserStack поставляется с бесплатной пробной версией, после чего вам потребуется ежемесячная плата за использование сервиса. Это было бы удобно в тех случаях, когда единственная причина, по которой вы обращаетесь к localhost, — это тестирование устройства.

Как использовать BrowserStack

Подпишитесь на пробную версию на BrowserStack.com . На самом деле у них достаточно хорошо документирован процесс локального тестирования, поэтому прочитайте об этом, если вы заинтересованы в этом.

В конце концов, это позволит вам протестировать локальные сайты на виртуальных машинах, работающих в Интернете, следующим образом:

BrowserStack просмотр страницы на моем локальном хосте

Воспроизведение избранного

Моими личными фаворитами после игры с ними должны быть ngrok и PageKite.

PageKite кажется самым многогранным решением с огромным потенциалом. За прошедшие годы он был разработан и расширен для широкого спектра применения, что делает его действительно впечатляющим!

Ngrok отлично подходит для своей простоты и инспектора дорожного движения. Он имеет более чем достаточно функций для большинства веб-разработчиков, желающих получить доступ к своему локальному хосту из Интернета.

Вывод

Если вы работаете на компьютере с активным подключением к Интернету, вы можете настроить доступ к локальному хосту из любой точки всего за несколько минут! Начать невероятно просто, и, как вы видите … нет недостатка в решениях!

Вы пользовались какой-либо из этих услуг? У вас есть другие, которые вы предпочитаете? Я хотел бы знать ваши мысли в комментариях ниже!