OS X - encaminhando porta externa para endereço de loopback local

OS X - encaminhando porta externa para endereço de loopback local

Tenho um serviço HTTP vinculado à porta 8000 que desejo acessar de outro computador na rede, mas não consigo me conectar usando o endereço IP externo da máquina (por exemplo, 192.168.0.105). Verifiquei se o firewall do OS X não está em execução, então presumo que o problema é que o serviço está vinculado apenas ao endereço IP 127.0.0.1 e não ao endereço IP externo.

Qual seria a maneira mais fácil de encaminhar temporariamente conexões externas na porta 8000 para 127.0.0.1:8000?

Responder1

A maneira mais fácil e rápida de disponibilizar portas vinculadas localmente para a interface pública sem reconfigurar o serviço subjacente é criar um encaminhamento de porta ssh e disponibilizá-lo globalmente (por padrão, ele escuta apenas localmente)

Por ser a mesma máquina, você terá que usar portas diferentes. No Mac onde o serviço é executado, inicie

ssh -v -g -L 8001:localhost:8000 localhost

-vpara detalhado, para que você veja as conexões de entrada

-gpara disponibilizá-lo na interface pública

-L port:targethost:targetportbem, você já sabe disso :-)

caso você tenha mais de uma interface ativa na máquina, estenda a -Linstrução para incluir o endereço ao qual deseja vinculá-la.

Responder2

Use ipfw, ele gosta de iptables no linux.

Eu acho que você está usando o encaminhamento de porta ssh de um serviço para o seu local.

ipfw add fwd 127.0.0.1,8000 tcp from any to 192.168.0.105 dst-port 8000

A outra máquina da rede consegue acessar o serviço via 192.168.0.105:8000

Responder3

Se bem entendi,Lulapode funcionar. Além disso, tente o nome do computador em vez do IP ou algum outro serviço (ping, VNC, FTP, etc.)

Responder4

Primeiro, certifique-se de estar buscando o problema certo. Você pode verificar quais IPs o servidor web está escutando com o netstatcomando:

$ netstat -an | grep LISTEN
tcp46      0      0  *.8000                 *.*                    LISTEN
tcp4       0      0  *.88                   *.*                    LISTEN
tcp6       0      0  *.88                   *.*                    LISTEN
tcp4       0      0  127.0.0.1.631          *.*                    LISTEN
tcp6       0      0  ::1.631                *.*                    LISTEN

Na primeira linha deste exemplo, "*.8000" significa que algo (presumivelmente o servidor web) está escutando na porta 8000 em todos os IPs vinculados. Por outro lado, as duas últimas linhas significam que algo está escutando na porta 631 nos loopbacks IPv4 e IPv6 (127.0.0.1 e ::). Se você vir "127.0.0.1:8000" ao executar o comando, isso significa que você está no caminho certo em seu diagnóstico.

Se esse for o problema, provavelmente é melhor resolvê-lo vinculando o servidor web a todos os IPs, em vez de tentar contorná-lo com um encaminhador. Verifique seu (s) arquivo (s) de configuração do Apache (o padrão no OS X é /etc/apache2/httpd.conf, além de tudo "Include" dele) para as diretivas "Listen". Se você ver

Listen 127.0.0.1:8000

mude para

Listen 8000

informação relacionada