wiki-js/sysadmin/Linux/Base-znaniy/localtunnel.html

51 lines
7.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
title: Cервис localtunnel
description:
published: true
date: 2023-11-15T18:12:21.370Z
tags:
editor: ckeditor
dateCreated: 2023-11-15T18:11:13.511Z
-->
<p>Узнал про необычный и полезный сервис localtunnel, решил с вами поделиться. Делает он простую вещь - пробрасывает во внешний мир какой-то локальный web сервис. Например, у вас крутится приложение на 127.0.0.1:80, а вы хотите его кому-то показать через интернет, не меняя настроек, пробросов портов и т.д. Localtunnel вам поможет. Работает он на NodeJS.</p>
<p>Установка:</p>
<figure class="table" style="height:auto;width:1468px;">
<table style="background-color:rgb(255, 255, 255);border-bottom:0px;border-left:0px;border-right:0px;border-top:0px;">
<tbody>
<tr>
<td style="border-bottom:0px;border-left:0px;border-right:0px;border-top:0px;height:auto;padding:0px 0px 0px 15px;width:1453px;">
<p><code>dnf module enable</code> <code>nodejs:14</code></p>
<p><code>dnf install</code> <code>nodejs</code></p>
<p><code>npm install</code> <code>-g localtunnel</code></p>
</td>
</tr>
</tbody>
</table>
</figure>
<p>&nbsp;</p>
<p>Для того, чтобы пробросить своё приложение, запускаете localtunnel:</p>
<figure class="table" style="height:auto;width:1468px;">
<table style="background-color:rgb(255, 255, 255);border-bottom:0px;border-left:0px;border-right:0px;border-top:0px;">
<tbody>
<tr>
<td style="border-bottom:0px;border-left:0px;border-right:0px;border-top:0px;height:auto;padding:0px 0px 0px 15px;width:1453px;"><code>lt --port 80</code></td>
</tr>
</tbody>
</table>
</figure>
<p>&nbsp;</p>
<p>После запуска получите url вида <a href="https://odd-fireant-71.loca.lt/">https://odd-fireant-71.loca.lt</a> Открыв его, вы увидите свое приложение, работающее на 127.0.0.1:80. Проверить очень просто. Я запустил nginx на localhost и пробросил его.</p>
<p>Мне показался сервис очень полезным. Лично мне бы пригодился платный сервис на его основе со своей отдельной авторизацией. Прямо сейчас стоит задача опубликовать в интернет специфичный сервис, который работает локально. Просто как есть опубликовать в интернет нельзя, он не развивается и не обновляется, работает на <a href="http://asp.net/">asp.net</a>. Через nginx proxy корректно не заработал. Принял решение через vpn делать доступ, но это лишние проблемы по настройке пользователей. Но ничего лучше и безопаснее не придумал.</p>
<p>Сайт -https://theboroer.github.io/localtunnel-www/<br>Исходники - <a href="https://github.com/localtunnel/localtunnel">https://github.com/localtunnel/localtunnel</a></p>
<p>&nbsp;</p>
<p>Позавчера рассказывал про сервис localtunnel (<a href="https://t.me/srv_admin/1477">https://t.me/srv_admin/1477</a>). Я подобный сервис увидел впервые, просто не знал о нём. Нашлось много людей, которые зачем-то стали доказывать, что это плохая идея, небезопасно, надо пробрасывать порты, ssh туннели и т.д. Можно много чего сделать, но только это немного другой подход.</p>
<p>Как оказалось, подобный сервис очень востребован и популярен. Существует даже в реализации от Cloudflare под названием Cloudflare Argo Tunnel.</p>
<p><a href="https://developers.cloudflare.com/pages/how-to/preview-with-cloudflare-tunnel">https://developers.cloudflare.com/pages/how-to/preview-with-cloudflare-tunnel</a></p>
<p>Если поднимать вопрос доверия и безопасности, то получается и Cloudflare доверять нельзя, и любой защите от ddos, которая весь траф через себя пропускает. И облачным провайдерам, у которых есть полный доступ к вашим виртуалкам и данным внутри них, если вы не используете шифрование, а в некоторых случаях даже если используете. В общем, тема для дискуссии неконструктивная. Каждый сам в конкретном случае должен решить для себя, кому он доверяет и на какие риски готов пойти.</p>
<p>Установить Cloudflare Tunnel очень просто. Есть deb и rpm пакеты (<a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation">https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation</a>), докер образ (<a href="https://hub.docker.com/r/cloudflare/cloudflared">https://hub.docker.com/r/cloudflare/cloudflared</a>).<br>Как им пользоваться, рассказано отдельно (<a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide">https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide</a>). В общем случае последовательность действий следующая:</p>
<p>1. Устанавливаете Cloudflare Tunnel на компьютер.<br>2. Авторизуетесь в приложении с помощью своего аккаунта в Cloudflare.<br>3. Создаёте туннель и связываете его со своей учёткой.<br>4. Настраиваете конфиг туннеля, где указываете свой локальный сервис и его привязку к созданному ранее туннелю.<br>5. Связываете туннель со своим доменным именем, указанным в CNAME и запускаете.</p>
<p>Если доверяете cloudflare, то такое решение можно использовать и на постоянку. Выглядит достаточно безопасно. Вам вообще не нужно настраивать доступ из интернета на свой веб сервер. Даже tls сертификаты не нужны, если готовы гнать нешифрованный траф в Cloudflare. Последний сам выдаст бесплатный сертификат для конечной публикации.</p>
<p>Если я правильно понял, то для того, чтобы пользоваться Argo Tunnel бесплатно, нужно зарегистрировать Cloudflare For Teams free subscription.</p>
<figure class="image"><img src="/attachments/base/2.png"></figure>