Portanto, configurei um servidor Apache e as pessoas me dizem que preciso especificar Listen :80
ou colocar um host virtual httpd.conf
para que o Apache permita o tráfego do meu IP público.
Minha pergunta é, como ele sabe meu IP público? O Apache está na minha LAN dentro de um roteador que executa NAT.
(Supondo que o servidor Apache não esteja em um IP público) Apache NÃO conhece seu IP público. O roteador precisaria encaminhar solicitações para ele e reescrever o destino.
O IP do Apache deve ser definido nos arquivos de configuração do apache. Quando as informações chegam ao seu endereço IP real, essas informações são reencaminhadas para um endereço IP interno e/ou porta.
Exemplo:
Por padrão, o apache escuta algum endereço IP e a porta 80.
Você pode usar o Apache com localhost, o que significa que você está usando o endereço IP
127.0.0.1:80
.Você pode configurar o Apache para ouvir qualquer IP e qualquer porta, mas os padrões já estão definidos em seus arquivos de configuração.
Além disso, seu navegador da Web, por padrão, usa a porta 80.
Aqui você pode ler mais .
Informações adicionais (relevância de 20%): Um pouco sobre as armadilhas do porto do repositório de muitos anos de experiência. Portas diferentes são aceitas e tratadas pelo sistema operacional e programas de maneiras diferentes. Por exemplo, um determinado intervalo de portas é aceito para ser usado por vírus e é bloqueado pelo antivírus e/ou sistema operacional. Se você usar a porta 8080, pode ser bom, mas é bom testar um intervalo de portas para garantir que o problema não venha disso. Tente 8080, 8081, depois tente com uma grande diferença 9090, 9091.