¿Configurar un nombre de host web local resoluble?

0

Tengo una situación como esta:

raspi3-netw-02

El Raspberry Pi 3 está configurado como un punto de acceso WiFi (según https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/ ) y un Servidor web. Me gustaría darle un nombre de host, por ejemplo myrpi, que se pueda resolver en la red local desde cualquier cliente, independientemente de si están conectados por cable o inalámbrico, de modo que cuando ingrese la dirección web http://myrpien cualquier navegador (Firefox, Chrome) en cualquier PC local (Windows, Ubuntu), recibiría la página web en el puerto 80 en Raspberry Pi, sin cambiar nada en las computadoras cliente web (es decir, la PC con Windows y Ubuntu en la imagen, si el RPi es un servidor web )

Primero encontré esto:

Entonces, lo seguí. Ahora tengo en el RPi:

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

Luego lo hice sudo apt-get install avahi-daemonen el RPi y reinicié.

Luego intento desde la línea de comandos en la PC Ubuntu (conectado al RPi como un cliente 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>
...

Por lo tanto, esto se ve bien hasta ahora, PERO si ingreso http://myrpi.local/como dirección web en Firefox o Chromium en Ubuntu PC, entonces aparece "Servidor no encontrado".

Esto puede tener algo que ver con el estado de Avahi en Ubuntu:

[SOLUCIONADO] No se puede acceder a los servidores en el dominio .local en la LAN corporativa

Estos no funcionan en Ubuntu. Esto se debe a que Ubuntu instala, de manera predeterminada, el sistema mDNS AVAHI Zeroconf, lo configura para "poseer" el dominio .local y lo prioriza por delante del DNS normal en el orden de resolución del nombre de host.

Entonces, pensé, realmente no me importa haber .localagregado el nombre de dominio, solo pensé que así es como se supone que deben hacerse las cosas. Así que intenté llamar al nombre de host directamente desde la PC 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.

Aquí ni siquiera wgetfunciona (y claramente, tampoco lo hacen los navegadores Firefox o Chromium), aunque está claro por qué, aquí myrpiresolvió 127.0.1.1, que es lo que está escrito literalmente en RPi, /etc/hostspero una vez en la computadora portátil Ubuntu, la misma dirección significa " este portátil ", ya que es un bucle invertido, y como no tengo ningún servidor web ejecutándose en el portátil Ubuntu, todo el proceso falla.

Ahora, aquí está lo curioso: en esta configuración, la PC con Windows (creo que Windows 7), se myrpi.localresuelve 192.168.0.51, ¿y la página web http://myrpi.local/funciona bien tanto en Firefox como en Chrome en Windows?

Como medida final, intenté cambiar /etc/nsswitch.confel RPi:

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

... y reiniciar, sin embargo, los navegadores en Ubuntu todavía no pueden acceder http://myrpi/o http://myrpi.local/. Mi /etc/resolv.confen el RPi todavía no ha cambiado.

Entonces, ¿cómo puedo dar un nombre ( .localo no), resoluble en la red local, a la Raspberry Pi, para que cualquier otra PC en la misma red local pueda recuperar el contenido del servidor web de la Raspberry Pi, independientemente del sistema operativo y el navegador en ejecución en esa PC?

sdbbs
fuente
1
La solución más simple es configurar la PC Ubuntu / Windows como el servidor DNS para toda la red. Al hacerlo, puede definir nombres de host para la red y señalarlos a la dirección IP que desee.
Ramhound
Gracias @Ramhound - pero esto RPI es tal vez no va a ser utilizado en la misma red local que el que se describe en la pregunta, por lo que necesita una solución más general - en caso de existir ...
sdbbs
1
Si ese es el caso, tendrá que editar el archivo de hosts en sí y agregar una entrada para cada cliente. Esto significa que sus clientes y servidores deberán tener una dirección IP de intranet estática, y cada vez que agregue un cliente a la red, deberá actualizar el archivo. Por supuesto, si el RPi no va a estar en la red, los clientes de la red no podrán comunicarse con él de todos modos.
Ramhound
2
Todas las anteriores. Si no puede usar un servidor DNS central donde le agrega / elimina máquinas, entonces debe agregar / eliminar los nombres de host para cada máquina en cada cliente (o al menos los servidores DHCP).
Ramhound
1
Lo que es un poco extraño es que solo cambiaste el archivo de hosts RPi pero ves ese cambio en la máquina Ubuntu. Supongo que (como lo mencionó) que su instalación de mDNS no se maneja correctamente en su máquina Ubuntu, pero Windows entiende cómo trabajar con ella. Si realmente desea que esto funcione para todas las máquinas sin una configuración especial, es probable que necesite configurar un servidor DNS completo en el Pi y dejar que su enrutador lo anuncie como el servidor DNS para usar.
Seth