Estoy estudiando ssh y no he entendido el siguiente comando con la opción D
ssh -D 9999 username@remotehost.net¿Alguien puede explicar qué hace exactamente este comando con un ejemplo y cuándo es útil?
Esto reenviará todos los paquetes a remotehost.net desde localhost:9999 (en su ejemplo). En pocas palabras, esto es proxy de calcetines.
De la página man de ssh:
Especifica un reenvío de puerto a nivel de aplicación "dinámico" local. Esto funciona mediante la asignación de un socket para escuchar el puerto en el lado local, vinculado opcionalmente a la dirección de enlace especificada. Cada vez que se realiza una conexión a este puerto, la conexión se reenvía a través del canal seguro y luego se usa el protocolo de la aplicación para determinar dónde conectarse desde la máquina remota. Actualmente se admiten los protocolos SOCKS4 y SOCKS5, y ssh actuará como un servidor SOCKS. Solo la raíz puede reenviar puertos privilegiados. Los reenvíos de puertos dinámicos también se pueden especificar en el archivo de configuración.