Método 1: Use un proxy HTTP que admita el uso de SOCKS upstream, p. Polipo o Privoxy.
Primero establece un -D
haga un túnel a través de SSH como siempre, luego configure el proxy HTTP para usar el túnel SSH; ejemplo de configuración de Polipo:
proxyAddress = "::1"
proxyPort = 8118
socksParentProxy = "localhost:8080"
socksProxyType = socks5
Finalmente, apunte la aplicación a Polipo usando http_proxy=localhost:8118
.
Método 2: Ejecute su programa dentro del torsocks
contenedor (o el antiguo tsocks
), que representa todas las conexiones de forma transparente. Fue diseñado para usarse con Tor, pero funciona con cualquier servidor SOCKS, incluido ssh -D
.
Método 3: Configure un proxy HTTP en su servidor , luego usa ssh -L
para acceder a ella.
Cada -D
resultados en un servidor SOCKS. Si su cliente no puede manejar SOCKS, olvide -D
.
Debe ejecutar un proxy HTTP en el host remoto y reenviar con -L
:
ssh -f -N -n -L8080:127.0.0.1:8080 host
Tengo el mismo problema que quiero usar el proxy HTTP a través de SSH. Debido a que muchas aplicaciones solo admiten el proxy HTTP, y el proxy HTTP es fácil de usar en un entorno de línea de comandos.
Aunque busqué en varias páginas, no puedo encontrar una forma directa (se puede encadenar con Polipo, Privoxy o tsocks) de hacer esto...
Después de un día de trabajo, terminé una versión Golang simple del proxy HTTP sobre SSH. Siéntete libre de jugar con él:mallory.
Actualmente solo admite clave RSA (ubicada en $HOME/.ssh/id_rsa) y autorización de contraseña.
host
es la dirección del servidor SSH, port
es 22
si su administrador no lo cambia. El lado del servidor es solo nuestro viejo amigo sshd
con configuración cero.
mallory -engine=ssh -remote=ssh://host:port
o con nombre de usuario user
mallory -engine=ssh -remote=ssh://[email protected]:port
o con nombre de usuario user
y contraseña 1234
mallory -engine=ssh -remote=ssh://user:[email protected]:port
Después de conectarse, un proxy HTTP servirá en localhost:1315.