Não é possível curvar a partir do mesmo servidor quando ele tem PREROUTING ip forwarding

2

Eu tenho um servidor web Ubuntu que usa iptables PREROUTING para encaminhar a porta 80 para 8000 .

Assim, o processo da web escuta na porta 8000 . Agora quero fazer uma curva do mesmo servidor para um aplicativo da Web em execução. Mas isso gera uma Conexão recusada :

$ curl http://my.webite.com/on/same/server
curl: (7) Failed connect to my.webite.com:80; Connection refused

curl -ing na porta 8000 works (mas deve funcionar na porta 80).

Eu também me certifiquei de que aquele servidor web escuta em todas as interfaces (não apenas na física):

$ netstat -ntl | grep LISTEN
...
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN
...

O domínio do meu aplicativo ( my.webite.com ) também resolve o IP da interface física.

Por que eu recebo a Conexão recusada ?

    
por Gabriel Petrovay 02.10.2014 / 11:33

1 resposta

2

A cadeia PREROUTING não se aplica ao tráfego local (loopback). Você precisará de uma regra de redirecionamento na cadeia OUTPUT para que ela funcione no sistema local.

Por exemplo:

iptables -t nat -A OUTPUT -i lo -p tcp --dport 80 -j REDIRECT --to-port 8000
    
por 02.10.2014 / 11:51