70 votes

Différences entre ssh -L et -D

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

Merci !

69voto

Jessidhia Points 2790

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

ssh -D ouvre un port local, mais il n'a pas de point de terminaison spécifique comme avec la fonction -L . Au lieu de cela, il se fait passer pour un proxy SOCKS. Si vous ouvrez, par exemple, ssh -D 7777 lorsque vous demandez à votre navigateur d'utiliser localhost:7777 comme votre 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 au lieu de votre ordinateur.

6voto

Giorgos Keramidas Points 1243

En SSH, -D spécifie un transfert de port local "dynamique" au niveau de l'application.

SSH -D [bind_address:]port

Spécifie un transfert de port local "dynamique" au niveau de l'application. Cela fonctionne en allouant un socket pour écouter le port du 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 transférée sur le canal sécurisé, et le protocole de l'application est alors utilisé pour déterminer où se connecter à partir de la machine distante. Actuellement, les protocoles SOCKS4 et SOCKS5 sont supportés, et ssh agira comme un serveur SOCKS. Seul root peut transférer des ports privilégiés. Des 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 : [bind_address/]port ou en mettant l'adresse entre crochets.

Seul le super-utilisateur peut transférer des ports privilégiés. Par défaut, le port local est lié en fonction du paramètre GatewayPorts. Toutefois, une adresse bind_address explicite peut être utilisée pour lier la connexion à une adresse spécifique. L'adresse 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 sur toutes les interfaces.

En outre, ssh -L Spécifie que le port donné sur l'hôte local (client) doit être transféré vers l'hôte et le port donnés du 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é vers l'hôte et le port donnés du côté distant. Cela fonctionne en allouant un socket pour écouter le port du 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 transférée sur le canal sécurisé, et une connexion est établie sur 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 syntaxe alternative : [bind_address/]port/host/hostport ou en mettant l'adresse entre crochets.

Seul le super-utilisateur peut transférer des ports privilégiés. Par défaut, le port local est lié en fonction du paramètre GatewayPorts. Cependant, une adresse bind_address explicite peut être utilisée pour lier la connexion à une adresse spécifique. L'adresse 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 sur toutes les interfaces.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X