Comment puis-je accéder à un invité Ubuntu - fonctionnant sur un hôte Win10 - à partir d'un serveur Linux distant?

10

Version courte

Si j'exécute une machine virtuelle VirtualBox invitée Ubuntu à partir d'un hôte Windows 10, que dois-je faire pour passer sshd'un serveur Linux distant à la machine virtuelle invitée Ubuntu?


_______________________
[                     ]
[ Windows 10          ]
[ ___________________ ]            ____________________
[ [                  ]]            [                   ]
[ [ Ubuntu VM (guest) <----HOW?---- SUSE remote server ]
[ [__________________]]            [___________________]
[_____________________]

Version longue

Je suis confus parce que, AFAIK, si je n'utilisais pas une machine virtuelle invitée Ubuntu, et utilisais plutôt une vraie machine Ubuntu, je pourrais simplement cat /etc/hoststrouver l'adresse IP du local puis de la distance simplement:

user@remote --ssh--> user@<local IP>

J'ai déjà configuré les clés ssh afin que je puisse ssh depuis l'invité Ubuntu vers le serveur distant SUSE (c'est-à-dire que l'invité ~/.ssh/id_rsa.pubest déjà stocké dans la télécommande ~/.ssh/authorized_keys). C'est-à-dire que je peux déjà:

ssh -Y user@remote

Sans difficulté, mais je ne peux pas faire l'inverse simplement parce que je n'ai aucune idée de l'adresse IP de mon invité. Et j'ai déjà essayé d' sshutiliser les adresses IP dans "Informations de connexion" de l'interface graphique d'Ubuntu.

Pour être aussi clair:

  • la machine virtuelle invitée est Ubuntu 12.04 LTS (64 bits)

  • Paramètres VirtualBox principalement: par défaut

  • Activer l'adaptateur réseau: NAT (câble connecté, pas de redirection de port)

Je n'ai pas configuré de serveur ssh, mais je ne suis pas sûr que ce soit nécessaire (?), C'est ce que je comprends jusqu'à présent.

Donc, étant donné que j'exécute une machine virtuelle VirtualBox invitée Ubuntu à partir d'un hôte Windows 10, quelles étapes dois-je suivre pour passer sshd'un serveur Linux distant à la machine virtuelle invitée Ubuntu?

bonjour_ici_andy
la source

Réponses:

14

Ceci est généralement appelé une situation de "double NAT" lorsque vous êtes derrière un routeur. Vous devez transférer du routeur frontière vers le système Windows, puis transférer la VBox vers la machine virtuelle. Vous devrez peut-être également transférer le port 22 de la connexion réseau réelle à l'adaptateur VBox NAT, mais je ne suis pas aussi clair à ce sujet pour Windows.

En fin de compte, cependant, il y a au plus trois choses que vous devrez faire ici. Ils sont tous dans Windows, ou pas dans Ubuntu Linux, donc la plupart de vos réponses seront sur Super User ou ailleurs.

  1. (Si vous êtes derrière un routeur sur votre réseau sur lequel Win10 est activé) Configurez la redirection de port sur votre routeur sur le réseau pour rediriger le port 22 vers votre système Windows 10.

  2. Définissez le pare-feu Windows pour autoriser les connexions entrantes sur le port 22. Vous devrez peut-être également spécifier que vous souhaitez que le port 22 soit transféré de votre carte réseau entrante vers le réseau NAT sur les paramètres réseau de la machine virtuelle.

  3. Définissez la règle de transfert NAT sur le réseau NAT dans VirtualBox pour transférer le port 22 de l'hôte vers le port 22 de la machine virtuelle .

Une approche un peu plus agréable qui contourne les étapes 2 et 3 ici consiste à utiliser le mode ponté dans les paramètres réseau de la machine virtuelle; cela obtiendra alors une IP du même réseau que celui auquel le système Windows 10 est connecté, et vous pouvez ensuite transférer le port 22 du routeur de périphérie (étape # 1) vers l'IP attribuée par le réseau à la machine virtuelle elle-même. C'est un peu moins pénible que d'avoir à faire plusieurs sauts et configurations pour faire fonctionner le port 22.

REMARQUE: certains FAI filtrent le port 22 afin que le trafic du port 22 n'atteigne pas le système; vous devrez peut-être configurer un port plus élevé que le port 22 (comme 2022 ou un autre port non standard> 1024) à la place si tel est le cas.


Quant à trouver l'IP de l'invité, cette information sera dans la sortie de ifconfig -aou ip -4 addr listdans l'invité Linux. C'est la partie la plus simple de tout cela, car ce sera la même chose, Bridged ou NAT.

Thomas Ward
la source
Je vais faire des recherches sur ce merci, je ne sais vraiment pas comment vous avez répondu si rapidement ... Supprimer ce commentaire après avoir fait des recherches
hello_there_andy
1
@hello_there_andy Je fais beaucoup de virtualisation sur mon ordinateur portable, soit via des conteneurs LXC / LXD basés sur Linux sur une configuration NAT, soit via VMware, avec des maux similaires à NAT (en gros, je suis habitué à cet ensemble de problèmes heh). Le processus est similaire sous Linux et Windows, mais complètement différent en termes d'étapes, bien que dans mes cas mes machines virtuelles n'aient jamais besoin de l'extérieur -> dans; pour ces machines virtuelles, je les ai placées sur un hyperviseur ESXi dédié qui est une machine dédiée à l'exécution de machines virtuelles, et je le relie directement à une configuration Ethernet existante (pas de NAT là heh). Mais c'est une configuration atypique, bien sûr.
Thomas Ward
1
@hello_there_andy assurez-vous simplement que l'invité y est également openssh-serverinstallé - afin que vous puissiez accepter SSH. En dehors de cela, le reste est constitué de fonctionnalités de mise en réseau / pare-feu / configuration Windows. (Par conséquent, super utilisateur et non Ask Ubuntu)
Thomas Ward
3

Vous aurez besoin de mettre port forwardingenWindows 10 VM player

Vous devrez définir un port externe sur la machine Windows 10, qui sera transféré service portsur le virtual machinedans le NAT network.

Ce lien explique comment le faire

Yaron
la source
1
Bien que cela puisse théoriquement répondre à la question, les réponses liées uniquement aux liens sont généralement mal vues. Il serait préférable que vous incluiez des informations pertinentes à partir de messages liés, au cas où ces messages disparaissent à un moment donné dans le futur.
Thomas Ward
Merci pour le commentaire et pour avoir fourni les détails dans votre réponse.
Yaron