Estoy usando
ssh [email protected] -g -L 4321:localhost:28017
para establecer un túnel desde mi MacBook a mi servidor dedicado en mi proveedor de alojamiento. Funciona bien. Ahora quiero acceder a varios sitios de administración en el servidor remoto (una página de estado de MongoDB, una página de RabbitMQ, etc., todos en diferentes puertos). Todos ellos están vinculados a 127.0.0.1 en la máquina remota. ¿Cómo puedo modificar este comando ssh para
- asignar un nombre al túnel y usar, por ejemplo, "my.tunnel.name" en mi navegador
- para poder definir el puerto remoto en mi navegador; Me gustaría conectarme a my.tunnel.name:port, para poder llamar a los diferentes sitios
¿Es esto posible con ssh? He leído las páginas de manual y busqué en Google por dos días, pero parece que no funciona.
--editar 2012-06-01 23: 36-- Gracias a las respuestas y comentarios proporcionados, el reenvío de puertos ahora funciona
ssh [email protected] -D 4321
Puedo configurar esto como un proxy en mi navegador y el navegador tratará cualquier solicitud a localhost: anyport como si se hubiera realizado en el servidor remoto. Ahora no es necesario usar un nombre, ya que el navegador es solo para sitios de servidores remotos.
Puede asignar un nombre utilizando el hecho de que su adaptador de bucle invertido básicamente responderá a cualquier dirección en la red 127.0.0.0/8.
Entonces, en lugar de vincular al puerto 4321, podría vincular a 127.1.2.3:4321. Luego, simplemente configure una entrada de host que asigne un nombre a la dirección de bucle invertido que utilizó para que mapee foo.bar
127.1.2.3
.En mi configuración SSH en mi estación de trabajo de administración, tengo muchos túneles configurados para que se unan a alguna dirección en el rango de bucle invertido, y tengo entradas en mi archivo host, por lo que abro muchos túneles en paralelo usando el mismo puerto y distingo entre ellos a través de nombre.
Entonces, si te conectas así
Y su archivo de hosts tiene una línea como esta.
Entonces debería poder conectarse a my.tunnel.name:4321 desde su máquina local.
Si tiene espacio adicional para direcciones IP en la red a la que está conectado su cliente ssh, puede incluso asignar una dirección secundaria a su interfaz Ethernet y usar una de sus IP reales, y luego configurar entradas en su DNS si desea que otros sistemas puedan para usar tu túnel SSH.
La opción -L
-L [bind_address:]port:host:hostport
le permitirá usar cualquier dirección IP válida en el sistema local para vincularse. También debe incluir la-g
opción si desea que otros hosts puedan conectarse a través de su túnel ssh.fuente
ifconfig l0 alias 127.0.1.1 255.255.255.0
De lo contrario, un gran consejo!-N
al final del comando. De esta manera, es más fácil recordar que es un túnel, no cualquier conexión SSH.127.1.2.3
, tuve que hacer esto en mi macbook:ifconfig lo0 alias 127.1.2.3 255.255.255.0
que se agrega127.1.2.3
como una nueva dirección en la interfazlo0
.Cree un reenvío de puerto dinámico a nivel de aplicación (básicamente el proxy de calcetines) con su túnel SSH, y luego dirija sus aplicaciones a través de este. Para crear un túnel dinámico, conéctese de la siguiente manera:
Luego configure su aplicación para usar esto como un proxy SOCKSv5.
Si desea un nombre de host vinculado a esto, simplemente agregue
/etc/hosts
entradas que apunten a 127.0.0.1, pero una forma más bonita podría ser agregar 127.0.0.2 para el primer túnel, y una entrada de hosts para este, 127.0.0.3 para el segundo túnel y una entrada de host separada para este, etc. Si agrega alias para 127.0.0.1, ¡a veces este alias aparecerá en otras búsquedas de comandos de localhost que pueden ser confusos!Para usar esto sin problemas en un navegador web, puede usar un complemento proxy, como ejemplo, estoy a favor del navegador web Chrome y para este uso un complemento llamado
Proxy Switchy!
. Puede descargarlo aquí:https://chrome.google.com/webstore/detail/caehdcpeofiiigpdhbabniblemipncjj
En la configuración de este complemento, puedo definir varios proxies separados, y luego vincular expresiones regulares de hosts / URL para usar ciertos proxies, de esta manera siempre se me redirigirá correctamente a través de los túneles correctos sin tener que cambiar manualmente. ¡Avíseme si necesita más aclaraciones sobre alguno de los pasos!
fuente