Estou executando o Ubuntu 20.04 no WSL2 / Hyper-V / Windows 10.
Quando faço isso curl http://127.0.0.1
dentro do Ubuntu, recebo isso de volta:
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.19.3</center>
</body>
</html>
Quando faço isso no host - no próprio Windows 10 (com Git Bash), recebo o seguinte:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0
curl: (7) Failed to connect to 127.0.0.1 port 80: Connection refused
Como posso tornar a porta 80 acessível fora do Ubuntu? Preciso atualizar as regras de firewall no Windows ou algo assim?
Problema:
O Windows 10 pensa que localhost é
::1
.Ubuntu acha que localhost é
127.0.0.1
Solução atual: 31/05/2022
Não tenho tido esse problema recentemente. Acho que fiz "Redefinição de rede" uma vez nos últimos 4 meses.
Solução de 'redefinição de rede': 27/07/2021
A WSL está mudando de forma relativamente rápida.
Minha solução atual com WSL2 é
Solução 1:
C:\Users\Me\.wslconfig
:Isto é o que funcionou para mim.
Solução 2:
Isso não funcionou tão bem para mim, mas pode funcionar para você. Interrompa a geração automática conforme instruído nos comentários em
/etc/hosts
e altere localhost para::1
que eles se refiram ao mesmo adaptador. Para compatibilidade,0.0.0.0
liga a todas as interfaces (127.0.0.1 e ::1) para que funcione.Isso vai atrapalhar as coisas? Provavelmente. Se isso acontecer, você terá que se lembrar de mexer nisso para que funcione.
Isso porque cada host tem um localhost 127.0.0.1. O host do Windows pensa que está indo para si mesmo. A solução mais fácil é você IP com um IP real. exemplo 192.168.xx
encontrei a seguinte sinopse
Nos estágios iniciais do WSL 2, não podemos usar localhost. Precisamos usar um IP, pois o Linux está dentro de uma VM.
Para acessar seu aplicativo atualmente, usaremos um IP.
Isso é o que funcionou para mim, pois com localhost/127.0.0.1 não tive sorte:
Minha solução foi adicionar 127.0.0.1 e ::1 para o domínio local ao arquivo host do Windows.
Reinicie o serviço apache2: