J'essaie de comprendre la différence entre "redirection de port locale" et "redirection de port dynamique".
Dans la commande ssh pour "redirection de port local", est-il toujours nécessaire de spécifier l'hôte de destination?
Est-ce que "dynamique" dans "redirection de port dynamique" signifie que, dans la commande ssh pour "redirection de port dynamique", il n'est pas nécessaire de spécifier l'hôte de destination? si oui, quand la destination est-elle spécifiée?
Réponses:
Oui, vous devez spécifier une adresse IP et un port de destination lors de l'utilisation du transfert local. De
man ssh
:De toute évidence, seule l'adresse de liaison est facultative.
Non, vous ne pouvez pas spécifier d'hôte ou de port de destination lors de l'utilisation du transfert dynamique. Dans le transfert dynamique, SSH agit comme un proxy SOCKS. Encore une fois à partir de la page de manuel (c'est moi qui souligne):
Avec
-L
, SSH ne tente pas de comprendre le trafic. Il envoie simplement tout ce qu'il reçoit sur le port local au port cible - vous déterminez le port cible au moment où la connexion est établie. Avec-D
, SSH agit comme un serveur proxy et peut donc gérer les connexions à partir de plusieurs ports (par exemple, un navigateur configuré pour l'utiliser comme proxy SOCKS peut alors accéder à HTTP, HTTPS, FTP, etc. via la même connexion). Et comme avec d'autres serveurs proxy, il utilisera le trafic pour déterminer la destination.la source
-D
, il doit le faire, afin de comprendre où envoyer les données.Une autre façon d'apprendre ce concept serait de regarder comment un client se connecte au cluster de réduction de carte élastique d'Amazon (EMR). EMR a un tas d'applications locales qu'il expose et celles-ci sont normalement accessibles via des tunnels SSH.
Il existe 2 options pour un client: A) Commande SSH de transfert de port local: ssh -i key.pem -L 8157: abcd: 8088 hadoop @ abcd
Ici, le client indique, par exemple, que 8157 sur localhost est transféré à abcd: 8088 Le client doit faire une demande à localhost: http: // localhost: 8157 D'autres applications pourraient écouter sur des ports tels que 8089,8090 et le le client doit établir des connexions ssh pour chacun d'eux.
B) Transfert de port dynamique Ici, une seule commande SSH est utilisée: ssh -i key.pem -D 8157 hadoop @ abcd
Tout trafic entrant sur le port 8157 sera acheminé via le tunnel ssh. La destination du trafic sera la destination de l'URL. Par exemple, vous pouvez utiliser un proxy-client sur votre serveur Web et rediriger certains URI http pour utiliser le proxy. Vous pouvez accéder à toutes vos applications sur 8089,8090 via une seule commande.
Pour référence, consultez ce document: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-web-interfaces.html
la source