
Tengo una situación como esta:
La Raspberry Pi 3 está configurada como un punto de acceso WiFi (segúnhttps://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á conectado por cable o de forma inalámbrica, de modo que cuando ingrese la dirección web http://myrpi
en cualquier navegador (Firefox, Chrome) en En cualquier PC local (Windows, Ubuntu), obtendría la página web en el puerto 80 de la 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:
- http://www.howtogeek.com/167190/how-and-why-to-assign-the-.local-domain-to-your-raspberry-pi/
- http://www.howtogeek.com/167195/how-to-change-your-raspberry-pi-or-other-linux-devices-hostname/
Así que 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-daemon
en el RPi y reinicié.
Luego intento desde la línea de comando en la PC con Ubuntu (conectada al RPi como 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>
...
Entonces, esto se ve bien hasta ahora, PERO si ingreso http://myrpi.local/
como dirección web en Firefox o Chromium en una PC con Ubuntu, aparece "Servidor no encontrado".
Esto puede tener algo que ver con el estado de Avahi en Ubuntu:
[SOLUCIONADO] No puedo acceder a servidores en el dominio .local en la LAN corporativa
Estos no funcionan en Ubuntu. Esto se debe a que Ubuntu instala, de forma predeterminada, el sistema mDNS AVAHI Zeroconf, lo configura para que sea "dueño" del dominio .local y lo prioriza por delante del DNS normal en el orden de resolución del nombre de host.
- 173804 – [rfe] Agregar soporte para Bonjour (Rendezvous/zeroconfig) al navegador
- https://stackoverflow.com/questions/29637622/resolve-mdns-local-url-in-browser-address-bar
- La versión para PC de Google Chrome no reconoce el nombre de dominio ".local"
Entonces pensé, realmente no me importa haberlo .local
agregado al nombre de dominio; simplemente pensé que así es como se supone que deben hacerse las cosas. Entonces intenté llamar al nombre de host directamente desde la PC con 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 wget
funciona (y claramente, tampoco lo hacen los navegadores Firefox o Chromium), aunque está claro por qué - aquí myrpi
resuelto a 127.0.1.1, que es lo que está escrito textualmente en RPi /etc/hosts
- pero una vez en el portátil Ubuntu, la misma dirección significa " esta computadora portátil", ya que es de bucle invertido, y como no tengo ningún servidor web ejecutándose en la computadora portátil Ubuntu, todo el proceso falla.
Ahora, aquí está lo curioso: en esta configuración, la PC con Windows (creo que Windows 7) myrpi.local
se resuelve 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.conf
en el RPi:
# hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 # original
hosts: files dns mdns4 mdns4_minimal
... y reiniciando; sin embargo, los navegadores de Ubuntu aún no pueden acceder a http://myrpi/
o http://myrpi.local/
. Mi /etc/resolv.conf
en el RPi aún no ha cambiado.
Entonces, ¿cómo puedo darle un nombre ( .local
o 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 del navegador que se esté ejecutando? en esa computadora?