web-dev-qa-db-ja.com

vncサーバーをオンデマンドで起動する方法(起動時ではない)

基本的なxfce環境とtightvncserverがインストールされたvpsがあります。

Tightvncserverが実行されているポート(私の場合は5901)への接続を開始するたびに、自動的にtightvncserverが起動するようにします。

inetdまたはxinetdを使用してこれを行うことについての投稿を見てきましたが、(x)inetdが理由でUbuntuに含まれていないという多くの投稿を見てきました。それを使用するのは悪い考えです。

とにかく、ポート5901への着信接続があるたびに、できればできるだけ少ない依存関係でtightvncserverを自動起動する方法を探しています

3
QRohlf

なぜ "xinetdまたはinetdを使用するのが悪い考えなのか"はわかりません。私は両方のバグトラッカーをチェックしましたが、セキュリティの問題は見ませんでした。

とは言うものの、「xinetd」の構成について既に見つけたことを繰り返します。

xinetdの設定は非常に簡単です。 /etc/xinetd.d/ディレクトリを使用してすべてのサービスごとの構成を保存するため、tightvncserverSudo 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
}

それで全部です。次に、rc-dディレクトリのtightvncserverの起動を無効にする必要があります。

これに追加できるオプションは他にもありますが、 manual に任せます。

1
Braiam

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をご覧ください。 xinetdサービスとしてVNCを実行できるさまざまな方法を示すxinetd を使用してVNCサーバーを起動します。

Xinetdを使用する

Xinetdを使用しないことに関する解説全体は二段です。使用するには完全に優れたサービスであり、他のすべてと同様に、テクノロジーXを使用することの意味を理解する必要があります。

0
slm