Les trois types
- Local : un port de votre appareil mène à un endroit que le serveur peut atteindre. Exemple : la base de données d'un serveur, sur
localhost:5432sur votre Mac.ssh -L 127.0.0.1:5432:localhost:5432 deploy@db.example.com - Distant : un port du serveur mène à votre appareil. Exemple : montrer au serveur, sur son port 8080, un site qui tourne sur votre Mac au port 3000.
ssh -R 8080:localhost:3000 deploy@203.0.113.10 - Dynamique (SOCKS) : un proxy SOCKS sur votre appareil qui fait sortir le trafic depuis le serveur. Réglez votre navigateur pour qu'il l'utilise.
ssh -D 1080 deploy@203.0.113.10
Créer un tunnel
- Sur Mac, ouvrez Tunnels et choisissez Nouveau tunnel. Sur iPhone et iPad, choisissez + dans l'onglet Connexions, puis Démarrer un tunnel, puis +.
- L'assistant pose trois questions : ce que fait le tunnel, par quel serveur, et quels ports. Choisissez Passer, remplir le formulaire si vous connaissez les valeurs.
- Dans le formulaire, Direction est le type de tunnel, Écouter sur est l'adresse et le port qui reçoivent le trafic, et Destination est l'endroit où il va. Gardez
127.0.0.1dans Écouter sur : avec une autre adresse, le formulaire prévient que d'autres appareils de votre réseau peuvent utiliser le tunnel. - Activez L'ouvrir maintenant pour le démarrer tout de suite, et choisissez Créer. Dans le formulaire, choisissez Enregistrer.
Les tunnels d'un fichier ssh config arrivent avec l'import.
Démarrer et arrêter
- Choisissez Démarrer ou Arrêter sur un tunnel. Son état est Ouvert, Ouverture, Échec ou Fermé.
- Le menu d'un tunnel propose Démarrer ou Arrêter, Modifier, Dupliquer et Supprimer.
- Sur iPhone et iPad, un tunnel reste ouvert tant que l'app est ouverte, et en arrière-plan tant qu'une session est ouverte : voir Garder les sessions actives.
Erreurs courantes
Port 5432 on 127.0.0.1 is already in use: un autre programme utilise ce port sur votre appareil. Choisissez un autre port, ou trouvez le programme :lsof -nP -iTCP:5432 -sTCP:LISTENNot allowed to listen on port 80 on 127.0.0.1: choisissez un port au-dessus de 1024.The server refused to listen on 0.0.0.0:8080: le port est utilisé sur le serveur, ou le serveur n'autorise pas la redirection. Sur le serveur, dans/etc/ssh/sshd_config:AllowTcpForwarding yes GatewayPorts clientspecifiedGatewayPortsn'est nécessaire que pour un tunnel distant que d'autres machines doivent atteindre.The server could not connect to the destination: vérifiez l'adresse et le port de destination depuis le serveur.