Налаштування дозволеного локального імені веб-хоста?


0

У мене така ситуація:

raspi3-netw-02

Raspberry Pi 3 налаштовується як точка доступу до Wi-Fi (відповідно до https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/ ) та веб-сервер. Я хотів би дати йому ім'я хоста, скажімо myrpi, яке буде дозволено в локальній мережі від будь-якого клієнта - незалежно від того, підключений вони дротовим чи бездротовим - таким, що коли я ввожу веб-адресу http://myrpiв будь-який браузер (Firefox, Chrome) будь-який локальний ПК (Windows, Ubuntu), я отримав би веб-сторінку, що обслуговується в порту 80 на Raspberry Pi - не змінюючи нічого на комп’ютерах веб-клієнтів (тобто ПК із Windows та Ubuntu на зображенні, якщо RPi - це веб-сервер )

Спочатку я знайшов це:

Отже, я пішов по цьому. Тепер у мене на RPi:

  • В /etc/hosts->127.0.1.1 myrpi
  • В /etc/hostname->myrpi

Потім я зробив sudo apt-get install avahi-daemonна RPi і перезавантажився.

Потім я спробую з командного рядка на ПК Ubuntu (підключений до RPi як клієнт WiFi):

$ ping myrpi.local
PING myrpi.local (172.24.1.1) 56(84) bytes of data.
64 bytes from 172.24.1.1: icmp_seq=1 ttl=64 time=1.54 ms
...
$ wget -O- myrpi.local
Resolving myrpi.local (myrpi.local)... 172.24.1.1
Connecting to myrpi.local (myrpi.local)|172.24.1.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
...
<p>This is the default web page for this server.</p>
...

Таким чином, це виглядає на сьогодні добре, АЛЕ якщо я введу http://myrpi.local/як веб-адресу або Firefox чи Chromium на ПК Ubuntu, тоді я отримую "Сервер не знайдено".

Це може бути пов'язане зі станом Avahi на Ubuntu:

[SOLVED] Неможливо отримати доступ до серверів у домені .local у корпоративній локальній мережі

вони не працюють в Ubuntu. Це відбувається тому, що Ubuntu за замовчуванням встановлює систему mDNS AVAHI Zeroconf Zeroconf, налаштовує її на "володіння" доменом .local та надає пріоритет перед звичайним DNS у порядку вирішення імені хоста.

Отже, я подумав, мені не дуже важливо .localдодавати до доменного імені - я просто подумав, що так потрібно робити. Тому я спробував зателефонувати на ім'я хоста безпосередньо з ПК Ubuntu:

$ ping myrpi
PING myrpi (127.0.1.1) 56(84) bytes of data.
64 bytes from myUbuntuLaptop (127.0.1.1): icmp_seq=1 ttl=64 time=0.022 ms
...
$ wget -O- http://myrpi/
--2017-01-26 13:38:56--  http://myrpi/
Resolving myrpi (myrpi)... 127.0.1.1
Connecting to myrpi (myrpi)|127.0.1.1|:80... failed: Connection refused.

Тут навіть не wgetпрацює (і, зрозуміло, не працюють ні браузери Firefox, ні Chromium), хоча зрозуміло, чому - тут myrpiвирішено до 127.0.1.1, що написано у /etc/hostsдослівному режимі RPi - але колись на ноутбуці Ubuntu одна і та ж адреса означає " цей ноутбук ", як це циклічний зворотний зв'язок, і оскільки у мене немає веб-сервера, який працює на ноутбуці Ubuntu, весь процес виходить з ладу.

Тепер - ось найцікавіше: у цій програмі ПК з Windows (я думаю, що Windows 7) myrpi.localвирішує 192.168.0.51- а веб-сторінка справно http://myrpi.local/працює як у Firefox, так і в Chrome у Windows ?!

Як остаточний захід, я спробував змінити /etc/nsswitch.confRPi:

# hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4 # original
hosts:          files dns mdns4 mdns4_minimal

... і перезавантаження - однак, браузери на Ubuntu досі не можуть отримати доступ http://myrpi/або http://myrpi.local/. Мій /etc/resolv.confна RPi все ще незмінний.

Отже, як я можу дати ім'я ( .localчи ні), яке можна вирішити в локальній мережі, до Raspberry Pi - щоб будь-який інший ПК у тій самій локальній мережі міг отримати вміст веб-сервера з Raspberry Pi, незалежно від операційної системи та браузера на цьому ПК?


1
Найпростіше рішення - налаштувати ПК Ubuntu / Windows як сервер DNS для всієї мережі. Роблячи це, ви можете визначити імена хостів для мережі та вказати їх на будь-яку ip адресу, яку ви хочете.
Рамхаунд

Дякую @Ramhound - але цей RPi, можливо, не буде використовуватися в тій же локальній мережі, що описана в питанні, тому мені потрібно більш загальне рішення - якщо таке існує ...
sdbbs

1
У такому випадку вам доведеться відредагувати сам файл хостів та додати запис для кожного клієнта. Це означає, що ваші клієнти та сервери повинні мати статичну ip-адресу інтрамережі, і кожного разу, коли ви додасте клієнта до мережі, вам доведеться оновлювати файл. Звичайно, якщо RPi не буде в мережі, то клієнти в мережі не зможуть спілкуватися з ним у будь-якому разі.
Рамхаунд

2
Все вищеперераховане. Якщо ви не можете використовувати центральний сервер DNS, де ви додаєте / видаляєте машини до нього, вам доведеться додати / видалити імена хостів для кожної машини кожного клієнта (або принаймні серверів DHCP).
Рамхаунд

1
Що дивно, що ви змінили лише файл хостів RPi, але бачите ці зміни на машині Ubuntu. Моє припущення буде (як ви вже згадували), що ваша установка mDNS не працює належним чином на вашій машині Ubuntu, але Windows розуміє, як з нею працювати. Якщо ви дійсно хочете, щоб це працювало на всіх машинах без спеціальної конфігурації, вам, ймовірно, потрібно налаштувати повноцінний сервер DNS на Pi і дозволити вашому маршрутизатору оголосити його як DNS-сервер для використання.
Сет
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.