Как запустить VNC-сервер по требованию (не при загрузке)

У меня есть vps, в котором есть базовая среда xfce & amp; Герметичный сервер установлен.

Я хотел бы, чтобы не запускался tailvnserver автоматически всякий раз, когда я инициирую соединение с портом, на котором он работает (в моем случае, 5901).

Я видел сообщения об использовании inetd или xinetd для этого, но я также видел много сообщений, в которых говорится, что (x) inetd не включен в Ubuntu по какой-то причине, и что это плохая идея.

Как бы то ни было, я ищу способ автоматически запускать тесный сервер всякий раз, когда есть входящее соединение с портом 5901, желательно с как можно меньшим количеством зависимостей

3
задан 28 May 2014 в 19:33

2 ответа

Я не знаю, почему «плохая идея с использованием xinetd или inetd» . Я проверил оба баг-трекера и не увидел никаких проблем с безопасностью.

Тем не менее, я попытаюсь повторить то, что вы уже нашли о настройке xinetd:

xinetd довольно просто настроить. Он использует каталог /etc/xinetd.d/ для хранения всех настроек для каждой службы, поэтому вам нужно только создать конфигурацию, чтобы запустить tightvncserver, sudo vim /etc/xinetd.d/tightvncserver создать файл, а затем вставить свою конфигурацию (это можно изменить в соответствии ваши потребности):

service tightvncserver
{
        socket_type     =  stream
        protocol        =  tcp
        wait            =  no
        ## I don't run a vnc server myself, but you should change this for the user your VNC service uses.
        user            =  root
        port            =  5901
        server          =  /usr/sbin/tightvncserver
        ## This allows access from anyone in the 192.168 subnet, if you want anyone, just do not add this line.
        only_from       =  192.168.0.0
        log_on_failure  += USERID
        disable         =  no
}

Вот и все. Теперь вы должны отключить загрузку tightvncserver в каталогах rc-d.

Есть еще варианты, которые вы можете добавить к этому, но я оставлю это в руководстве .

0
ответ дан 28 May 2014 в 19:33

Вместо того, чтобы пытаться использовать tightvncserver, я бы попытался сделать то же самое, что предложил @ Braiam, но вместо Xvnc.

service Xvnc
{
        disable = no
        type = UNLISTED
        socket_type = stream
        protocol = tcp
        user = nobody
        wait = yes
        server = /usr/bin/Xvnc
        server_args = -inetd :1 -query localhost -geometry 1024x768 -depth 16 -NeverShared -once -rfbauth /root/.vncpasswd
        port = 5901
}

Вы можете настроить местоположение файла паролей, изменив этот бит выше: /root/.vncpasswd. Разрешения для этого файла могут быть короткими, поэтому вам может потребоваться сделать их chmod 600 .vncpasswd.

Если вам нужна дополнительная информация, посмотрите учебник, 2. Запуск сервера VNC с использованием xinetd , который показывает множество различных способов запуска VNC как службы xinetd.

Использование xinetd

Весь комментарий о неиспользовании xinetd является пустым. Это прекрасный сервис, которым нужно пользоваться, и, как и все остальное, вы должны понимать последствия использования технологии X, не более того.

0
ответ дан 28 May 2014 в 19:33

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

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