Question Comment tunneler un port local sur un serveur distant


J'ai un domaine que j'ai acheté chez DynDNS. J'ai indiqué le domaine à mon adresse IP pour pouvoir exécuter des serveurs. Le problème que j'ai est que je ne vis pas près de l'ordinateur serveur ... Puis-je utiliser un tunnel SSH? Si je comprends bien, cela me permettra d'avoir accès à mes serveurs. Je veux que l'ordinateur distant dirige le trafic du port 8080 via le tunnel ssh vers le client ssh, étant le port 80 de mon ordinateur portable. Est-ce possible?


4
2017-12-10 01:16


origine




Réponses:


C'est en fait assez facile à réaliser, même si cela est quelque peu caché dans la documentation de ssh. En supposant OpenSSH, la syntaxe de base est la suivante:

ssh -R 8080:localhost:80 -N username@your-server.dyndns.org

Cela ouvrira une prise d'écoute sur le port 8080 de your-server.dyndns.org, et toutes les connexions effectuées sur your-server.dyndns.org:8080 sera envoyé sur le tunnel SSH à l'ordinateur qui a ouvert cette connexion SSH, et de là sera dirigé vers localhost:80.

le -N L'option indique à SSH de ne pas ouvrir de shell ou autre, juste pour établir la redirection de port, afin de pouvoir l'envoyer en arrière-plan et le laisser fonctionner.

Putty utilise à peu près la même syntaxe, mais enveloppé dans une sorte de GUI. Le principe est le même si.

Mais faites attention à ce que vous faites. Dans la mesure où vous canalisez essentiellement le trafic externe sur votre réseau, vous ne faites que passer à travers le pare-feu de votre réseau. Si ce n'est pas votre réseau, votre administrateur peut s'opposer à cela et vous prendre en charge - en général, il y a une raison pour laquelle certains types de trafic ne sont pas autorisés.


7
2017-12-10 01:49



non c'est juste mon réseau domestique mais et im en utilisant ssh sur un mac qui je pense est une implication de code openssh mais aller sur mysite.com:8080 donne une erreur d'un serveur non existant, je vérifie avec telnet et il ne dit rien - Trevor Rudolph
mais je viens de vérifier sur l'ordinateur distant et il dit ceci, tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 0 14875755 - - Trevor Rudolph
À quoi ressemble exactement votre ligne de commande? le localhost:80 partie est la chose cruciale ici, elle doit exister du point de vue de votre ordinateur local, pas de celui distant, sinon vous aurez des erreurs comme ci-dessus. - Vucar Timnärakrul
oui, j'ai écrit dans 127.0.0.1 au lieu de cela, essayez essayer localhost ... - Trevor Rudolph
Il semble que le côté distant ne soit lié à localhost qu'à toutes les interfaces. Essayez de le faire de cette façon: ssh -R *:8080:localhost:80 -N ..., de cette façon, vous lui dites d’écouter sur le port 8080 sur toutes les interfaces réseau à portée de main. La ligne ci-dessus a fonctionné sur mon PC, mais peut-être que la version Mac de ssh fonctionne légèrement différemment. - Vucar Timnärakrul


Pour pouvoir transférer votre port local 80 non seulement vers l'interface de bouclage (127.0.0.1), vous devez configurer GatewayPorts clientspecified dans /etc/ssh/sshd_config sur la machine distante en premier.

Puis transférez votre port avec:

ssh -R 0.0.0.0:8080:localhost:80 -N foo@bar.dyndns.org

2
2017-08-01 22:12