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

2

Eu tenho um serviço HTTP ligado à porta 8000 que desejo acessar de outra computação 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, por isso estou assumindo que o problema é que o serviço só é vinculado 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 as conexões externas na porta 8000 para 127.0.0.1:8000?

    
por Rory Fitzpatrick 30.01.2011 / 15:59

4 respostas

1

Use o ipfw, ele gosta do iptables no linux.

Eu acho que você está usando a porta ssh encaminhando 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 na rede é capaz de acessar o serviço via 192.168.0.105:8000

    
por 14.05.2011 / 02:54
0

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

    
por 30.01.2011 / 18:52
0

Primeiro, verifique se você está indo atrás do problema certo. Você pode verificar quais IPs o servidor da Web está escutando com o comando netstat :

$ 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, o "* .8000" significa que algo (presumivelmente, o servidor da web) está escutando na porta 8000 em todos os IPs ligados. 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 é o problema, provavelmente é melhor resolvê-lo colocando o servidor da Web vinculado 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 "Incluir" ed dele) para as diretivas "Listen". Se você ver

Listen 127.0.0.1:8000

altere para

Listen 8000
    
por 30.01.2011 / 19:25
0

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

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

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

-v para verbose, então você vê 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 instrução -L para incluir o endereço ao qual você deseja vinculá-la.

    
por 24.03.2011 / 02:16