
Eu tenho uma situação assim:
O Raspberry Pi 3 está configurado como um ponto de acesso WiFi (conformehttps://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/) e um servidor web. Eu gostaria de dar a ele um nome de host, digamos myrpi
, que possa ser resolvido na rede local de qualquer cliente - independentemente de eles estarem conectados com ou sem fio -, de modo que quando eu inserir o endereço da web http://myrpi
em qualquer navegador (Firefox, Chrome) em qualquer PC local (Windows, Ubuntu), eu receberia a página da web na porta 80 no Raspberry Pi - sem alterar nada nos computadores clientes da web (ou seja, o PC Windows e Ubuntu na imagem, se o RPi for um servidor web )
Encontrei primeiro isto:
- 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/
Então, eu fui junto. Agora tenho no RPi:
- Em
/etc/hosts
->127.0.1.1 myrpi
- Em
/etc/hostname
->myrpi
Então eu fiz sudo apt-get install avahi-daemon
no RPi e reiniciei.
Em seguida, tento na linha de comando no Ubuntu PC (conectado ao RPi como um 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>
...
Então, isso parece bom até agora - MAS se eu inserir http://myrpi.local/
um endereço da Web no Firefox ou no Chromium no Ubuntu PC, recebo "Servidor não encontrado".
Isso pode ter algo a ver com o estado do Avahi no Ubuntu:
[RESOLVIDO] Não é possível acessar servidores no domínio .local na LAN corporativa
estes não funcionam no Ubuntu. Isso ocorre porque o Ubuntu instala, por padrão, o sistema AVAHI Zeroconf mDNS, configura-o para “possuir” o domínio .local e o prioriza antes do DNS normal na ordem de resolução do nome do host.
- 173804 – [rfe]Adicionar suporte para Bonjour (Rendezvous/zeroconfig) ao navegador
- https://stackoverflow.com/questions/29637622/resolve-mdns-local-url-in-browser-address-bar
- A versão para PC do Google Chrome não reconhece o nome de domínio “.local”
Então, pensei, realmente não me importo em ter .local
anexado ao nome de domínio - apenas pensei que é assim que as coisas deveriam ser feitas. Então tentei chamar o nome do host diretamente do 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.
Aqui nem wget
funciona (e claramente, nem os navegadores Firefox ou Chromium), embora esteja claro o porquê - aqui myrpi
resolvido para 127.0.1.1, que é o que está escrito literalmente no RPi /etc/hosts
- mas uma vez no laptop Ubuntu, o mesmo endereço significa " este laptop", pois é um loopback, e como não tenho nenhum servidor web em execução no laptop Ubuntu, todo o processo falha.
Agora - aqui está o engraçado: nesta configuração, o PC com Windows (acho que o Windows 7) myrpi.local
resolve 192.168.0.51
- e a página da Web http://myrpi.local/
funciona bem no Firefox e no Chrome no Windows?!
Como medida final, tentei mudar /etc/nsswitch.conf
no RPi:
# hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 # original
hosts: files dns mdns4 mdns4_minimal
... e reinicializando - no entanto, os navegadores no Ubuntu ainda não conseguem acessar http://myrpi/
ou http://myrpi.local/
. Meu /etc/resolv.conf
no RPi ainda permanece inalterado.
Então, como posso dar um nome ( .local
ou não), resolvível na rede local, ao Raspberry Pi - para que qualquer outro PC na mesma rede local possa recuperar o conteúdo do servidor web do Raspberry Pi, independentemente do sistema operacional e do navegador em execução naquele PC?