J'ai un serveur Linux et je veux le mettre dans un réseau domestique derrière un routeur. J'ai besoin de ssh vers ce serveur à un moment donné de l'extérieur, mais je ne veux pas configurer la redirection de port car je n'ai pas accès au routeur et je ne connais pas non plus l'ip du routeur.
Ce que je peux faire, c'est de mettre un programme sur le serveur Linux, donc quand il est connecté à Internet, il enverra constamment des données à mon autre serveur en ligne, donc je connais son adresse IP. Mais existe-t-il un moyen de ssh vers le serveur derrière le routeur de l'extérieur? quelque chose comme NAT ou socket qui maintient la connexion réseau?
Merci beaucoup
la source
autossh
pour le garder ouvert.Vous pouvez utiliser un VPN de toutes sortes pour que cela fonctionne, mais cela nécessiterait d'avoir un serveur auquel le serveur inaccessible peut accéder. Ensuite, vous pouvez configurer OpenVPN sur le serveur, votre PC et le serveur pare-feu, l'activer
client-to-client
et vous avez terminé. http://openvpn.net/howto.htmlla source
Cette réponse est basée sur celle acceptée, mais en ajoutant les détails qui m'ont permis de le faire. Je m'excuse pour l'explication piétonne, car ce n'est pas du tout mon expertise.
Supposons que vous ayez deux ordinateurs,
A
etB
. Vous voulezssh
deA
àB
et vous ne pouvez pas faire de redirection de port dans les routeurs qui leur sont connectés.Comme l'indique la réponse acceptée, vous avez besoin d'un serveur
S
pour cela: dans l'ordinateurB
, vous autoriserez lesssh
connexions provenant deS
; et de l'ordinateurA
, vous accéderez à ce tunnel àS
atteindreB
.Mais comment obtenez-vous ce serveur
S
? J'ai trouvéserveo
(lien: https://serveo.net/ ). Il est d'une utilité très simple. Vous n'avez rien à installer ni à vous inscrire et c'est gratuit. Selon le site Web, les étapes à suivre sont les suivantes:Pensez à un alias pour ordinateur
B
. Par exemplecomputer_B_alias
,.Dans l'ordinateur
B
, exécutezssh -R computer_B_alias:22:localhost:22 serveo.net
.Maintenant, vous pouvez accéder à l'ordinateur à
B
partir de l'ordinateurA
en exécutant ce qui suit dans l'ordinateurA
:,ssh -J serveo.net user@computer_B_alias
où vous devez remplaceruser
par le nom de l'utilisateur sur l'ordinateurB
.PS: Bien sûr, vous faites du point 2 une tâche automatique lors du démarrage de votre ordinateur
B
.PSS: avant d'essayer, assurez-vous qu'il
ssh
est installé sur les deux ordinateurs. Pour Ubuntu,sudo apt-get install ssh
ferait le travail.la source
Beaucoup de temps pour répondre. L'espoir pourrait aider quelqu'un qui le recherche maintenant.
Si vous souhaitez accéder à un serveur derrière NAT et que vous ne voulez pas écrire de code, vous pouvez probablement opter pour un outil parmi ceux ci-dessous et utiliser ce qui convient à vos besoins.
Les deux outils ci-dessus supposent que vous avez accès à la machine Linux pour installer leur client Certains de leurs avantages sont:
Personnellement, je préfère tmate plus car vous pouvez héberger le serveur tmate sur votre propre serveur intermédiaire (pour reverse ssh) tandis que la téléconsole ne peut se connecter à leurs propres serveurs que pour reverse ssh.
la source
Vous pouvez utiliser ngrok . Le processus est simple:
la source