О доступе к сайту на локалхост извне

Настройка, программирование, распределённые вычисления

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 14300
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: О доступе к сайту на локалхост из вне

Непрочитанное сообщение Olej » 18 окт 2019, 22:01

Olej писал(а):
18 окт 2019, 21:46
Это самое то, чтобы эпизодически иметь возможность подключиться к локальному хосту заказчика, чтобы ему там что-то подправить под текущий проект...
Детальная документация ngrok, с примерами использования для разных целей, здесь: Documentation.
Examples
Expose an SSH server listening on the default port

Код: Выделить всё

ngrok tcp 22
Expose a Postgres server listening on the default port

Код: Выделить всё

ngrok tcp 5432
Expose an RDP server listening on the default port

Код: Выделить всё

ngrok tcp 3389

Аватара пользователя
Olej
Писатель
Сообщения: 14300
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: О доступе к сайту на локалхост из вне

Непрочитанное сообщение Olej » 18 окт 2019, 22:23

Olej писал(а):
18 окт 2019, 21:46
А теперь из совершенно другого компьютера (где угодно в Интернет, или со своей LAN) обращаемся по SSH на подготовленный локальный хост:
Это то же, что организация SSH reverse tunneling (обратный туннель SSH). Это ещё один способ организации доступа к локальному компьютеру за NAT.
Как получить доступ к серверу Linux за NAT через обратный туннель SSH
Оригинал: How to access a Linux server behind NAT via reverse SSH tunnel
Автор: Dan Nanni
Дата публикации: May 4, 2015
Перевод: Н.Ромоданов
Дата перевода: сентябрь 2015 г.

Аватара пользователя
Olej
Писатель
Сообщения: 14300
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: О доступе к сайту на локалхост из вне

Непрочитанное сообщение Olej » 19 окт 2019, 16:10

Про то, как работают SSH туннель, и разные варианты его конфигурирования, обстоятельное описание: Подробное описание SSH и примеры использования туннелей
20.09.2016

Аватара пользователя
Olej
Писатель
Сообщения: 14300
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: О доступе к сайту на локалхост из вне

Непрочитанное сообщение Olej » 19 окт 2019, 18:39

Но для реализации реверсного SSH туннеля вам всё равно нужен в любом случае а). промежуточный SSH сервер с белым IP, доступным из любой точки Интернет, и б). на котором у вас есть учётная запись SSH входа.

Проект ngrok, опасаясь отстать и выпасть из рынка, предоставляет себя в качестве точки связи реверсного туннеля SSH, без запуска самой программы ngrok (собственно, без каких-либо дополнительных программ). Что описано здесь: SSH Gateway.

Аватара пользователя
Olej
Писатель
Сообщения: 14300
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: О доступе к сайту на локалхост из вне

Непрочитанное сообщение Olej » 19 окт 2019, 18:47

Olej писал(а):
19 окт 2019, 18:39
Проект ngrok, опасаясь отстать и выпасть из рынка, предоставляет себя в качестве точки связи реверсного туннеля SSH, без запуска самой программы ngrok (собственно, без каких-либо дополнительных программ). Что описано здесь: SSH Gateway.
1. Генерируем свой публичный ключ:

Код: Выделить всё

olej@ACER:~/.ssh$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/olej/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/olej/.ssh/id_rsa.
Your public key has been saved in /home/olej/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:A2PNn4D86Pvw8APgnYTI6bQlaCqh1BmGVUSdScu/UC0 olej@ACER
The key's randomart image is:
+---[RSA 2048]----+
|  o.++o.o        |
| . o ..B. .      |
| oooo.*o+E .     |
|oo*o+..=oo..     |
|=+ = +.oS.o      |
|+ o ..+ ...      |
|.     +. .       |
|       *.        |
|      ..+.       |
+----[SHA256]-----+

Код: Выделить всё

olej@ACER:~/.ssh$ ls -l id*
-rw------- 1 olej olej 1856 окт 19 18:00 id_rsa
-rw-r--r-- 1 olej olej  391 окт 19 18:00 id_rsa.pub

olej@ACER:~/.ssh$ cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCigHn3uVZaJhVefCc35EYNlgElHFGeDDUobVXICc4R7RLenjQ/VEWBFimXcKG+6GZyxFLv+wJW3KgfJM52wiy4ZO3HuYMF2LONZkFGEAIKb0zqrO6l9I7rmBlfU+/2MXF772mr5STjGsDmvF4G8NuGyEieiWbroDVOxF1SxtjiK/1NP+7Ckdc4picp2wARV3d7AZk6ESUZ6C8PfVp+TFmwTKyEYkC9s7nj4+AEXtow/cs6p+KWV6uz9WMLbPwGkPrvdr8RcDiF4vWi6cN5phob+8xCfXGqR27J67QQqywjTr4lbndFK4Pl2TjjL/SZw/kfK7BVIUyYIhboknF7J1V1 olej@ACER
2. Возвращаемся ещё раз на страницу аутентификации проекта ngrok: Your Tunnel Authtoken. И там в форме SSH Keys заполняем копированием полученного id_rsa.pub 2 поля: SSH Key + Description (Description - это olej@ACER, а SSH Key - всё что до него, включая ssh-rsa).
Вложения
ss1.png

Аватара пользователя
Olej
Писатель
Сообщения: 14300
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: О доступе к сайту на локалхост извне

Непрочитанное сообщение Olej » 19 окт 2019, 18:58

3. Примеры команд SSH реверсных туннелей показаны там же на сайте ngrok - Examples.
Для проверки запускаю на своём локальном хосте:

Код: Выделить всё

olej@ACER:~$ ip -4 address show dev enp2s0
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.1.103/24 brd 192.168.1.255 scope global dynamic noprefixroute enp2s0
       valid_lft 130207sec preferred_lft 130207sec
Команда (туннеля) выглядит так:

Код: Выделить всё

olej@ACER:~/.ssh$ ssh -R 80:localhost:80 tunnel.us.ngrok.com http
Warning: Permanently added the RSA host key for IP address '18.188.49.161' to the list of known hosts.

ngrok (via SSH) by @inconshreveable (Ctrl+C to quit)

Account      (Plan: Free)
Region      us
Forwarding  https://cc7f3e3d.ngrok.io
Forwarding  http://cc7f3e3d.ngrok.io
4. Теперь с любого а). внешнего хоста Интернет, б). или с хоста своей LAN через NAT и Интернет, в). или даже с этого localhost через NAT и Интернет - обращаюсь браузером по одному из показанных URL (HTTP или HTTPS)...
ss2.png
WEB сервер, работающий на localhost доступен во всём Интернет.

Аватара пользователя
Olej
Писатель
Сообщения: 14300
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: О доступе к сайту на локалхост извне

Непрочитанное сообщение Olej » 19 окт 2019, 19:14

Olej писал(а):
19 окт 2019, 18:58
4. Теперь с любого а). внешнего хоста Интернет, б). или с хоста своей LAN через NAT и Интернет, в). или даже с этого localhost через NAT и Интернет - обращаюсь браузером по одному из показанных URL (HTTP или HTTPS)...
5. А вот так я делаю доступ по SSH извне к локальному хосту работающему за NAT:

Код: Выделить всё

olej@ACER:~/.ssh$ ssh -R 0:localhost:22 tunnel.us.ngrok.com tcp 22
Warning: Permanently added the RSA host key for IP address '3.15.53.92' to the list of known hosts.
Allocated port 12941 for remote forward to localhost:22

ngrok (via SSH) by @inconshreveable (Ctrl+C to quit)

Account      (Plan: Free)
Region      us
Forwarding  tcp://0.tcp.ngrok.io:12941

TCP connection opened
И теперь из внешнего хоста подключение по SSH:

Код: Выделить всё

[olej@DELL ~]$ ssh -l olej 0.tcp.ngrok.io -p12941
The authenticity of host '[0.tcp.ngrok.io]:12941 ([18.188.14.65]:12941)' can't be established.
ECDSA key fingerprint is SHA256:+SB/PcK+CfPw5Ki0QF72YSeB4YyZVRj3SIMg85iR260.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[0.tcp.ngrok.io]:12941,[18.188.14.65]:12941' (ECDSA) to the list of known hosts.
olej@0.tcp.ngrok.io's password:
Linux ACER 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u1 (2019-09-20) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Oct 19 18:27:36 2019 from 192.168.1.105

olej@ACER:~$ hostname
ACER

olej@ACER:~$ uname -a
Linux ACER 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u1 (2019-09-20) x86_64 GNU/Linux

Аватара пользователя
Olej
Писатель
Сообщения: 14300
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: О доступе к сайту на локалхост извне

Непрочитанное сообщение Olej » 19 окт 2019, 19:16

Olej писал(а):
19 окт 2019, 18:58
3. Примеры команд SSH реверсных туннелей показаны там же на сайте ngrok - Examples.
Их SSH туннели при отсутсвии активности в канале весьма быстро закрывают соединение (порядка 5 или 10 минут).

Аватара пользователя
Olej
Писатель
Сообщения: 14300
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: О доступе к сайту на локалхост извне

Непрочитанное сообщение Olej » 07 янв 2020, 18:37

Olej писал(а):
18 окт 2019, 21:46
Это самое то, чтобы эпизодически иметь возможность подключиться к локальному хосту заказчика, чтобы ему там что-то подправить под текущий проект...
Возвращаюсь к ngrok как самому простому-быстрому способу представить в наружный Интернет (для любых пользователей) локальную (тестовую) копию этого вот форума, на котором отрабатываются расширения phpBB:

Код: Выделить всё

olej@ACER:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/olej/.bin

olej@ACER:~$ which ngrok
/home/olej/.bin/ngrok

Код: Выделить всё

olej@ACER:~$ ngrok 80
NAME:
   ngrok - tunnel local ports to public URLs and inspect traffic

DESCRIPTION:
    ngrok exposes local networked services behinds NATs and firewalls to the
    public internet over a secure tunnel. Share local websites, build/test
    webhook consumers and self-host personal services.
    Detailed help for each command is available with 'ngrok help <command>'.
    Open http://localhost:4040 for ngrok's web interface to inspect traffic.

EXAMPLES:
    ngrok http 80                    # secure public URL for port 80 web server
    ngrok http -subdomain=baz 8080   # port 8080 available at baz.ngrok.io
    ngrok http foo.dev:80            # tunnel to host:port instead of localhost
    ngrok http https://localhost     # expose a local https server
    ngrok tcp 22                     # tunnel arbitrary TCP traffic to port 22
    ngrok tls -hostname=foo.com 443  # TLS traffic for foo.com to port 443
    ngrok start foo bar baz          # start tunnels from the configuration file

VERSION:
   2.3.35

AUTHOR:
  inconshreveable - <alan@ngrok.com>

COMMANDS:
   authtoken    save authtoken to configuration file
   credits      prints author and licensing information
   http         start an HTTP tunnel
   start        start tunnels by name from the configuration file
   tcp          start a TCP tunnel
   tls          start a TLS tunnel
   update       update ngrok to the latest version
   version      print the version string
   help         Shows a list of commands or help for one command

ERROR:  Unrecognized command: 80
Это небольшенькая ошибочка вышла...

Аватара пользователя
Olej
Писатель
Сообщения: 14300
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: О доступе к сайту на локалхост извне

Непрочитанное сообщение Olej » 07 янв 2020, 18:41

Olej писал(а):
07 янв 2020, 18:37
Это небольшенькая ошибочка вышла...
Вот так:

Код: Выделить всё

olej@ACER:~$ ngrok http 80
ng0.png
И подключаемся к форуму по внешнему URL - http://bca98d9b.ngrok.io/:
ng1.png

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость