Как я могу настроить vboxweb для слушания на определенном адресе на Ubuntu 16.04?

По умолчанию vboxweb.service только слушает на ipv6 локальном адресе:: 1. Мне нужен этот сервис для слушания на всех адресах ipv4, таким образом, я могу использовать сервис удаленно.

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

Редактирование/etc/default/virtualbox файла конфигурации согласно документации Virtualbox (глава 9.21.1), кажется, не работает:

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

Никакое изменение после перезапуска сервиса:

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

Я также попытался изменить порт через/etc/default/virtualbox, это также не работает.

Примечание: Я отредактировал/lib/systemd/system/vboxweb.service startscript для передачи '-размещают 0.0.0.0' аргумента. это работает, но я надеваю, думают, что это - правильный подход.

1
задан 30 June 2016 в 14:04

3 ответа

Я думаю, что Ваше изменение в /etc/init.d/virtualbox не работает, потому что это не получено systemd. Попробуйте это.

  1. Создают каталог, названный '/etc/systemd/service/vboxweb.service.d
  2. В нем, создают файл, названный custom-host.conf.

содержание файла было бы:

[Service]
Environment=VBOXWEB_HOST=0.0.0.0

Затем:

systemctl daemon-reload
systemctl restart vboxweb

Используя эти виды файлов описан в в человек systemd.unit :

Наряду с файлом единицы foo.service, "общедоступный" каталог, foo.service.d/, может существовать. Все файлы с суффиксом ".conf" из этого каталога будут проанализированы после того, как сам файл анализируется. Это полезно, чтобы изменить или добавить параметры конфигурации для единицы, не имея необходимость изменять файлы единицы. Каждый общедоступный файл должен иметь соответствующие заголовки раздела. Обратите внимание, что для инстанцированных единиц, эта логика будет сначала искать экземпляр ".d /" подкаталог и читать его ".conf" файлы, сопровождаемые шаблоном ".d /" подкаталог и ".conf" файлы там. Также обратите внимание, что настройки от" [Установка]" раздел не соблюдают в общедоступных файлах единицы и не имеют никакого эффекта.

переменные среды Установки документируется в человек systemd.exec

1
ответ дан 7 December 2019 в 13:43

Я смог получить свою работу phpVirtualBox путем следования советам выше, и также путем выполнения

vboxbmanage setproperty websrvauthlibrary null

Затем, я также изменился, где файл PID записан в. Вот [Service] блок от /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
1
ответ дан 7 December 2019 в 13:43

Так, самый близкий я пришел к решению этой вещи, это:

Редактирование/lib/systemd/system/vboxweb.service для запуска сервиса с - host=0.0.0.0 опция. Я также настроил сервис для запуска как некорневой пользователь vbox для немного большей безопасности.

[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

Создают и устанавливают корректные полномочия для/run/vboxweb:

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

перезагрузка Демона systemd и перезапуск vboxweb сервис:

sudo systemctl daemon-reload
sudo systemctl restart vboxweb.service

услуга теперь слушает на 0.0.0.0 и работает как пользователь 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
0
ответ дан 7 December 2019 в 13:43

Другие вопросы по тегам:

Похожие вопросы: