docs: update sysadmin/Linux/Base-znaniy/localtunnel

main
Федоров Дмитрий 2023-11-15 18:12:25 +00:00 committed by Dmitriy Fedorov
parent 7fbdb2a7ba
commit 0dc55644e8
1 changed files with 41 additions and 3 deletions

View File

@ -2,11 +2,49 @@
title: Cервис localtunnel
description:
published: true
date: 2023-11-15T18:11:25.727Z
date: 2023-11-15T18:12:21.370Z
tags:
editor: ckeditor
dateCreated: 2023-11-15T18:11:13.511Z
-->
<h1 class="toc-header" id="header"> Header</h1>
<p>Your content here</p>
<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>