J'ai dessiné quelques croquis
La machine, où la commande ssh tunnel est tapée (ou dans votre cas: Putty avec tunneling est démarré) est appelée «votre hôte» .
introduction
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 port local sourcePort
vers onPort
sur la machine appelée forwardToHost
, accessible depuis la connectToHost
machine.
éloigné: -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 au port distant sourcePort
vers onPort
sur la machine appelée forwardToHost
, accessible depuis votre machine locale.
Votre exemple
La première image représente votre situation. La boîte bleue appelée your host
est votre machine Windows à partir de laquelle vous démarrez Putty sur votre serveur Ubuntu, appelée remotehost
à mon image. Les connexions au port vert (dans votre numéro de port 4000
) sont transmises au port rose MySQL 3306
de la localhost
machine de votre serveur Ubuntu (c'est-à-dire le serveur Ubuntu lui-même).
Pour le configurer avec Putty
Démarrez Putty et entrez vos paramètres de connexion habituels (nom d'hôte ou adresse IP) Dans l'arborescence de gauche, accédez à
Connexion → SSH → Tunnels
et créez un nouveau tunnel local avec le port source 4000
(123 dans l'image) et la destination localhost:3306
(localhost: 456 dans l'image).
N'oubliez pas de cliquer sur Ajouter .
Revenez ensuite à la session et cliquez sur Enregistrer pour conserver vos paramètres pour la prochaine fois. Vous pouvez maintenant utiliser la connexion enregistrée pour vous connecter à votre serveur et après vous être connecté avec succès, chaque fois que vous vous connectez au port 4000 sur votre hôte, vous vous connectez réellement au port 3306 sur le serveur Ubuntu.
La réponse simple est oui, mais veuillez noter que le tunnel est réellement démarré sur votre ordinateur. La façon dont cela fonctionne est que vous créez une connexion SSH au serveur (qui est sécurisé), puis demandez au SSH d'écouter un port de votre côté et de transmettre toutes les connexions entrantes - vers un port spécifique sur une adresse d'hôte spécifique sur le du côté serveur. La cible du tunnel n'a pas besoin d'être le même serveur - il peut s'agir de toute autre adresse valide qui - dans le cas où ce n'est pas le serveur exécutant le serveur SSH lui-même - verra la connexion entrante comme si elle provenait du serveur SSH au lieu de de votre client.
Pour l'installer, ouvrez la boîte de dialogue de configuration Putty, sélectionnez le paramètre de la connexion que vous utilisez normalement pour accéder à votre serveur et cliquez sur "charger" (et non "ouvrir"). Ensuite, dans l'arborescence de gauche, accédez à Connexion-> SSH-> Tunnels et créez un nouveau tunnel "local" avec le port source 4000 et la destination "localhost: 3306" (car l'adresse de destination est résolue sur le serveur, du point de vue du serveur, le port MySQL est sur l'hôte local). Revenez ensuite à "session" et cliquez sur "Enregistrer" pour conserver vos paramètres pour la prochaine fois. Vous pouvez maintenant utiliser la connexion enregistrée pour vous connecter à votre serveur et après vous être connecté avec succès, chaque fois que vous vous connectez au port 4000 sur votre ordinateur, vous vous connectez réellement au port 3306 sur le serveur.
Si vous êtes sérieusement dans les tunnels et que vous utilisez un client MS-Windows, je suggère de regarder Putty Tunnel Manager qui utilise Putty pour configurer et exécuter des tunnels facilement sans avoir besoin d'avoir une console de mastic ouverte.
la source