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!