Transcript for:
Как расшарить локальный веб-сервис в интернет

Здоров катаны поговорим сегодня с вами о том как нам наш локально развёрнутый веб-сервис расшарить в интернет для того чтобы любые пользователи сети Интернет могли воспользоваться этим сервисом то есть вот прям сайти работает на нашем ноутбуке но при этом им могут пользоваться любые любые другие люди которые работают в интернете дорогие друзья и хотелось бы чтобы вот этот процесс расшарить веб-сервиса с ноутбука в интернет был максимально простым чтобы вот не надо было каких-то очень больших тел движений для этого дела для чего это может понадобиться это может понадобиться для разработки например Telegram вебхуков для того чтобы разрабатывать Telegram ботов которые будут работать не через лон полинг А через вебхуки это может понадобиться для разработки и локальной отладки каких-то систем оплаты через интернет эквайринг например да Для того чтобы система Интернет эквайринга отправляла отбивки о статусе каких-то платежей на наш локальный льно развёрнутый какой-то веб-сервис это может понадобиться просто чтобы кому-то что-то быстро показать там коллегам заказчику не поднимая полноценный веб-сервер То есть у нас что-то работает на нашем компьютере мы отправляем прям ссылочку какому-то другому человеку он открывает и всё всё это видит Как это работает Хотя фактически код отрабатывает повторюсь на нашем компьютере Ну на самом деле таких сценариев можно придумать много всё упирается только в вашу фантазию Итак для того чтобы расшарить какое-то веб-приложение в интернет нам нужно чтобы это приложение работало на нашем компьютере это может быть совершенно любое веб-приложение любой совершенно веб-сервис написанный на чём угодно я для примера просто покажу У нас вот есть такая директория в которой просто лежит два изображения и мы хотим вот эти два изображения чтобы были доступны через web Ну почему бы нет Вот такой вот простейший у нас будет с вами веб-сервис Давайте воспользуемся встроенным в Pon 3 htp сервером для этого пишем Python 3 то есть запускаем модуль Севе памс Обратите внимание у нас значит замечательный сервер запустился на порту 8000 и мы можем к нему великолепным образом обратиться через Local Host Двоеточие 88.000 Вот пожалуйста при этом если мы на каждую картиночки действительно рабочие это ровно те картинки которые лежат у нас в нашей директории в которой мы запустили Python HTTP сервер этот замечательный веб-сервис который мы сейчас можем открыть в нашем браузере работает сейчас только на нашем компьютере и получить к нему доступ откуда-то ещё из интернета в общем случае нельзя безусловно мы можем настроить такой общий доступ если у нас будет например бела айпишник если мы там пробросить порты из нашего значит какого-нибудь wi-fi роутера который установлен в нашей квартире Или в том месте где мы находимся но это не очень быстро это может быть не очень бесплатно это может быть не очень удобно хотелось бы какой-то чисто софтвер способ расшарить какой-то веб-сервис который работает на нашем компьютере в интернет и собственно о таких способах Мы здесь и поговорим причём очень бы хотелось чтобы те инструменты которые мы будем использовать работали вне зависимости от сложности нашей сетевой конфигурации Сидим мы за натам не за натам совершенно неважно всё должно работать вот сейчас с вами и посмотрим как это происходит и ещё на закусочка я вам покажу как можно просто вот на старом каком-нибудь Android телефоне который Наверняка у вас что-то где-то дома завалялся можно настроить полноценный поднять Там веб-сервер и не просто веб-сервер А веб-сервер который будет доступен из интернета полноценно представляете вот прям прям вот на телефоне на старом Android телефоне это можно запустить и буквально за несколько секунд я покажу вам как это происходит Крутяк Да Крутяк вот а ещё если вам в целом нравится прокачиваться в своей профессии то я хочу вас позвать на первую техническую конференцию от авитех Авито All Day Long целый день просто крутейших докладов о то кто и как создаёт сервис которым по сути сейчас пользуется каждый второй житель России на минуточку причём конечно речь не только о докладах это отличная возможность пообщаться со специалистами поневоле поделятся опытом и решениями которые вы сможете использовать в том числе для себя причём как по хордам платформенные инструменты La backend driven UI emil Ops с нуля и в том числе по софта Как правильно формулировать вопросы команде самому себе как решать конфликты Тим лидов и продуктов и так далее А ещё конечно можно будет пощупать технологические продукты теха MC Авито ПТА 3 Сима на конфе будет представлены в том числе демо станции Где у вас будет совершенно замечательный уникальный шанс затестил гов на рынке Avita All Day Long пройдёт 20 июля в центре событий РБК в Москве а также будет трансляция на YouTube ссылочка на эту трансляцию в описании пожалуйста подпишитесь сразу на уведомление чтобы не забыть и в этот день посмотреть трансляцию Если вы не в Москве а Если же вы в Москве то пожалуйста регистрируйтесь опять же по ссылочка в описании Приходите в офлайн Я кстати приду буду тоже в оффлайне до встречи на этом замечательном мероприятии дорогие друзья ну а мы с вами возвращаемся к способам расшарить локальный веб-сервис в интернет и первый способ называется nger И на самом деле это возможно самый популярный способ расшарить Local Host в интернет в минимальной версии nger работает бесплатно причём даже сейчас вот бесплатные возможности nger шире чем они были несколько лет назад когда я последний раз этим инструментом пользовался поэтому сейчас в общем-то и бесплатной версией можно пользоваться официальный сайт .com ссылочка тоже будет в описании установить nger можно совершенно совершенно Элементарно командой BRW на Маке например да BRW Install / таким вот образом вот у меня здесь запускается при помощи Arch m64 потому что у меня это запускается через розет на ам маке у вас вероятно тоже будет запускаться на вашем современном маке аналогичным образом но в любом случае в документации Вы посмотрите как это можно установить также вам нужно будет зарегистрироваться на сайте .com Это совершенно бесплатно данные карточки не требуется Здесь точно также показано как это всё можно установить великолепие и есть вот такая замечательна config это необходимо тоже сделать копируем эту команду и выполняем дорогие друзья замечательно Ну и Давайте с вами вернём вернём наш веб-сервер Python 312m HTTP сервер и В отдельной вкла просто запустим nger NG http пробел htp США Local H 8000 Обратите внимание и система NG выдало нам вот такой вот замечательный Рандомный до hps App мы можем скопировать этот адрес И прямо открыть его в сафари Обратите внимание дорогие друзья и это прямо работает это прямо работает то есть вот эту ссылку мы сейчас можем отправить Кому угодно в интернете мы можем Открыть её с телефона будучи не знаю в Австралии я сейчас нахожусь в Москве совершенно без проблем эта ссылка будет работать и вот эти файлики они точно также Здесь кликабельные точно также эти файлики скачиваются сейчас уже через интернет дорогие друзья Крутяк также мы можем получить статичный домен потому что домен который на каждом запуске Рандомный и меняется Это не всегда удобно иногда это именно то что нам нужно Но иногда это не то что нам нужно например если мы значит Тестируем вебхуки в телеграме или если мы Тестируем какие-то интеграции вебхуков опять же во внешних системах в системе там Интернет эквайринга мы хотим чтобы у нас был какой-то статичный домен мы этот домен прописали там либо в телеграме либо в системе интернет эквайринга и чтобы эта система долбила в этот наш статичный домен если наш домен будет при каждом запуске разный то нам каждый раз придется это настраивать Это не то что нам нужно вот поэтому в сейчас есть возможность конечно получить свой собственный до вот здесь вот в вкла dom мы э можем историю с вами осуществить в моём случае у меня здесь вот такой домен уже создан ну Давайте удалим Del и просто создадим создадим новый домен Ну маленько тупит у них тун в сафри мас и система нам показывает Каким образом мы можем использовать этот до для запуска Ну собственно вот таким вот образом то есть нужно добавить вот такой вот флажок domain promed Dodo deeply nger nger бла-бла-бла пим запущенный nger и запустим Давайте его с нашим доменом просто добавляем флаг нашего домена то есть rer http два Def domain пробел тот доме который намм выдал nger статичный то есть вот этот адрес promed to deeper fre это уже наш статичный домен который не будет меняться при каждом перезапуске ро если мы его указываем при перезапуске ошки ошки запускаем Вот это историю и теперь открываем её и вот теперь замечательны вот этот домен статичный привязанный к нашему аккаунту мы его можем всегда использовать для тестирования нашего замечательного веб-сервиса Вот мы останавливаем перезапуска и по-прежнему этот домен замечательным образом работает и мы эту ссылку по-прежнему можем направить куда угодно и она будет работать при этом дорогие друзья Обратите внимание что это https и это здорово потому что телеграму например по-моему нужен https для работы вебхуков системам интернета эквайринга тоже по-моему нужен https и мы здесь получаем совершенно бесплатно вот просто без денежек https и можем замечательным образом тестировать все эти сервисы красота Ну на самом деле один из способов быстренько раздать файлы со своего компьютера Да вот у нас лежит какие-нибудь какой-нибудь набор файлов или какой-нибудь большой файл на нашем компьютере мы можем этот файл Там кому-нибудь скинуть там через Telegram или искать какой-то файло обменник отправлять по почте По почте больший файлы не отправляются через Telegram отправляется медленно Ну вот например через nger можно совершенно замечательно расшарить какие-то файлы для других каких-то пользователей например своих коллег М красота Хотя в то же время конечно здесь стоит сказать что рок всё-таки коммерческая компания не Российская компания поэтому как она будет работать впоследствии сейчас сказать сложно потому что санкции все дела не понятненько и в целом хотелось бы наверное иметь какие-то инструменты всё-таки опенсорс нае всё-таки э без каких-то коммерческих планов тарифных планов которые работают просто на уровне технологий а не какой-то компании которая за всем этим стоит поэтому давайте мы с вами посмотрим на некоторые другие варианты в том числе рок закрываем и останавливаем второе решение на которое мы посмотрим называется Local Tunnel обратить внимание это уже ТБК мы понимаем что это уже Open Source есть замечательный сайт у этого сервиса Local Tunnel Mi и есть совершенно Великолепный github у которого значит 1300 фоков и 18500 звёздочек тысяч звёздочек Ну красотища установить можно совершенно великолепно через npm npm Install Global Local tunel и запустить можно простейшем виде вот так LT сокращение от Local tun P тысячный Давайте проверим так новский сервер у нас по-прежнему ра Давайте запустим tun вот при помощи такой команды Мы это можем сделать LT по и Sub Обратите внимание мы сразу указываем тот поддомен в котором будет запущен наш сервис в интернете в нашем случае я выбрал под дове 555 Ну почему бы нет собственно говоря он просто должен быть свободен в домене запускаем Ну система пишет нам Да замечательно твой говорит ресурс запущен по адресу hps 555l дава перейдём И что же мы здесь видим Мы видим что система спрашивает у нас пароль который мы должны запросить у разработчика То есть у человека который расшарить в данном случае мы сами это сделали вот поэтому система предлагает нам перейти Вот на этот адрес как разработчиком и вот этот адрес пишет нам пароль который нам необходимо ввести вот мы прямо копируем этот пароль вставляем Его сюда жмём Click to submit и о-ля-ля мы замечательным образом попадаем в веб-сервис который собственно говоря представляет собой расшаренную в интернет версию нашего локального веб-сервиса то есть вот он Local Host 88.000 это наш локальный веб-сервис А вот он wowa My Secret My Server 555l tolt это наш э сервис который доступен в интернете точно также картиночки здесь замечательным образом загружаются Как мы можем убедиться при этом снова работает https и снова работает совершенно замечательный наш статичный домен кто-то когда-то Мне однажды говорил что у него Local tunel в его сетевой конфигурации не сработал м то есть то ли не создалась ссылка то ли она не была доступна в интернете Я уж не знаю я с таким не сталкивался у меня Local tunel совершенно замечательным образом работает однако уже я вам сейчас покажу Просто шикарнейший способ вот просто способ конфеточка э очень крутой о котором я думаю многие из вас не знают те кто может быть роком даже пользовались чем этот способ крут Он крут как минимум тем что он не требует установки и вообще ничего на Ваш компьютер то есть nger наставить Local tunel надо ставить а вот тот способ который я вам сейчас покажу не требует вообще никакой установки при этом решает ровно Тоту задачу которую нам и необходимо решить так замечательно Давайте Local Tunnel остановим И откроем сайт serveo.net вот такой вот замечательный сайт что написано на этом замечательном сайте expose Local servers to the Internet no installation no signup вообще красота Как это работает ssh просто через проб ssh да ssh 80 Local Host 3000 serveo.net Давайте скору э замечательную команду вставим её сюда Значит мы экзим не тысячный порт а тысячный порт поэтому у нас будет ssh Def r80 localhost 8000 serveo.net и жмём Enter при первом запуске система может попросить нас ну типа ключи Мы публично добавляем не добавляем Да конечно добавляем и система выдаёт нам Рандомный пока что Рандомный доме rnet в Мом случае давайте перейм и убедимся в том что это тоже работает да При этом мы ничего не устанавливали Ну согласитесь Круто Ну ну просто вот просто нужен СЖ Если у вас есть СЖ то вы можете закс поть свой локальный веб-сервис в интернет очень круто я я прям честно дико кайфанул Однако Давайте покажу как сделать в том числе статичный домен здесь чтобы он не менялся при разных запусках этой системы на самом деле всё просто это тоже там есть на этом сайте в документации нужно просто добавить тот поддомен который нам нужен Ну то есть вот в данном случае SS Def Air у Server d80 2то localhost 2то 8000 serveo.net жмём Enter и пабам система сразу у меня запустит у вас при первом запуске система попросит вас значит пройти аутентификацию либо через github либо через Google прямо Вот здесь покажется ссылка в терминале вы на эту ссылку нажимаете э подтверждаете вход и всё то есть ну это просто видимо какая-то какая-то минимальная защита для создание статического поддомена в домене serveo.net Вот и и это опять же работает это опять же работает вот мы прямо можем эту историю скопировать в сафари вставить и это замечательная ссылка которая работает по всему интернету И точно также здесь наши картиночки доступны есть ещё вот такой замечательный сервис который называется expose у него 4 4200 звёздочек напт полностью опенсорс най сервис туннелирования написанный на чистом хепе внезапно на хепе и на чистом даже вот не на грязном Красота Вот Однако если мы перейдём на их замечательный сайт expd то мы убедимся в том что там таки есть вкладок pricing таки есть вкладок pricing и мы сможем убедиться что Customs Sub domains доступны только за немного немало 59 баксов на юзера в год что в общем-то не совсем то чего бы нам хотелось Я так понял это возможно можно развернуть на своём сервере учитывая что это Fly Open Source Pure PHP и тогда там провернуть какие-то хитрые настройки для вас это тоже будет бесплатно Может быть но в общем-то это уже не выглядит чем-то простым и лично моих задач не решает Однако если вы хотите поразка вот есть ещё такой замечательный сервис есть ещё вот такое интересное решение tunel то тоде такой вот совершенно замечательный тоже красивый у них сайс Великолепный Однако же тут тоже есть Прай Синг на который если мы м то мы убедимся что res Up 50 за два тугрика собственно в за два тугрика в месяц д турика в месяц вроде как не очень много но тем не менее для создания Я так понял своих статичных поддоменов Здесь тоже требует денег Это тоже не совсем то что мне бы хотелось поэтому дорогие друзья Local tunel и serveo три замечательных сервиса Но теперь я вам покажу как собственно говоря вот на фоне провернуть такую дичь что мы развернёт же веб-сервер прямо на Android телефоне и запом его в интернет чтобы любые пользователи могли этим веб-сервисов немало te Вот такая вот замечательная программка которую я уже показывал в многих своих замечательных видоси Давайте перейдём здесь в какой-нибудь директорию в моём случае это директория storage Test в которой я чего-то уже даже создал Сейчас я вам покажу с вами ж чего именно создал запустим э сессию tmax tmax - это терминальный мультиплексе о котором у меня было множество видосов стареньких на моём канале может быть уже пятилетней практически давности можете посмотреть Если вдруг не смотрели вот тут я где-нибудь оставлю э всплывает директории А в этой директории У нас есть немного немало Файлик Икс HTML которые мы можем при помощи ви Маса открыть и убедиться что здесь вот есть ээ минимальная болванок HTML документов в которой есть строка Привет классна Да классно также у меня здесь есть Python 311 удивительно в котором тоже есть модуль http сервера мы можем запустить этот модуль http сервера прямо прямо на телефоне Why not жмём Enter и запускаем и мы видим что у нас на локал Хосте на тысячном порту тоже запустился веб-сервер который вероятно тоже работает Давайте его прямо здесь на телефоне откроем пишем http 2al H 8000 Оляля И если мы приблизит Привет привет Вот она есть не знаю насколько она вам видна но она тут точно есть это это вот прямо сайт который э работает на моём Android телефоне Я открыл этот же сайт собственно на этом же Android телефоне удивительно Да однако мы же хотим с вами сделать так чтобы этот сайт открывался Повсюду в интернете поэтому Давайте в ти Максе откроем ещё одну вкладок и я предлагаю воспользоваться замечательным сервисом serveo serveo.net для того чтобы расшарить вот этот сайт Повсюду в интернете ssh Def myone 80 localhost 8000 serveo.net запускаем и замечательный сервис serveo дал нам док myone serveo.net который мы попросили Давайте попробуем открыть этот домен уже на компу hps 2.net Оляля и мы видим Привет прямо здесь представляете оно работает пря сайт который разв на Android телефоне замечательным образом отсюда с компьютера и с любого компьютера откроется при этом мы не соединены сейчас в одной VPN сети или ещё как-то нет просто через сервис serveo Наш замечательный веб-ресурс развёрнутый на телефоне расширился по всему интернету красота Ну ладненько дорогие друзья Давайте повысим градус идиотизма и расшарить получится у нас расшарить дн на телефоне Ну собственно кто нам запретит провернуть такую дичь Давайте идекс HTML Мы отсюда Кельм у нас пустая директория Давайте развернем виртуальное окружение Ну можно подключить у меня тут есть Bluetooth клавиатура но так сказать не будем не будем всё по стареньки сделаем с экранной клавиатуры поднимем виртуальное окружение активируем его установим дн Ну или Давайте сначала обновим пиппи пип так сказать обновим пипку новая пипка лучше старой пипки полюба Ну и Давайте пип Ил дн оля-ля что се сечас происходит на телефон ставится джанга при помощи пип Ужас да океюш дн админ Start Project Ну давайте назовём проект Hello почему бы нет создался проект Hello переходим в Hello Давайте Man Run Server Оляля Ну что у нас запустился сервер на тысячном порту красота дорогие друзья Давайте снова [музыка] администратор пишет нам значит пишет нам система Давайте остановим сер Veo выйдем отсюда и убедимся что здесь значит днг что-то не нравится джанга весь кайф мне испортило Ну ладненько А собственно говоря да днг не нравится что у нас в allowed Host не прописан домен myphone serveo.net Ну что же Уважаемый джанга пропишет откроем Hello откроем settings найдём тут H Оляля и пропи здесь наш домен равно mynet замечательно сохраняем поднимаем ран сервер снова и через SS прокиды его наружу обновляем на комте и что мы видим друзья мы видим дн мы видим дн которая ещ раз развёрнуто на Android телефоне что вообще происходит но на которую мы заходим с нашего замечательного компьютера и я повторюсь можем зайти из любого другого устройства подключенного к сети интернет И вот такой вот дич мы можем творить при помощи современных технологий дорогие друзья Надеюсь что было для вас интересно полезно и что-то Возможно даже новое вы здесь узнали ставте лайки пишите Ну и остаёмся на связи до следующих выпусков пока-пока пока-пока