Страница 1 из 5

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

Добавлено: 07 окт 2019, 15:57
Muravev
В логах локального веб-сервера я обнаружил строки:

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

187.145.164.155 - - [07/Oct/2019:14:54:14 +0300] "GET / HTTP/1.0" 403 463 "-" "-"
212.83.163.170 - - [07/Oct/2019:15:23:43 +0300] "GET / HTTP/1.1" 403 447 "-" "Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"
212.83.163.170 - - [07/Oct/2019:15:23:43 +0300] "GET /HNAP1/ HTTP/1.1" 403 453 "http://2.92.88.196/" "Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"
60.16.223.159 - - [07/Oct/2019:15:24:45 +0300] "GET / HTTP/1.0" 403 463 "-" "-"
Получается к моему сайту можно обращаться из интернета? Я раньше думал для этого нужен белый платный ip-адрес.

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

Добавлено: 07 окт 2019, 18:50
Olej
Muravev писал(а):
07 окт 2019, 15:57
Получается к моему сайту можно обращаться из интернета? Я раньше думал для этого нужен белый платный ip-адрес.
Нет, так просто это не бывает.
К вашему серверу на частном IP адресе обращения извне, из Интернет не может быть!
Частный IP-адрес:
IPv4 § Назначения подсетей
10.0.0.0 — 10.255.255.255 (маска подсети для бесклассовой (CIDR) адресации: 255.0.0.0 или /8)
100.64.0.0 — 100.127.255.255 (маска подсети 255.192.0.0 или /10) - Данная подсеть рекомендована согласно RFC 6598 для использования в качестве адресов для CGN (Carrier-Grade NAT).
172.16.0.0 — 172.31.255.255 (маска подсети: 255.240.0.0 или /12)
192.168.0.0 — 192.168.255.255 (маска подсети: 255.255.0.0 или /16)
Есть, делаются способы выведения локально размещённых серверов в Интернет, но все эти способы связаны с большими изощрениями! Там нужно решать целый ряд проблем.

Про некоторые способы уже было обсуждение, см. доступ к хосту снаружи.
Если интересно - можем продолжить обсуждения...

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

Добавлено: 07 окт 2019, 20:06
Muravev
Я открыл один из сайтов "узнать свой ip" и оказалось что у меня публичный ip, хотя я его не покупал, а стоит он у моего провайдера 150 руб/мес, впрочем возможно он не статичный и каждый день будет меняться.

А раньше я пробовал сделать доступным свой локальный сайт в интернете путём запуска программы miredo, которая подключается к специальному серверу и бесплатно предоставляет пользователю публичный ipv6 адрес, но не статичный.

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

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

Добавлено: 08 окт 2019, 00:15
Olej
Muravev писал(а):
07 окт 2019, 20:06
Я открыл один из сайтов "узнать свой ip" и оказалось что у меня публичный ip,
Это не ваш IP - это IP вашего провайдера в Интернет.
Свой IP вы можете видеть только такой:

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

$ ip address
Muravev писал(а):
07 окт 2019, 20:06
А раньше я пробовал сделать доступным свой локальный сайт в интернете путём запуска программы miredo, которая подключается к специальному серверу и бесплатно предоставляет пользователю публичный ipv6 адрес, но не статичный.
Таких программ (проектов) несколько - сначала вы подключаетесь к ним, а потом они работают для вас как прокси.
К сожалению, те проекты этого сорта, которые попадались мне, они все ... "с душком".

Но это уже искусственные инструменты, и мы можем обсудить и отобрать из них.

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

Добавлено: 08 окт 2019, 19:03
Olej
Olej писал(а):
08 окт 2019, 00:15
Таких программ (проектов) несколько - сначала вы подключаетесь к ним, а потом они работают для вас как прокси.
К сожалению, те проекты этого сорта, которые попадались мне, они все ... "с душком".
Muravev писал(а):
07 окт 2019, 20:06
А раньше я пробовал сделать доступным свой локальный сайт в интернете путём запуска программы miredo, которая подключается к специальному серверу и бесплатно предоставляет пользователю публичный ipv6 адрес, но не статичный.

Статичный получить сложнее, для этого требуется регистрироваться на другом сайте, кажется он называется хурикане электрик, но я подумал, зачем они спрашивают у меня домашний адрес и не стал регистрироваться.
Таких "доброхотов", которые предлагают регистрацию на своём ресурсе для предоставления временного URL для доступа - довольно много.
Но их хорошо бы пересмотреть на предмет можно ли с ними иметь дело.

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

Добавлено: 08 окт 2019, 21:28
Olej
Olej писал(а):
08 окт 2019, 00:15
Но это уже искусственные инструменты, и мы можем обсудить и отобрать из них.
Эти возможности не годятся как "боевые" решения, стационарные ресурсы и т.д.
Но это очень неплохо для возможностей отработки, тестирования или демонстрации разрабатываемых приложений и проектов.

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

Добавлено: 08 окт 2019, 22:53
Olej
Olej писал(а):
08 окт 2019, 19:03
Таких "доброхотов", которые предлагают регистрацию на своём ресурсе для предоставления временного URL для доступа - довольно много.
Но их хорошо бы пересмотреть на предмет можно ли с ними иметь дело.
1. ngrok : Download & setup ngrok
NGROK
Ngrok — это платформа, которая с помощью установленной утилиты, позволяет, организовать удалённый доступ на веб-сервер или какой-то другой сервис, запущенный ПК. Доступ организуется через созданный при запуске ngrok безопасный туннель. ПК, при этом, может находиться за NAT’ом, и не иметь статического IP адреса.
...
2. miredo: Miredo: Teredo IPv6 tunneling for Linux and BSD (проект не развивается с 2013г.)
MIREDO
Miredo (miredo-client) — утилита для работы с Teredo — протоколом для передачи IPv6 пакетов через IPv4 сети.

С его помощью мы можем быстро настроить IPv6 подключение там, где оно не предусмотрено по тем или иным причинам. Для этого, достаточно установить и запустить соответствующее ПО (я делаю это на Fedora 29):
Miredo: установка IPv6 в GNU/Linux за 1 минуту
В современных дистрибутивах GNU/Linux существует возможность получить автоматически настроенный IPv6-туннель, введя всего одну команду – даже если ваш провайдер не поддерживает IPv6 или предоставляет выход в Интернет только через свой NAT. Достаточно лишь установить программу под названием Miredo
3. bosixnet: BOSixNet – Build Own IPv6 Network

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

olej@ACER:~$ aptitude search bosixnet
p   bosixnet-daemon                                                      - Build Own IPv6 Network (client utilities)                                     
p   bosixnet-webui                                                       - Build Own IPv6 Network (server utilities)                

olej@ACER:~$ apt show bosixnet-daemon
Package: bosixnet-daemon
Version: 2.0-1
Priority: optional
Section: net
Source: bosixnet
Maintainer: Boris Pek <tehnick@debian.org>
Installed-Size: 39,9 kB
Depends: curl, lsb-base (>= 3.0-6), net-tools, sed (>= 4.2)
Suggests: bosixnet-webui, miredo | gogoc
Homepage: https://github.com/tehnick/bosixnet
Download-Size: 10,2 kB
APT-Sources: http://deb.debian.org/debian buster/main amd64 Packages
Description: Build Own IPv6 Network (client utilities)
 Project should be useful when you have to administer many computers
 distributed through different networks and connected via NAT. In most of
 cases you may just install miredo, gogoc or any other tunnel broker's
 software and these computers will be available via IPv6 addresses. BOSixNet
 includes the collection of tools for automatic updating the list of such
 hosts.
 .
 This package provides the shell script which periodically sends information
 about current IPv6 address to remote server and updates local /etc/hosts
 based on data received from that remote server. It is expected that
 bosixnet-webui is launched on that remote server.
4. gogoс:
Ipv6 на Куантане
(но по моим предположениям, gogoс на сегодня умер - сейчас по его URL размещаются какие-то кулинарные сайты)

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

Добавлено: 09 окт 2019, 16:41
Olej
Olej писал(а):
08 окт 2019, 22:53
1. ngrok : Download & setup ngrok
NGROK
Ngrok — это платформа, которая с помощью установленной утилиты, позволяет, организовать удалённый доступ на веб-сервер или какой-то другой сервис, запущенный ПК. Доступ организуется через созданный при запуске ngrok безопасный туннель. ПК, при этом, может находиться за NAT’ом, и не иметь статического IP адреса.
...

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

[olej@xenix DDNS]$ ls -l ngrok-stable-linux-amd64.zip 
-rw-rw-r-- 1 olej olej 13773305 окт  9 16:28 ngrok-stable-linux-amd64.zip
После разархивирования:

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

[olej@xenix DDNS]$ file ngrok 
ngrok: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=WiQDkmDKISYhEPN12k-3/C6vlWFNDOR0o0u0x3X26/VIi6gzoMVXoqHTYgeFTz/LKswZ3xo2O5g2OnUiOwZ, not stripped

[olej@xenix DDNS]$ chmod a+x ngrok 

[olej@xenix DDNS]$ ls -l ngrok 
-rwxr-xr-x 1 olej olej 26683198 окт  8 22:55 ngrok

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

[olej@xenix DDNS]$ ./ngrok 
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

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

Добавлено: 09 окт 2019, 16:49
Olej
Запуск:

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

[olej@xenix DDNS]$ ip address show dev enp2s0
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 8c:89:a5:74:f4:a5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.20/24 brd 192.168.1.255 scope global noprefixroute enp2s0
       valid_lft forever preferred_lft forever
    inet6 fe80::8e89:a5ff:fe74:f4a5/64 scope link 
       valid_lft forever preferred_lft forever

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

[olej@xenix DDNS]$ ./ngrok http 80

ngrok by @inconshreveable                                                                                                                              (Ctrl+C to quit)
                                                                                                                                                                       
Session Status                online                                                                                                                                   
Session Expires               7 hours, 55 minutes                                                                                                                      
Version                       2.3.35                                                                                                                                   
Region                        United States (us)                                                                                                                       
Web Interface                 http://127.0.0.1:4040                                                                                                                    
Forwarding                    http://2aaa34c8.ngrok.io -> http://localhost:80                                                                                          
Forwarding                    https://2aaa34c8.ngrok.io -> http://localhost:80                                                                                         
                                                                                                                                                                       
Connections                   ttl     opn     rt1     rt5     p50     p90                                                                                              
                              0       0       0.00    0.00    0.00    0.00                                                                                             
HTTP Requests                                                                                                                                                          
-------------                                                                                                                                                          
                                                                                                                                                                       
GET /favicon.ico               502 Bad Gateway                                                                                                                         
GET /                          502 Bad Gateway                                                                                                                         
А теперь на другом компьютере LAN, через роутер, NAT:
ng1.png
Это очень интересный результат ... поскольку я вспомнил, что на том сервере 192.168.1.20 действительно не работает сервер WWW...

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

Добавлено: 09 окт 2019, 17:10
Olej
Но я сделаю хитрее - запущу Python2 WEB справочную систему (HELP) на произвольном порту 40000:

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

[olej@xenix AplitSoft]$ pydoc2 -p 40000 &
[1] 7340
После чего запускаем:

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

[olej@xenix DDNS]$ ./ngrok http 40000
ngrok by @inconshreveable                                                                                                                              (Ctrl+C to quit)
                                                                                                                                                                       
Session Status                online                                                                                                                                   
Session Expires               7 hours, 56 minutes                                                                                                                      
Version                       2.3.35                                                                                                                                   
Region                        United States (us)                                                                                                                       
Web Interface                 http://127.0.0.1:4040                                                                                                                    
Forwarding                    http://9cac5cd5.ngrok.io -> http://localhost:40000                                                                                       
Forwarding                    https://9cac5cd5.ngrok.io -> http://localhost:40000                                                                                      
                                                                                                                                                                       
Connections                   ttl     opn     rt1     rt5     p50     p90                                                                                              
                              2       0       0.00    0.00    0.02    0.03                                                                                             
                                                                                                                                                                       
HTTP Requests                                                                                                                                                          
-------------                                                                                                                                                          
                                                                                                                                                                       
GET /favicon.ico               200 OK                                                                                                                                  
GET /                          200 OK      
И на совершенно другом компьютере, через Интернет, по внешней URL ссылке http://9cac5cd5.ngrok.io - получаем справочную страницу Python, формируемую по HTTP запросу внутренним WEB сервером Python!