Les tests ont été réalisés sur les machines suivantes:

1) la machine ou est installé VirtualBox est une debian-lenny i686 -  Adresse IP 192.168.0.4

pme@etch28:~$ uname -a
Linux etch28 2.6.30-bpo.2-686-bigmem #1 SMP Fri Dec 11 20:33:34 UTC 2009 i686 GNU/Linux

pme@etch28:~$ ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:00 init [2] 
    2 ?        S<     0:00 [kthreadd]
    3 ?        S<     0:00 [migration/0]
    4 ?        S<     0:00 [ksoftirqd/0]
    5 ?        S<     0:00 [watchdog/0]
    6 ?        S<     0:02 [events/0]
    7 ?        S<     0:00 [cpuset]
    8 ?        S<     0:00 [khelper]
   11 ?        S<     0:00 [netns]
   14 ?        S<     0:00 [async/mgr]
   63 ?        S<     0:00 [kintegrityd/0]
   65 ?        S<     0:00 [kblockd/0]
   67 ?        S<     0:00 [kacpid]
   68 ?        S<     0:00 [kacpi_notify]
  152 ?        S<     0:00 [kseriod]
  184 ?        S<     0:00 [kondemand/0]
  201 ?        S      0:00 [khungtaskd]
  202 ?        S      0:00 [pdflush]
  203 ?        S      0:00 [pdflush]
  204 ?        S<     0:00 [kswapd0]
  205 ?        S<     0:00 [aio/0]
  206 ?        S<     0:00 [crypto/0]
  545 ?        S<     0:00 [ksuspend_usbd]
  570 ?        S<     0:00 [khubd]
  610 ?        S<     0:00 [ata/0]
  630 ?        S<     0:00 [ata_aux]
  807 ?        S<     0:00 [usbhid_resumer]
  948 ?        S<     0:00 [kjournald]
 1042 ?        S<s    0:00 udevd --daemon
 1912 ?        S<     0:00 [kstriped]
 1921 ?        S<     0:00 [ksnapd]
 1957 ?        S<     0:00 [kjournald]
 1958 ?        S<     0:00 [kjournald]
 1959 ?        S<     0:00 [kjournald]
 1960 ?        S<     0:00 [kjournald]
 1961 ?        S<     0:00 [kjournald]
 1963 ?        S<     0:00 [kjournald]
 2081 ?        Ss     0:00 /sbin/portmap
 2092 ?        Ss     0:00 /sbin/rpc.statd
 2273 ?        Ss     0:00 /sbin/syslogd
 2282 ?        Ss     0:00 /sbin/klogd -x
 2294 ?        Ss     0:00 /usr/bin/dbus-daemon --system
 2306 ?        Ss     0:00 avahi-daemon: running [etch28.local]
 2307 ?        Ss     0:00 avahi-daemon: chroot helper
 2318 ?        Ss     0:00 /usr/sbin/sshd
 2347 ?        Ss     0:00 /usr/sbin/cupsd
 2482 ?        Ss     0:00 /usr/sbin/hald
 2483 ?        S      0:00 hald-runner
 2501 ?        S      0:00 hald-addon-input: Listening on /dev/input/event3 /dev/input/event2 /dev/input/event0
 2508 ?        S      0:00 /usr/lib/hal/hald-addon-acpi
 2520 ?        S      0:00 hald-addon-storage: polling /dev/hdc (every 2 sec)
 2522 ?        S      0:00 hald-addon-storage: polling /dev/hdd (every 2 sec)
 2534 ?        Ss     0:00 /usr/bin/system-tools-backends
 2546 ?        Ss     0:00 proftpd: (accepting connections)
 2576 ?        Ss     0:00 /usr/sbin/cron
 2603 tty1     Ss     0:00 /bin/login --    
 2604 tty2     Ss     0:00 /bin/login --   
 2605 tty3     Ss+    0:00 /sbin/getty 38400 tty3
 2606 tty4     Ss+    0:00 /sbin/getty 38400 tty4
 2607 tty5     Ss+    0:00 /sbin/getty 38400 tty5
 2608 tty6     Ss+    0:00 /sbin/getty 38400 tty6
 2611 tty1     S+     0:00 -bash
 3615 tty2     S+     0:00 -bash
 6524 ?        Ss     0:00 sshd: pme [priv]
 6526 ?        S      0:00 sshd: pme@pts/0 
 6527 pts/0    Rs     0:00 -bash
 6557 pts/0    R+     0:00 ps ax



etch28:~# netstat -tpan
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2318/sshd      
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      2347/cupsd     
tcp        0      0 0.0.0.0:38722           0.0.0.0:*               LISTEN      2092/rpc.statd 
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      2081/portmap   
tcp        0      0 192.168.0.4:22          192.168.0.22:47524      ESTABLISHED 6524/sshd: pme [pri
tcp6       0      0 :::21                   :::*                    LISTEN      2546/proftpd: (acce
tcp6       0      0 :::22                   :::*                    LISTEN      2318/sshd      


Comme on le constate le serveur X n'est pas démarré et le fichier de config /etc/ssh/sshd_config contient entre autres les lignes suivantes:

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
#PrintLastLog no
TCPKeepAlive yes
#UseLogin no



2) La machine à partir de laquelle je vais lancer VirtualBox via une session X déportée est une ubuntu 8.10 x86_64 - Adresse IP 192.168.0.22

pme@p733:~$ uname -a
Linux p733 2.6.32.9 #1 SMP PREEMPT Wed Feb 24 10:31:48 CET 2010 x86_64 GNU/Linux

Première chose à faire: stopper gdm et le dévalider :

root@p733:~# /etc/init.d/gdm stop
root@p733:~# update-rc.d -f gdm remove

Relancer ensuite une session X sous un compte d'utilisateur en s'attribuant un DISPLAY différent de 0.

pme@p733:~$ startx -- :1

J'ouvre ensuite un terminal gnome et vérifie que ma variable DISPLAY est bien positionnée à 1:

pme@p733:~$ echo $DISPLAY
:1.0


Il faut ensuite autoriser le serveur à se connecter:


pme@p733:~$ xhost +192.168.0.4
192.168.0.4 being added to access control list

Passons aux tests:

Je vais exécuter VirtualBox sur ma machine sans qu'une quelconque interface graphique ne soit lancée sur le "serveur" virtualbox:

pme@p733:~$ ssh -X -f pme@192.168.0.4 DISPLAY=192.168.0.22:1 /usr/bin/VirtualBox   =>  RESULTAT


Sur le serveur je vais maintenant démarrer en ligne de commande une machine virtuelle nommée xp3 et lancer par la même occasion le serveur RDP:

pme@etch28:~$ VBoxVRDP --startvm xp3 &
[1] 6603
pme@etch28:~$ Sun VirtualBox Headless Interface 3.1.4
(C) 2008-2010 Sun Microsystems, Inc.
All rights reserved.

Listening on port 3389.


pme@etch28:~$ ps ax
.....
 6526 ?        S      0:00 sshd: pme@pts/0 
 6527 pts/0    Rs     0:00 -bash
 6603 pts/0    SLl    0:11 /usr/lib/virtualbox/VBoxHeadless --startvm xp3
 6617 pts/0    S      0:00 /usr/lib/virtualbox/VBoxXPCOMIPCD
 6624 ?        Sl     0:00 /usr/lib/virtualbox/VBoxSVC --pipe 8 --auto-shutdown
.....


Le netstat ci-dessous montre bien que le port 3389 (RDP) est à l'écoute

pme@etch28:~$ netstat -tpan
(Tous les processus ne peuvent être identifiés, les infos sur les processus
non possédés ne seront pas affichées, vous devez être root pour les voir toutes.)
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -              
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -              
tcp        0      0 0.0.0.0:3389            0.0.0.0:*               LISTEN      -              
tcp        0      0 0.0.0.0:38722           0.0.0.0:*               LISTEN      -              
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      -              
tcp        0      0 192.168.0.4:22          192.168.0.22:47524      ESTABLISHED -              
tcp6       0      0 :::21                   :::*                    LISTEN      -              
tcp6       0      0 :::22                   :::*                    LISTEN      -              

RESULTAT

On voit que la machine virtuelle est passée de l'état "éteint" à l'état "en fonction"

Je vais maintenant utiliser un client RDP pour me connecter sur le serveur VirtualBox:


Ca fonctionne au poil


Attention: Comme on le voit sur la copie d'écran je suis connecté sur le serveur virtualbox et non pas sur la machine XP elle-même.

Sur l'image suivante, j'ai ouvert une session sur la machine XP et je vais me connecter sur celle-ci (Adresse IP 192.168.0.45)

Bien sûr, le Service Terminal Server natif sur windows XP ne permettant pas de se connecter à plusieurs un message d'avertissement s'afiche.

En le validant je me retrouve sur la machine virtuelle qui a été configurée pour accepter les connexions à distance.

Maintenant je souhaite suspendre l'exécution de la machine virtuelle depuis le serveur toujours en ligne de commande:

Quelques secondes plus tard tout est ok.

Rien de bien nouveau donc mais je me dis que virtualbox est vraiment une solution de rechange à vmware très valable, d'autant que chez vmware c'est la galère à chaque changement de noyau (applications de patchs ...)


La galerie

Voir aussi : http://tips.pmenier.net/docext/deportx.html