Comment faire pour SSH à un invité VirtualBox à l'extérieur via un hôte?

j'ai une VM Ubuntu qui tourne sur ma machine Windows 7. Comment le configurer pour que je puisse accéder au serveur web à L'extérieur via SSH?

j'ai trouvé des étapes ( configurer l'accès SSH entre hôte VirtualBox et VMS invités ) pour être en mesure de ssh à mon invité de mon hôte, mais cela me laisse toujours avec le problème d'y accéder par mon routeur.

je suppose que je pourrais installer un serveur SSH sur mon Windows machine puis tunnel quelques fois (bien que je ne suis pas sûr à 100% ce qu'il faut utiliser en termes de local, dynamique, etc. ou comment installer plusieurs tunnels?), mais y a-t-il un moyen de rendre la VM directement accessible à mon routeur pour que je puisse y faire un portage direct?

575
demandé sur Ali Almoullim 2011-05-06 07:24:03

14 réponses

la meilleure façon de se connecter à un client Linux VirtualBox VM est port forwarding . Par défaut, vous devriez déjà avoir une interface qui utilise NAT . Ensuite, allez sur le réseau paramètres et cliquez sur le bouton Port Forwarding . Ajouter une nouvelle règle . Comme nom de la règle, insérer "ssh". En tant que" Port hôte", insérer 3022. Comme" Guest port", insérez 22. Tout le reste de la règle peut être laissé en blanc.

ou depuis la ligne de commande

VBoxManage modifyvm myserver --natpf1 "ssh,tcp,,3022,,22"

où "myserver" est le nom de la VM créée. Vérifiez les règles ajoutées:

VBoxManage showvminfo myserver | grep 'Rule'

C'est tout! N'oubliez pas d'installer un serveur SSH dans la VM:

sudo apt-get install openssh-server

Pour faire un SSH sur la machine virtuelle invitée, écrire:

ssh -p 3022 user@127.0.0.1

user est votre nom d'utilisateur la VM.

1165
répondu vkostromin 2018-09-01 22:14:12

changer le type d'adaptateur dans VirtualBox à pontée, et mettre l'invité à utiliser DHCP ou mettre un statique adresse IP en dehors des limites de DHCP. Cela provoquera la Machine virtuelle à agir comme un invité normal sur votre réseau domestique. Vous pouvez ensuite une redirection de port.

127
répondu JohnD 2013-02-27 18:44:53

garder L'adaptateur NAT et Ajouter un deuxième adaptateur hôte seulement fonctionne étonnamment, et est crucial pour les ordinateurs portables (où le réseau externe change toujours).

http://muffinresearch.co.uk/archives/2010/02/08/howto-ssh-into-virtualbox-3-linux-guests /

N'oubliez pas de créer un réseau hôte seul dans virtualbox lui-même (GUI -> paramètres -> réseau), sinon vous ne pouvez pas créer l'interface hôte seul sur l'invité.

63
répondu orip 2012-05-02 08:53:55

Comment faire de la réseau de l'hôte uniquement ( mieux que ponté) pour Solaris 10 et Ubuntu 16.04

ajouter L'interface hôte seul

  1. Virtualbox > Fichier > Préférences > Réseau > Réseaux hôtes uniquement > Ajouter
  2. l'Arrêt de la vm.
  3. VM Paramètres > Réseau. Le premier adaptateur doit être Nat, le second hôte seulement.
  4. Start cmd.exe et exécuter ipconfig /all . Vous devriez voir les lignes:

    Ethernet adapter VirtualBox Host-Only Network:
       ...
       IPv4 Address. . . . . . . . . . . : 192.168.59.1
    

    deuxième adaptateur dans guest devrait également être en 192.168.59.*.

  5. Démarrer la VM.

Solaris 10

  1. Vérifier paramètres ifconfig -a . Vous devriez voir e1000g0 et e1000g1. Nous sommes intéressés par e1000g1.
  2. ifconfig e1000g down
  3. ifconfig e1000g 192.168.56.10 netmask 255.255.255.0 up
  4. vérifier depuis l'hôte si cette interface est accessible: ping 192.168.56.10

la sauvegarde de ces paramètres lors du redémarrage

# vi /etc/hostname.e1000g1
192.168.56.10 netmask 255.255.255.0
# reboot

configurer SSH service ( administrer ) pour se connecter en tant que root (Non adviced)

vérifier si ssh est activé

# svcs -a | grep ssh
online         15:29:57 svc:/network/ssh:default

Modifier /etc/ssh/sshd_config donc il y a

PermitRootLogin yes

Redémarrer le service ssh

svcadm restart ssh

à Partir de l'hôte vérifier

ssh root@192.168.56.10

Ubuntu 16.04

liste des interfaces:

ip addr

vous devriez voir trois interfaces comme lo, enp0s3, enp0s8. Nous utiliserons la troisième.

Éditer /etc/network/interfaces

auto enp0s8
iface enp0s8 inet static
    address 192.168.56.10
    netmask 255.255.255.0

puis sudo ifup enp0s8 . Vérifier si enp0s8 a eu la bonne adresse. Vous devriez voir votre adresse ip:

 $ ip addr show enp0s8
 ...
    inet 192.168.56.10/24 brd 192.168.56.255 scope global secondary enp0s8

si non, vous pouvez lancer sudo ifdown enp0s8 && sudo ifup enp0s8

https://superuser.com/questions/424083/virtualbox-host-ssh-to-guest/424115#424115

21
répondu rofrol 2017-05-23 11:47:32

vous pouvez également utiliser un réseau ponté (ou" adaptateur de pont", dans les versions plus récentes) dans paramètres réseau . Cela mettra votre VM dans un VLAN avec votre machine. Donc tu peux juste rentrer dans la VM comme ça.

SSH user@IP_OF_VM

18
répondu Kashyap Kopparam 2018-09-01 22:22:23
SSH Retour à Votre Domicile / Bureau VirtualBox Guest Machine De L'INTERNET

les réponses fournies par les autres utilisateurs ici: How to SSH to a VirtualBox guest externally through a host?

... m'a aidé à accomplir la tâche de se connecter de l'extérieur sur internet à la machine invité de mon ordinateur à la maison. Vous devriez être en mesure de vous connecter en utilisant des ordinateurs, des tablettes et des téléphones intelligents (android, IPhone, etc.). J'ajoute quelques pas de plus au cas où cela pourrait être utile à quelqu'un d'autre:

voici un schéma rapide de mon installation:

  • Remote device ---> INTERNET --> MODEM --> ROUTER --> HOST MACHINE --> GUEST VM

  • Remote device (ssh client) ---> PASS THRU DEVICES ---> GUEST VM (ssh server)

  • Remote device (leave ssh port 3022) ---> INTERNET --> MODEM --> ROUTER (FWD frm:p3022 to:p3022)--> HOST MACHINE (FWD frm:p3022 to:p22) --> GUEST VM (arrive ssh port 22)

la clé pour moi était de réaliser que toutes les connexions étaient PASSING-THROUGH des dispositifs intermédiaires pour passer de mon PC distant à ma machine virtuelle invitée à la maison-D'où le transfert de port!

Notes: * Besoin d'un client ssh pour demander une connexion sécurisée et d'un serveur SSH pour traiter la connexion sécurisée.

  • je vais transmettre le port 3022 comme utilisé dans la réponse choisie ci-dessus.

  • entrez votre IPs si nécessaire (modem/routeur à la maison, IP hôte, IP invité,etc.), Les noms choisis ne sont que des exemples-utiliser ou modifier.

1.Créez le tunnel ssh vers le port 3022 sur L'adresse IP externe de votre modem / routeur.

ssh client/device possible commands: ssh -p 3022 user-name@home_external_IP

2.Port forward = nous passons par la connexion du routeur à la machine hôte

  • assurez-vous également que les règles pare-feu /IPtable sur le routeur permettent aux ports d'être redirigés (ouverts si nécessaire) "

  • écran Pfwd du routeur entrées requises: AppName: SSH_Fwd, Port_from: 3022, Protocol: both (UDP / TCP), IP_address: hostIP_address, Port_to: 3022, tout le reste peut être vide

routeur DD-WRT logiciel de ressources / Info:

3.Pare-feu de la Machine hôte: ouvrir le port 3022 #ainsi le port transmis peut passer à travers à la machine invitée

  • machine hôte: installer VirtualBox, ajouts invités, et machine invitée si ce n'est déjà fait

  • configurer guest machine et ensuite suivre la section Réseau ci-dessous

  • J'ai utilisé VirtualBox GUI pour configurer le réseau des invités - plus facile que CLI

  • si vous souhaitez utiliser d'autres méthodes se référer à : VirtualBox/manual/ch06.html#natforward

4.Certains proposent d'utiliser L'adaptateur de pont réseau pour guest = accès au réseau local et à d'autres machines sur votre réseau local. Cela pose également un risque accru de sécurité, parce que maintenant votre machine invitée est maintenant exposée à des machines LAN et peut-être les pirates INTERNET si le pare-feu ne se configure pas correctement. Donc j'ai choisi l'adaptateur réseau attaché au NAT pour moins d'exposition à comblé des risques de sécurité.

sur la machine invité faire ce qui suit:

  • Machine hôte VirtualBox paramètres Réseau: Carte 1: Attaché à NAT
  • Machine hôte VirtualBox Règle de Transfert de Port: Nom:External_SSH, Protocole:TCP, Port de l'Hôte: 3022, Invité le Port 22, l'Hôte et l'invité IPs:laissez vide
  • cliquez sur advance dans la section Réseau puis cliquez sur Port forwarding pour entrer les règles
  • l'Invité de la Machine Pare-feu: ouvrir le port 22 #donc ssh connexion, entrez
  • Guest Machine: assurez-vous que le serveur ssh est installé, configuré correctement et qu'il tourne
  • test LINUX pour voir si le serveur ssh exécute la commande w/: sudo service SSH status
  • peut vérifier netstat pour voir si la connexion faite au port 22 sur la machine invitée

il y a aussi différents serveurs ssh et clients en fonction de plate-forme à l'aide.

  • wikipedia/Secure_Shell
  • wikipedia/Comparison_of_SSH_servers
  • wikipedia/Comparison_of_SSH_clients

Pour Les Utilisateurs Ubuntu:

  • ubuntu community: SSHOpenSSH/Configuring
  • ubuntu/community: OpenSSH/Keys

ça devrait être ça. Si j'ai fait une erreur ou si je veux ajouter quelque chose-n'hésitez pas à le faire-je suis toujours un noob.

Espérons que cela aide quelqu'un. Bonne chance!

5
répondu NoobNet14 2015-11-12 13:37:23

pour Windows host, vous pouvez :

  1. dans virtualbox manager:
    1. , sélectionnez ctrl + G dans votre gestionnaire de virtualbox,
    2. puis passer à network pannel
    3. ajouter un réseau privé
      1. assurez-vous que l'activation de DHCP N'est pas sélectionnée
  2. en réseau de gestion (windows)
    1. sélectionnez l'adaptateur VirtualBox host only nouvellement créé et la carte réseau physique
    2. clic droit et sélectionner "Make bridge"
  3. Profiter
5
répondu Alexandre Mélard 2016-07-22 04:49:12

vous pouvez également lancer un port forward vers votre hôte, ou tout autre serveur, à partir de votre invité. Ceci est particulièrement utile si votre invité est "verrouillé" ou ne peut pas compléter l'option ModifyVM (par exemple pas de permission à VBoxManage).

trois exigences mineures: 1) Vous êtes / pouvez vous connecter à L'invité VirtualBox (via L'interface graphique 'console', un autre invité, etc.), 2) vous avez un compte sur L'hôte VirtualBox (ou un autre serveur), et 3) la redirection SSH et TCP n'est pas bloquée.

en présumant que vous pouvez répondre aux 3 Exigences, ce sont les étapes:

  1. sur L'invité, Lancez netstat -rn et trouvez l'adresse de passerelle de la route par défaut destination 0.0.0. Disons que c'est "10.0.2.2". Cette adresse 'Gateway' est (l'une des) IP(s) virtuelle (s) de L'hôte VirtualBox.
  2. sur L'invité, Lancez ssh -R 2222:localhost:22 10.0.2.2 où "10.0.2.2" est l'adresse IP du serveur VirtualBox-ou-toute autre adresse IP du serveur que vous souhaitez porter de l'avant.
  3. sur L'hôte, Lancez ssh 10.0.2.2 -p2222 où 10.0.2.2 est l'adresse IP virtuelle par défaut de la passerelle/VBHost trouvée à l'étape 1. Si ce n'est pas L'hôte VirtualBox vers lequel vous transférez le port, alors la commande est ssh localhost -p2222
4
répondu Andrew 2015-02-24 19:00:42

suivez les étapes ci-dessous pour vous connecter à votre VM ubuntu en cours d'exécution dans la boîte virtuelle à partir de la machine hôte en utilisant putty (sans transfert de port):

  1. sur Virtualbox manager sélectionnez la vm, cliquez sur l'icône Paramètres. Puis aller Réseaux et activer deux adaptateurs comme ci-dessous:

    • Adaptateur 1 (pour l'accès internet): attaché à -> NAT, avancé -> Vérifier le câble connecté.
    • Adaptateur 2: attaché à - > adaptateur hôte seulement, avancé - > Vérifier le câble connecté et mode Promiscuous - > permet tout.
  2. Démarrer ubuntu en vm.

  3. Se connecter à la VM en tant que root.
  4. éditez le fichier '/etc/network/interfaces' comme ci-dessous et enregistrez-le:

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1
    iface eth1 inet dhcp
    
  5. redémarrez la VM.

  6. Se connecter à la VM et exécuter la commande ci-dessous pour vérifier L'IP attribuée à eth1:

    ifconfig
    
  7. utilisez cette IP pour ouvrir la session putty pour la VM.

4
répondu Piyush Raj 2017-11-30 04:50:29

pour SSH à une VM Ubuntu tournant dans VirtualBox depuis votre machine hôte, vous devez configurer deux adaptateurs réseau pour la VM.

tout d'abord, arrêtez la VM si ce n'est pas encore le cas.

sélectionnez ensuite la VM et cliquez sur le menu Paramètres dans la barre D'outils VirtualBox:

enter image description here

Adaptateur de configuration 1

enter image description here

Adaptateur de configuration 2

enter image description here

(Note: vous n'avez pas besoin de configurer de port forwarding.)

C'est ça. Une fois installé, vous pouvez démarrer votre VM. Dans votre VM, la configuration réseau ressemblera à celle ci-dessous et vous aurez également accès à Internet:

enter image description here

également dans votre machine hôte, vous pouvez ssh à votre VM:

enter image description here

assurez-vous que le serveur SSH a été installé et qu'il fonctionne correctement dans la VM.

$ ps aux | grep sshd
root 864 0.1 0.5 65512 5392 ? Ss 22:10 0:00 /usr/sbin/sshd -D

si ce n'est pas le cas, installez-le:

$ sudo apt-get install openssh-server

aussi pour votre information:

  • ma version VirtualBox: 5.2.6 r120293 (Qt5.6.2), 2018
  • My Ubuntu version: Ubuntu 16.04.3 LTS
  • ma machine hôte: Windows 10
4
répondu Yuci 2018-02-10 23:23:56

une bonne explication sur la façon de configurer le réacheminement de port avec NAT se trouve dans les documents VirtualBox: http://www.virtualbox.org/manual/ch06.html#natforward

2
répondu rodrunner 2013-03-10 11:55:11

le simple réglage du réseau à bridged a fait l'affaire pour moi.

votre adresse IP va changer lorsque vous faites cela. Cependant, dans mon cas ça n'a pas changé immédiatement. ifconfig renvoie la même adresse ip. J'ai redémarré la vm et boom, l'ip s'est mise à un départ avec 192.* et j'ai immédiatement eu accès à ssh.

0
répondu boulder_ruby 2013-09-10 01:15:21

sur les réseaux sécurisés la configuration de votre réseau à la passerelle pourrait ne pas fonctionner. Les administrateurs ne pouvaient autoriser qu'une seule adresse mac par port ou, pire encore, bloquer le port si les commutateurs détectaient plusieurs Mac sur un port.

la meilleure solution à mon avis est de mettre en place des interfaces réseau supplémentaires pour gérer les services supplémentaires que vous souhaitez exécuter sur vos machines. Donc, j'ai une interface de pont pour permettre de passer lorsque je prends mon ordinateur portable à la maison et peut SSH dans elle de d'autres appareils sur mon réseau ainsi qu'un adaptateur hôte uniquement lorsque je souhaite SSH dans ma VM à partir de mon ordinateur portable lorsque je suis connecté au réseau WiFi eduroam sur le campus.

0
répondu tensai 2014-01-09 19:14:48

utiliser adaptateur réseau NAT et Ajouter port forward. Mentionner l'adresse ip de l'hôte.N'utilisez pas 127.0.0.1 ou localhost.

0
répondu anunaki 2016-07-18 10:44:56