Como posso configurar o vboxweb para escutar endereços específicos no Ubuntu 16.04?

1

Por padrão, o vboxweb.service está apenas ouvindo o endereço local do ipv6 :: 1. Eu preciso desse serviço para escutar todos os endereços ipv4 para que eu possa usar o serviço remotamente.

user@vboxhost:~$ netstat -nl |grep 18083 tcp6       0      0 ::1:18083
:::*                    LISTEN

Editando o arquivo de configuração / etc / default / virtualbox de acordo com a documentação do Virtualbox (capítulo 9.21 .1) parece não funcionar:

user@vboxhost:~$ cat /etc/default/virtualbox 
# Defaults for virtualbox initscript
# sourced by /etc/init.d/virtualbox
# installed at /etc/default/virtualbox by the maintainer scripts

#
# This is a POSIX shell fragment
#

# Set this to 1 if you would like the virtualbox modules to be loaded by
# the init script.
LOAD_VBOXDRV_MODULE=1

# SHUTDOWN_USERS="foo bar"  
#   check for running VMs of user 'foo' and user 'bar'
#   'all' checks for all active users
# SHUTDOWN=poweroff
# SHUTDOWN=acpibutton
# SHUTDOWN=savestate
#   select one of these shutdown methods for running VMs
#   acpibutton and savestate causes the init script to wait
#   30 seconds for the VMs to shutdown
SHUTDOWN_USERS=""
SHUTDOWN=poweroff

# Custom vboxweb config
VBOXWEB_USER=vbox
VBOXWEB_HOST=0.0.0.0
VBOXWEB_PORT=18083

Nenhuma alteração depois de reiniciar o serviço:

user@vboxhost:~$ sudo systemctl restart vboxweb.service 
user@vboxhost:~$ netstat -nl |grep 18083
tcp6       0      0 ::1:18083               :::*                    LISTEN 

Eu também tentei mudar a porta via / etc / default / virtualbox, isso também não funciona.

Nota: Eu editei o /lib/systemd/system/vboxweb.service startscript para passar o argumento '--host 0.0.0.0'. isso funciona, mas não acho que essa seja a abordagem correta.

    
por DB9 30.06.2016 / 13:04

3 respostas

0

Acho que sua alteração para /etc/init.d/virtualbox não funciona porque não é originada por systemd . Tente isso.

  1. Crie um diretório chamado '/etc/systemd/service/vboxweb.service.d
  2. Nele, crie um arquivo chamado custom-host.conf .

O conteúdo do arquivo seria:

[Service]
Environment=VBOXWEB_HOST=0.0.0.0

Então:

systemctl daemon-reload
systemctl restart vboxweb

O uso desses tipos de arquivos é descrito em man systemd.unit :

% bl0ck_qu0te%

A configuração de variáveis de ambiente está documentada em man systemd.exec

    
por Mark Stosberg 30.06.2016 / 14:58
0

Então, o mais perto que cheguei de resolver isso é:

Edite /lib/systemd/system/vboxweb.service para iniciar o serviço com a opção --host = 0.0.0.0. Eu também configurei o serviço para iniciar como vbox não-root para um pouco mais de segurança.

[Unit]
Description=VirtualBox Web Service
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/vboxwebsrv --pidfile /run/vboxweb/vboxweb.pid --host=0.0.0.0 --background
PIDFile=/run/vboxweb/vboxweb.pid
User=vbox
Group=vboxusers

[Install]
WantedBy=multi-user.target

Crie e defina as permessões corretas para / run / vboxweb:

sudo mkdir /run/vboxweb
sudo chown vbox:vboxusers /run/vboxweb
sudo chmod 755 /run/vboxweb/

Atualize o daemon e reinicie o serviço vboxweb:

sudo systemctl daemon-reload
sudo systemctl restart vboxweb.service

O serviço agora está escutando em 0.0.0.0 e executando como usuário vbox:

user@vboxhost:~$ netstat -nl |grep 18083
tcp        0      0 0.0.0.0:18083           0.0.0.0:*               LISTEN     


user@vboxhost:~$ ps -ef |grep vboxweb
vbox      2905     1  0 17:08 ?        00:00:00 /usr/lib/virtualbox/vboxwebsrv --pidfile /run/vboxweb/vboxweb.pid --host=0.0.0.0 --background
    
por DB9 02.07.2016 / 17:24
0

Consegui que meu phpVirtualBox funcionasse seguindo as dicas acima e também executando

vboxbmanage setproperty websrvauthlibrary null

Em seguida, também mudei para onde o arquivo PID é gravado. Aqui está o bloco [Service] de /lib/systemd/system/vboxweb.service :

[Service]
User=vbox
Group=vboxusers
Type=forking
ExecStart=/usr/bin/vboxwebsrv --host=0.0.0.0 --pidfile /home/vboxadmin/.vboxweb.pid --background
PIDFile=/home/vboxadmin/.vboxweb.pid
    
por DaChew 30.09.2017 / 00:44