Como iniciar o servidor vnc sob demanda (não no boot)

3

Eu tenho um vps que tem o ambiente xfce básico & amp; tightvncserver instalado.

Eu gostaria que o tightvncserver fosse iniciado automaticamente sempre que eu iniciasse uma conexão com a porta em que ele é executado (no meu caso, 5901 ).

Eu já vi postagens sobre o uso de inetd ou xinetd para fazer isso, mas também vi muitas postagens dizendo que (x) o inetd não está incluído no Ubuntu por uma razão, e que é ruim idéia de usá-lo.

De qualquer forma, estou procurando uma maneira de iniciar automaticamente o tightvncserver sempre que houver uma conexão de entrada na porta 5901, de preferência com o menor número possível de dependências

    
por QRohlf 08.08.2013 / 21:32

2 respostas

0

Eu não sei porque é "má idéia usar xinetd ou inetd" . Eu verifiquei o bug tracker e não vi nenhum problema de segurança.

Dito isto, vou tentar repetir o que você já encontrou sobre a configuração do 'xinetd':

xinetd é bastante simples de configurar. Ele usa o diretório /etc/xinetd.d/ para armazenar toda a configuração por serviço, portanto, você só precisa criar a configuração para iniciar tightvncserver , um sudo vim /etc/xinetd.d/tightvncserver para criar um arquivo e depois inserir sua configuração (isso pode ser modificado de acordo com suas necessidades):

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
}

Isso é tudo. Agora você deve desativar a inicialização do tightvncserver nos diretórios do rc-d.

Existem mais opções que você pode adicionar, mas deixarei isso para o manual .

    
por Braiam 08.08.2013 / 21:52
0

Em vez de tentar usar tightvncserver , tentaria a mesma coisa que a @ Braiam sugeriu, mas com o 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
}

Você pode ajustar onde o arquivo de senha mora alterando este bit acima: /root/.vncpasswd . As permissões nesse arquivo podem ser squirrelly, então você pode precisar torná-las chmod 600 .vncpasswd .

Se você precisar de mais detalhes, dê uma olhada no tutorial, 2. Iniciando o servidor VNC usando xinetd que mostra muitas maneiras diferentes de executar o VNC como um serviço xinetd .

Usando xinetd

O comentário inteiro sobre não usar o xinetd é beliche. É um serviço perfeitamente bom de usar e, assim como tudo mais, você precisa entender as implicações do uso da tecnologia X, nada mais.

    
por slm 28.05.2014 / 15:09