it-swarm.dev

Cómo hacer un puerto hacia adelante en Mac OS X

Me gustaría hacer que todas las conexiones entrantes al puerto 1000 de mi Host (IP: 200.234.XXX.XXX) se reenvíen al puerto 80 en el Host 10.211.55.5

¿Cómo puedo hacerlo en mi host? Se está ejecutando Mac OS X 10.5.8

33
Daniel Cukier

Bastante simple de hacer, primero deberá habilitar el servicio de inicio de sesión remoto en su mac ( Preferencias del sistema -> Compartir -> Inicio de sesión remoto ). Esto inicia su servidor ssh.

Luego ejecuta el siguiente comando en tu terminal OS X:

ssh -L 200.234.XXX.XXX:10000:10.211.55.5:80 -N 127.0.0.1

Es posible que deba aceptar la huella digital del servidor inicialmente, así como escribir su contraseña local para iniciar sesión en ssh. (También puede configurar una clave pública/privada ssh local a local para que no solicite una contraseña, lo dejará como un ejercicio para el lector).

El formato es:

ssh -L local_addr:local_port:remote_addr:remote_port -N 127.0.0.1
28
Marius

Muy simple utilizando la versátil herramienta ncat:

Sudo ncat --sh-exec "ncat 10.211.55.5 80" -l 1000 --keep-open

Obtenga los binarios de ncat/nmap para Mac OS X en el sitio web oficial: http://nmap.org/download.html#macosx

EDITAR: agregó Sudo para escuchar en un puerto restringido <1024

8
Tony Baguette

Suponiendo que tiene un enrutador UPnP, es fácil configurar los puertos usando PortMap

Tiene una interfaz de usuario muy simple.

alt text

5
Alexis Hirst

Bueno, puedo decirte cómo hago ese tipo de cosas en mi sistema Mac OS X 10.5.8.

Comencé con una respuesta sobre NAT, pero creo que realmente quieres un TCP programa de reenviador (mencionas 'proxy' y reenvío de puertos).

Hay varias maneras de hacer esto, dependiendo de sus necesidades, incluso 'SSH' puede activarse, aunque mi forma corta y dulce favorita es un script de Perl tcpforward .

Si necesita algo de manipulación HTTP (es posible que necesite modificar los redireccionamientos HTTP, de modo que cuando llega una solicitud de una URL sin un '/' final, no se le redirige al servidor real e inaccesible), entonces Apache puede hacer la trabajo de un proxy inverso. Querrás ver mod_proxy y específicamente ProxyPass y ProxyPassReverse. Do no habilita ProxyRequests, eso es para el proxy hacia adelante. Debería ser posible usar el propio Apache de Mac OS para hacer esto, si lo tiene funcionando. Viene con mod_proxy y /etc/httpd/httpd.conf es el archivo de configuración para actualizar.

Incluso con Apache, debe asegurarse de que todos los enlaces en el contenido del servidor real sean relativos; si hacen referencia al servidor real, entonces podrían probar el módulo mod_proxy_html (no tengo experiencia de lo bien que funciona).

3
jrg

¿Su máquina está conectada directamente a Internet (es decir, sin enrutador)? Normalmente realiza el reenvío de puertos en el enrutador, pero si utiliza un módem para conectarse directamente, iptables es probablemente la mejor manera.

0
Dentrasi