Você não tem o IP público vinculado a uma interface da máquina que está executando um servidor da web. Na verdade, está configurado no seu roteador. Como está fazendo o NAT (Network Adress Translation), nenhuma nova conexão externa com esse público chegará às suas máquinas internas por padrão.
Você precisará fazer duas coisas para que isso funcione:
- Permitir conexões HTTP [S] de entrada para a máquina que está executando o servidor da Web.
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Isso abre ambas as portas 80 / tcp e 443 / tcp para conexões de entrada. A partir da sua pergunta, parece que você não está executando um firewall - recomendo que você analise isso mais cedo ou mais tarde.
- Você também precisará encaminhar as portas (80 e 443, se desejar) do roteador para a máquina que está executando o servidor da web (além das 2 regras do netfilter acima).
Eu não sei qual roteador você tem, mas isso deve ajudar:
- IP externo: seu IP público
- Porta externa: 80 / tcp
- IP interno: 192.168.0.101
- Porta interna: 80 / tcp
Se depois de fazer isso você ainda tiver problemas, poste a saída
sudo iptables -vL -n
sudo ss -nptl src :80
sudo ip addr list
sudo ip route