Ik gebruik een Debian server als NAS en als VirtualBox-hypervisor, maar dat kon natuurlijk ook Ubuntu Server zijn.
Hij heeft geen GUI en dus draait VirtualBox daar volledig headless op. Nu kun je de VirtualBox via ssh en X11-forwarding toch wel tevoorschijn toveren op de desktop van je werkstation. Daarvoor moet je op de server alleen xbase-client en xauth installeren en dan hoeft op de server in /etc/ssh/sshd_config alleen nog X11Forwarding yes gezet te worden.
Daarna kun je vanuit een terminal de VirtualBox beheerconsole oproepen via:
ssh -X user@server VirtualBox &
of eventueel
ssh -Y user@server VirtualBox &
Dat werkte prima tot enige tijd geleden. Plots stopte het en kreeg ik enkel nog foutmeldingen "failed to open X11 display" te zien. Uiteraard denk je dan eerst aan updates die geïnstalleerd zijn of zo en begin je dat allemaal na te kijken. Niks: alles schijnt in orde en alles wat hij aan boord moet hebben, heeft hij aan boord. Alleen werkt het niet meer. Op geen enkel werkstation. Het moet dus iets op de server zijn.
Pogingen om xlogo te starten, gaven iets meer duidelijkheid. Die gaf namelijk een foutmelding dat hij geen display vond om te openen. En ja hoor: via ssh -X ingelogd naar een terminalprompt was er geen DISPLAY environment variabele te bekennen. Zelf een correcte variabele invullen hielp niet, dan zei hij gewoon dat hij dat display niet kon openen.
IPv6
De reden bleek, dat ik IPv6 had uitgeschakeld op de server. Mijn provider ondersteunt dat niet en mijn vorige router ook niet (huidige wel), en dus brengt IPv6 in dat geval alleen maar vertragingen met zich mee. Ik had in /etc/sysctl.conf een instructie opgenomen om alle IPv6 netwerkfuncties uit te schakelen. Alleen had het X11-forwardingverkeer van ssh daar andere ideeën over. Die verwachtte dat hij een Ipv6 localhost kon vinden. Die vond hij niet meer en dus weigerde hij een display toe te wijzen.
Man, man, man. Daar heb ik LANG naar gezocht!
OPLOSSING
Ofwel IPv6 enablen (maar ik ben koppig als ik tegengewerkt word) ofwel in /etc/sshd_config deze regel wijzigen of toevoegen:
AddressFamily inet
die zorgt ervoor dat sshd gebonden wordt aan IPv4 en niet IPv6. En inderdaad: dat werkt! Probleem opgelost.
Dus publiceer ik dat hier even in de hoop dat het een van jullie kan helpen als je met hetzelfde probleem geconfronteerd raakt.