Estou com problemas para acessar um servidor NodeJS que está rodando localmente na porta 4000. Consigo acessar o servidor pelo Chrome como http://localhost:4000, mas não consigo acessar pelo IP http://192.168.30.30:4000 . Também estou tentando acessar o servidor web local a partir de um simulador Android, mas não consigo.
Permiti que o Chrome e o Android Studio acessassem as redes locais em Configurações -> Privacidade -> Rede local. Após permitir esse acesso, reiniciei o Chrome e o Android Studio. Também reiniciei meu Mac. Além disso, limpei as permissões de rede para que possam ser redefinidas seguindo https://forums.macrumors.com/threads/local-network-access-nightmare.2448144/?post=33698401#post-33698401 .
Para redefinir as permissões da rede local, no Terminal em Recuperação, exclua /Library/Preferences/com.apple.networkextension.plist
rm "/Volumes/Macintosh HD/Library/Preferences/com.apple.networkextension.plist"
Isso redefiniu as permissões para que eu pudesse concedê-las novamente, mas ainda não consigo acessar o servidor via IP.
Li vários posts sobre o Sequoia e não tive acesso aos servidores locais via IP, mas ainda não tive sucesso em resolver esse problema.
Alguém tem alguma outra ideia que eu possa tentar?
EDITAR:
Tentei iniciar meu servidor de nó de algumas maneiras:
server.listen(4000, 0.0.0.0, () => {...
E
server.listen(4000, 127.0.0.1, () => {...
Entendo que a sintaxe para excluir o arquivo plist não é perfeita, só sei que consegui excluir e fui promovido adequadamente para acesso à rede local no Chrome e no Android e aceitei
Embora os endereços
http://localhost:4000
ehttp://192.168.30.30:4000
possam parecer equivalentes, visto que ambos apontam para o mesmo local, eles o fazem de maneiras diferentes.localhost:4000
refere-se diretamente ao seu dispositivo; o endereço de "loopback".192.168.30.30:4000
pesquisará na sua interface de rede e trabalhará com o roteador para encontrar essa porta. Ambas as operações podem ser feitas, mas há algumas nuances em como são feitas.Para chamar diretamente no seu dispositivo em
http://localhost:4000
, você pode fazer como vem fazendo. Chamarserver.listen(4000)
também permitirá isso a partir do seu servidor NodeJS host.Por outro lado, para acessar
http://192.168.30.30:4000
, você deve seguir os seguintes passos para garantir que isso seja permitido e configurado corretamente.server.listen(4000)
, chameserver.listen(4000, '0.0.0.0')
. Isso permitirá que ele reconheça que o servidor está hospedado em um endereço IP local, independentemente de estar no seu dispositivo ou no "host local".http://192.168.30.30:4000
Se isso ainda não funcionar, e mesmo desabilitando completamente o firewall e verificando as configurações de privacidade do Google Chrome o problema não tiver sido resolvido, recomendo que você finalmente verifique a maneira como está excluindo esse arquivo.
O comando
rm "/Volumes/Macintosh HD/Library/Preferences/com.apple.networkextension.plist"
não fará nada ou causará um erro. Para corrigir isso, use códigos de escape para espaços, especificamente emMacintosh HD
, e remova as aspas.Lembre-se de que eu desaconselho fortemente a exclusão de arquivos do sistema, a menos que você tenha absoluta certeza de que isso não causará problemas . Isso pode causar problemas sérios no seu dispositivo, e quase sempre há maneiras mais seguras de fazer isso.
As listas Plist também são legíveis por humanos. Embora eu desencoraje a edição direta de qualquer arquivo, você pode ajustar manualmente as configurações adversas e corrigir o problema manualmente.