Descrição
Tenho um desktop Windows e um MacBook , ambos conectados à mesma rede local.
- Desktop (Windows) : Conectado via Ethernet
- MacBook : Conectado via Wi-Fi
No meu desktop (Windows) , configurei um servidor web local usando o Docker (executando na porta 9000
, vinculado a 0.0.0.0
).
O contêiner é iniciado com -p 9000:9000
, então ele deve ser acessível de outros dispositivos na mesma rede.
Posso acessar sua interface web sem problemas ao usar o navegador do desktop.
No entanto, quando tento acessar a interface web do meu MacBook usando o Google Chrome , recebo um erro "Página não encontrada" .
Estranhamente, se eu executar o Chrome com o sudo
, a página carrega corretamente.
Detalhes adicionais
- O desktop (Windows) e o MacBook estão na mesma sub-rede.
- O servidor web está escutando em 0.0.0.0:9000 , então ele deve ser acessível de outros dispositivos.
- A execução
nc -zv <desktop-ip> 9000
no MacBook mostra que a porta está aberta . - Um script Python usando
requests.get("http://<desktop-ip>:9000")
falha quando executado normalmente , mas funciona bem quando executado comsudo
. - Meu MacBook tem apenas uma conta de usuário e tem privilégios de administrador .
- O firewall do macOS está desabilitado (
/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
confirma isso). - Executar
sudo pfctl -d
(desabilitarpf
o firewall) não resolve o problema.
O que eu já sei
- Executar qualquer coisa com
sudo
permissões de acesso, então eu tenho uma solução alternativa . - No entanto, estou realmente curioso sobre a causa raiz desse problema.
- Quando eu usava apenas desktops Windows , nunca encontrei esse problema.
Parece ser específico do macOS , possivelmente devido ao seu modelo de segurança ou comportamento de rede.
Minhas perguntas
- Por que o servidor web só carrega no Chrome quando ele é executado com
sudo
? - Por que uma chamada simples do Python
requests.get()
falha a menos que eu a execute comsudo
? - O que pode estar restringindo o acesso à rede para processos normais de usuários no macOS?
Este não é um problema crítico para mim, já que tenho uma solução alternativa, mas eu realmente adoraria entender por que isso acontece . Qualquer informação seria muito apreciada — obrigado!
Isso provavelmente está relacionado à configuração estranha do Chrome no Mac, onde ele pergunta "Você deseja permitir que o Chrome encontre dispositivos na rede local?"
E se você responder não, ele não permitirá que ele atinja nenhum IP na sua rede além disso. Eu descobri isso tentando ir para uma interface web em uma impressora nos primeiros dias em que tive um novo macbook. Para mim, isso implica diferente do Chrome "descobrindo dispositivos"
pode haver outra maneira, mas eu desinstalei/reinstalei o Chrome, na próxima vez que ele perguntou eu disse sim, e funcionou depois disso.
https://discussions.apple.com/thread/255906354?sortBy=rank