Considérez la situation suivante:
Chez moi, j'ai un routeur (qui est connecté à Internet), un serveur (S) et ma machine principale (M). S est accessible depuis Internet (il a une adresse IP statique), et il est disponible 24h / 24 et 7j / 7, tandis que M ne l'est pas.
Parfois, je veux rendre une application (qui écoute sur un port sur M, par exemple 8888) accessible depuis Internet externe.
Pour cela, je voulais configurer un port sur S (2222) pour le transmettre au port 8888 de M, afin que quiconque accédant à S: 2222 se sente comme s'il accédait à M: 8888.
J'ai essayé d'utiliser la redirection de port ssh, ma meilleure tentative était la suivante:
ssh -L 2222:M:8888 -N M
Mais cela ne me permet d'accéder au port 2222 qu'à partir du serveur lui-même, pas à partir d'autres machines.
Existe-t-il un moyen de le faire correctement? De préférence, j'aimerais que ce soit une commande simple, que je serais en mesure de démarrer et d'arrêter avec ^ C lorsque je n'aurai plus besoin de ce transfert.
la source
Réponses:
Oui, cela s'appelle
GatewayPorts
en SSH. Un extrait dessh_config(5)
:Et vous pouvez utiliser
localhost
au lieu deM
dans le transfert, car vous transférez vers la même machine que celle vers laquelle vous vous connectez - si je comprends bien votre question.Ainsi, la commande deviendra ceci:
et ressemblera à ceci dans
netstat -nltp
:Désormais, toute personne accédant à cette machine sur le port 2222 TCP parlera réellement à localhost: 8888 comme vu dans la machine M. Notez que ce n'est pas la même chose que la redirection simple vers le port 8888 de M.
la source
netstat
commande pour savoir quoi exactement. Probablement un autre SSH similaire toujours en cours d'exécution en arrière-plan et le tuer en utilisant le netstat PID vous dit.Il y a une autre manière. Vous pouvez configurer la redirection de port de S: 2222 vers W: 8888 avec iptables. Commande unique:
où 1.2.3.4 est l'adresse IP de M. Il s'appelle NAT (Network Address Translation).
la source
Plus d'alternatives:
netcat
(traditionnel) ousocat
Sur le serveur (S):
ou
Détails voir dans: Un moyen simple de créer un tunnel d'un port local à un autre?
la source