Me gustaría hacer que todas las conexiones entrantes al puerto 1000 de mi host (IP: 200.234.XXX.XXX) se envíen al puerto 80 en el host 10.211.55.5
¿Cómo puedo hacerlo en mi host? Está ejecutando Mac OS X 10.5.8
Me gustaría hacer que todas las conexiones entrantes al puerto 1000 de mi host (IP: 200.234.XXX.XXX) se envíen al puerto 80 en el host 10.211.55.5
¿Cómo puedo hacerlo en mi host? Está ejecutando Mac OS X 10.5.8
Respuestas:
Muy simple de hacer, en primer lugar, 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 ejecute el siguiente comando en su 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 y 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
Muy simple usando la herramienta versátil 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 del sitio web oficial: http://nmap.org/download.html#macosx
EDITAR: agregado sudo para escuchar en un puerto restringido <1024
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 en realidad quieres un programa reenviador TCP (mencionas 'proxy' y reenvío de puertos).
Hay algunas formas de hacerlo, dependiendo de sus necesidades, incluso 'SSH' puede ser puesto en acción, aunque mi forma corta y dulce favorita es un script Perl tcpforward .
Si necesita alguna manipulación de HTTP (es posible que necesite ajustar las redirecciones de HTTP, de modo que cuando una solicitud llegue a una URL sin un '/' final no sea redirigido al servidor real, inaccesible), entonces Apache puede hacer el trabajo de un proxy inverso. Querrá ver mod_proxy y específicamente ProxyPass y ProxyPassReverse. No no permitirá ProxyRequests, que es para el proxy hacia delante. 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ía probar el módulo mod_proxy_html (no tengo experiencia de qué tan bien funciona).
¿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.
iptables
para lograr lo que la pregunta formula, eso podría ser útil.
Aquí hay un buen artículo: http://www.cyberhq.nl/article/384/port-forwarding-in-macos-x
Pero dado que está reenviando a 80, supongo que desea que vaya a un servidor web, así que simplemente cambiaría la configuración del servidor web para configurar un proxy inverso o algo así.