Ouvindo na porta 80 no Ubuntu

0

Eu tenho um sistema Ubuntu 15.04 com um servidor web Java escutando na porta 3000. O pré-ajuste do Iptables é configurado assim:

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000

Também removi pacotes do apache2 do sistema com:

apt-get remove apache2

No entanto, agora eu não recebo nenhum processo ouvindo na porta 80 do sistema:

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      259/sshd
tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      4841/java
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      455/master
tcp        0      0 0.0.0.0:5355            0.0.0.0:*               LISTEN      256/systemd-resolve

Como consequência, as páginas não estão acessíveis no navegador. Alguém por favor pode ajudar?

Obrigado!

ATUALIZAÇÃO: Por enquanto acabei configurando o Apache com proxy e proxy_http modules, assim:

<VirtualHost *:80>
  ProxyRequests Off
  ProxyVia Off
  ProxyPreserveHost On

  <Proxy *>
    AddDefaultCharset off
    Order deny,allow
    Allow from all
  </Proxy>

  ProxyPass / http://127.0.0.1:3000/

</VirtualHost>

O que é estranho é que em uma máquina configurada de forma semelhante rodando o Ubuntu 14.04 rodando o Apache para ter algum processo escutando na porta 80 não era necessário. Nessas máquinas, netstat também não mostraria nenhum processo escutando na porta 80, ainda que as solicitações HTTP fossem de alguma forma encaminhadas para o servidor Java escutando na porta 3000. Hmmm.

    
por siphiuel 09.11.2015 / 20:53

2 respostas

2

Nada está escutando mais a porta 80. Esse comando iptables apenas encaminha solicitações para a porta 80 em uma rede externa para a porta 3000 localmente.

Mas o serviço ainda está apenas escutando na porta 3000, e nada mais está (aparentemente) escutando na porta 80, que é o que está sendo reportado pelo seu sistema.

Meu palpite é que você está testando isso localmente (ou seja, com um navegador na mesma máquina que o serviço). Se este for o caso, e localhost: 3000 alcança o serviço, então a regra iptables não está sendo alcançada porque a requisição não está vindo em uma rede externa (ou algum outro motivo relacionado ao iptables - eu estou assumindo aqui que suas regras são boas e trabalhando, mas você deve verificar isso.)

Soluções possíveis:

  1. Assegure-se de que todo o tráfego esteja passando por esta regra iptables ou crie várias regras para que o tráfego de todas as origens da porta 80 seja redirecionado para 3.000.
  2. Altere o serviço para que ele se conecte à porta 80 e remova o recurso de encaminhamento do iptables.
por jdv 09.11.2015 / 21:07
0

Se você usar o authbind para iniciar o tomcats, então nós não precisamos do iptables ou de quaisquer softwares de regras de redirecionamento ou apache Espero que este link seja uma ajuda completa.

link

    
por PKumar 30.12.2015 / 16:27