Настраиваете разрешимое локальное имя веб-хоста?

Настраиваете разрешимое локальное имя веб-хоста?

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

raspi3-netw-02

Raspberry Pi 3 настроен как точка доступа WiFi (согласно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 PC, то получаю сообщение «Сервер не найден».

Это может быть связано с состоянием Avahi в Ubuntu:

[РЕШЕНО] Невозможно получить доступ к серверам в домене .local в корпоративной локальной сети

Они не работают в Ubuntu. Это происходит потому, что Ubuntu по умолчанию устанавливает систему AVAHI Zeroconf mDNS, настраивает ее на «владение» доменом .local и ставит ее выше обычного DNS в порядке разрешения имен хостов.

Итак, я подумал, что мне все равно, что я .localдобавил к имени домена - я просто думал, что так все и должно быть. Поэтому я попробовал вызвать имя хоста напрямую с Ubuntu PC:

$ 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, что и написано в RPi /etc/hostsдословно - но на ноутбуке с Ubuntu тот же адрес означает "этот ноутбук", поскольку он является петлевым, и поскольку у меня нет работающего веб-сервера на ноутбуке с Ubuntu, весь процесс завершается неудачей.

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

В качестве последней меры я попробовал изменить /etc/nsswitch.confна RPi:

# 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 по-прежнему не изменился.

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

Связанный контент