web-dev-qa-db-fra.com

Qu'est-ce que la redirection de port ssh et quelle est la différence entre la redirection de port local et distant ssh

Je me sens confus au sujet du transfert de port ssh et de la différence entre le transfert de port local et distant ssh. Pourriez-vous les expliquer en détail et avec des exemples? Merci!

199
user2886717

J'ai dessiné quelques croquis

ssh tunnel starting from local


ssh tunnel starting from remote

Introduction

  1. local: -L Specifies that the given port on the local (client) Host is to be forwarded to the given Host and port on the remote side.

    ssh -L sourcePort:forwardToHost:onPort connectToHost Signifie: connectez-vous avec ssh à connectToHost, et transférez toutes les tentatives de connexion au localsourcePort au port onPort sur le machine appelée forwardToHost, accessible depuis la machine connectToHost.

  2. à distance: -R Specifies that the given port on the remote (server) Host is to be forwarded to the given Host and port on the local side.

    ssh -R sourcePort:forwardToHost:onPort connectToHost Signifie: connectez-vous avec ssh à connectToHost, et transférez toutes les tentatives de connexion à distantsourcePort au port onPort sur le machine appelée forwardToHost, accessible depuis votre machine locale.

Exemples

Exemple pour 1

ssh -L 80:localhost:80 SUPERSERVER

Vous spécifiez qu'une connexion établie au port local 80 doit être transmise au port 80 sur SUPERSERVER. Cela signifie que si quelqu'un se connecte à votre ordinateur avec un navigateur Web, il obtient la réponse du serveur Web fonctionnant sur SUPERSERVER. Vous, sur votre ordinateur local, n'avez aucun serveur Web en cours d'exécution.

Exemple pour 2

ssh -R 80:localhost:80 tinyserver

Vous spécifiez qu'une connexion établie au port 80 de tinyserver doit être transférée au port 80 sur votre machine locale. Cela signifie que si quelqu'un se connecte au petit serveur lent avec un navigateur Web, il obtient la réponse du serveur Web exécuté sur votre machine locale. Le tinyserver, qui n'a pas assez d'espace disque pour le grand site Web, n'a pas de serveur Web en cours d'exécution. Mais les gens qui se connectent à tinyserver le pensent.

Plus d'exemples

D'autres choses pourraient être: La machine puissante dispose de cinq serveurs Web fonctionnant sur cinq ports différents. Si un utilisateur se connecte à l'un des cinq serveurs bidirectionnels au port 80 avec son navigateur Web, la demande est redirigée vers le serveur Web correspondant exécuté sur la machine puissante. Ce serait

ssh -R 80:localhost:30180 tinyserver1
ssh -R 80:localhost:30280 tinyserver2
etc.

Ou peut-être que votre machine n'est que la connexion entre les puissants et les petits serveurs. Ce serait alors (pour l'un des serveurs de tinys qui jouent d'avoir leurs propres serveurs Web):

ssh -R 80:SUPERSERVER:30180 tinyserver1
ssh -R 80:SUPERSERVER:30280 tinyserver2
etc
519
erik

Transfert de port local

ssh crée un port local supplémentaire qu'il transmettra à un port du système distant.

exemple

ssh -L 8080:127.0.0.1:80 user@webserver

Puis dans votre navigateur sur l'URL d'utilisation locale http://localhost:8080/

il se connectera au port 8080 des machines locales, que ssh transmettra à ssh distant, puis il fera une demande à 127.0.0.1:80. Remarque 127.0.0.1 est en fait l'hôte local du serveur distant, mais il pourrait s'agir d'un hôte/IP disponible sur le réseau de la machine distante.

Transférer à distance

Demande à ssh de créer un port d'écoute sur la machine distante qu'il retransmettra (Inverser) au ssh local pour retransmettre.

ssh -R 10123:127.0.0.1:123 user@webserver

Ainsi, après que ssh se soit connecté au serveur Web, le ssh distant crée et lsite sur un port 10123. Un processus sur le serveur Web se connectant à 10123, ssh le récupérera et le renverra au ssh de la machine locale, qui l'envoie au 127.0.01 : 123 port.

14
X Tian