Différences entre ssh -L à -D

52

J'essaie de comprendre les différences entre ssh -L et -D. Y a-t-il autre chose à part que -D n'est que SOCKS?

Merci!


la source

Réponses:

53

ssh -Louvre un port local. Tout ce que vous envoyez à ce port passe par la connexion ssh et part par le serveur. Si vous le faites, par exemple, ssh -L 4444:google.com:80si vous ouvrez http://localhost:4444sur votre navigateur, vous verrez réellement la page de Google.

ssh -Douvre un port local, mais il n’a pas de point final spécifique comme avec -L. Au lieu de cela, il prétend être un proxy SOCKS. Si vous ouvrez, par exemple, ssh -D 7777lorsque vous indiquez à votre navigateur de vous utiliser localhost:7777comme proxy SOCKS, tout ce que votre navigateur demande passe par le tunnel ssh. Pour l'Internet public, c'est comme si vous naviguiez depuis votre serveur ssh plutôt que depuis votre ordinateur.

Jessidhia
la source
6
Un détail important à propos de -L est que vous pouvez lier un port local uniquement pour une utilisation locale, par exemple localhost: 80: remotehost: 8080, mais vous pouvez également lier ce port à quiconque. Vous pouvez donc faire en sorte qu'un ordinateur de votre réseau local offre l'accès à un ordinateur distant par un tunnel, sans que les ordinateurs locaux ne le sachent.
Dividebyzero
@dividebyzero J'ai du mal à imaginer ce que vous décrivez
Michael Dorst
@ MichaelDorst Je veux dire cette phrase de la page de The bind_address of “localhost” indicates that the listening port be bound for local use only, while an empty address or ‘*’ indicates that the port should be available from all interfaces.
manuel
ssh -L 4444:google.com:80ne fonctionne pas pour moi, il nécessite un autre paramètre pour la connexion, comme [email protected]
Saman Mohamadi, le
6

En SSH, -Dspécifie une redirection de port «dynamique» au niveau de l'application locale.

SSH -D [bind_address:]port

Spécifie une redirection de port «dynamique» au niveau de l'application locale. Cela fonctionne en allouant un socket pour écouter le port sur le côté local, éventuellement lié à l'adresse bind_address spécifiée. Chaque fois qu'une connexion est établie sur ce port, la connexion est transmise via le canal sécurisé et le protocole d'application est ensuite utilisé pour déterminer le point de connexion de la machine distante. Actuellement, les protocoles SOCKS4 et SOCKS5 sont pris en charge et ssh agira comme un serveur SOCKS. Seul root peut transférer des ports privilégiés. Les transferts de ports dynamiques peuvent également être spécifiés dans le fichier de configuration.

Les adresses IPv6 peuvent être spécifiées avec une syntaxe alternative: port [bind_address /] ou en mettant l'adresse entre crochets.

Seul le superutilisateur peut transférer des ports privilégiés. Par défaut, le port local est lié conformément au paramètre GatewayPorts. Toutefois, une adresse bind_address explicite peut être utilisée pour lier la connexion à une adresse spécifique. Bind_address de «localhost» indique que le port d'écoute doit être lié à un usage local uniquement, tandis qu'une adresse vide ou «*» indique que le port doit être disponible à partir de toutes les interfaces.

De plus, ssh -Lspécifie que le port donné sur l'hôte local (client) doit être transféré à l'hôte donné et au port côté distant.

SSH -L [bind_address:]port:host:hostport

Spécifie que le port donné sur l'hôte local (client) doit être transféré à l'hôte donné et au port côté distant. Cela fonctionne en allouant un socket pour écouter le port sur le côté local, éventuellement lié à l'adresse bind_address spécifiée. Chaque fois qu'une connexion est établie avec ce port, la connexion est transférée via le canal sécurisé et une connexion est établie pour héberger le port hostport de la machine distante. Les transferts de port peuvent également être spécifiés dans le fichier de configuration. Les adresses IPv6 peuvent être spécifiées avec une autre syntaxe: [adresse_bind /] port / hôte / hôte ou en mettant l'adresse entre crochets.

Seul le superutilisateur peut transférer des ports privilégiés. Par défaut, le port local est lié conformément au paramètre GatewayPorts. Toutefois, une adresse bind_address explicite peut être utilisée pour lier la connexion à une adresse spécifique. Bind_address de «localhost» indique que le port d'écoute doit être lié à un usage local uniquement, tandis qu'une adresse vide ou «*» indique que le port doit être disponible à partir de toutes les interfaces.

Mughil
la source