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 !
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 !
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.
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.
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.