По умолчанию 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' аргумента. это работает, но я надеваю, думают, что это - правильный подход.
Я думаю, что Ваше изменение в /etc/init.d/virtualbox
не работает, потому что это не получено systemd
. Попробуйте это.
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
Я смог получить свою работу 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
Так, самый близкий я пришел к решению этой вещи, это:
Редактирование/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