![OS X - encaminhando porta externa para endereço de loopback local](https://rvso.com/image/1263763/OS%20X%20-%20encaminhando%20porta%20externa%20para%20endere%C3%A7o%20de%20loopback%20local.png)
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
-v
para detalhado, para que você veja as conexões de entrada
-g
para disponibilizá-lo na interface pública
-L port:targethost:targetport
bem, você já sabe disso :-)
caso você tenha mais de uma interface ativa na máquina, estenda a -L
instruçã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 netstat
comando:
$ 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