Eu tenho tentado resolver esse problema por um tempo agora, e enquanto eu finalmente decidi não ligar meu processo de servidor ao localhost (eu usei 0.0.0.0:PORT), por um tempo eu não tinha certeza de onde meus pacotes de entrada foram realmente indo dado eu pensei que tinha a regra direita NAT.
A resposta foi que o kernel estava interceptando-os como pacotes marcianos e descartando-os para o lado.
Este site é bastante fácil conjunto de instruções para configurar o log de pacotes marcianos, se você quiser ver se isso estava acontecendo com você.
Outra solução é usar o nginx como um proxy reverso. Nesse caso, você permitiria pacotes com uma porta de destino de 80 através do firewall iptables (verifique se você não está perdendo durante os estágios FILTER e NAT - você pode verificar executando sudo iptables -t nat -L -v
ou sudo iptables -t filter -L -v
). A partir daí, o nginx escuta em todas as interfaces para o tráfego destinado à porta 80. Encontrando algumas relacionadas à solicitação HTTP de entrada, você pode fazer com que o nginx encaminhe essa solicitação para você localhost: 8080 (127.0.0.1:8080) usando a diretiva proxy_pass.
@ A postagem de aqui do MonomiDev fornece a configuração real do nginx que permitiria fazer isso - e, em seguida, se você não tem o nginx instalado, há toneladas de tutoriais aqui no Stack e on-line para você começar.