web-dev-qa-db-ja.com

xinetd上のVNCがvncserverを起動しない

debian Lennyでは、TightVNC1.3.9を使用してVNCサーバーを手動でセットアップできます。

vncserver -query localhost -once -geometry 1024x768 -depth 16 :1

しかし、私が読んだ方が良いオプションなので、次の構成でxinetdを使用します。

 service vnc-1024x768x16
  {
    protocol = tcp
    socket_type = stream
    wait = no
    user = nobody
    server = /usr/bin/vncserver
    server_args = -inetd -query localhost -once -geometry 1024x768 -depth 16
  }

サーバーに接続するためにポート5901を開いています。最初の方法(vncserverのみ)では、サーバーに正常に接続できます。

しかし、xinetdの方法では、接続できません。

外部的には、ポート5901が開いていて、VNCサービスも利用できることがわかります。 :1ディスプレイ用に生成されたVNCログを見ると、何も見つかりませんでした。

実際、問題はxinetdにあると考えていましたが、他のサービス(telnetやftpなど)をセットアップしていて、正しく使用できます。

だから今私はこれで迷子になっています、xinetdを介したVNCサービスで他に何を考えていませんか?この問題についての手がかりを得るために、ログや有用な情報はどこにありますか?

何か案は?

読んでくれてありがとう...


更新(nov-29-'10):

-Xディスプレイを取得するように管理しますが、変更してコマンドを実行するためのログイン画面やターミナルはありません

user = my_user_name
server = /usr/bin/Xvnc
server_args = -inetd -once -geometry 1024x768 -depth 16 -rfbauth=/home/my_user_name/.vnc/passwd

このXvncサーバーは別のVNCプログラムです(私が好むXtightvncではありません...)ユーザー名が変更され、passwdファイルに保存されている認証ファイルを使用できるようになりました

追加のパラメーター-querylocalhostを使用して(-inetdを使用せずに)手動でXvncを実行すると、ログイン画面が表示されます。しかし、Xvncでは非常に時間がかかります... Xtightvncではより高速な接続が得られます...

いずれにせよ、xinted.d構成ファイルで-query localhostパラメーターを設定しても、X表示画面、ログイン画面、端末など、何も表示されません。

私が理解している限り、-query localhostではログイン画面またはターミナルにXDCMPを使用できますが、xinetd.dでは機能しません。

そして付随的な問題:今私はメッセージを受け取ります

XDMCP fatal error: Session declined Maximum number of open sessions from your Host reached

そのため、今はこれ以上テストを行うことができません...少しグーグルで検索すると、許可される最大XDMCPセッションの数についてわかりました。しかし、私はこの数を増やす方法を見つけただけで、今は現在のXDMCPセッションを強制終了する方法を知る必要があります。何かアイデアはありますか?

再度、感謝します!

1
Javier Novoa C.

まあ、私はこれに対する妥協案をなんとか手に入れることができたと思います:

次の構成を使用して、ログイン画面を取得できます。

service vnc-1024x768x16
{
  protocol = tcp
  socket_type = stream
  wait = no
  user = user_name
  server = /usr/bin/Xvnc
  server_args = -inetd -query localhost -once -geometry 1024x768 -depth 16 -rfbport=5901 -rfbauth=/home/user_name/.vnc/passwd
  disable = no
}

これを見ると tutorial 、解決策が似ていることがわかります。私が探していたように彼らがvncserverを使用していないことに気づきました(私はvncserverを使用してxinetdなしでVNCサーバーを手動で実行しているため)。

Vncserverのマニュアルページを見ると、実際にはこのプログラムはXvncのラッパーであると言われています。ただし、vncserverを単独で実行すると、XvncではなくXtightvncという名前のプログラムが呼び出されます。

上記の構成で「server」行を変更してXvncではなくXtightvncを呼び出すと接続が確立されないため、Xvncを続行する必要があります。

XtightvncとXvncを使用することで私が気付いた他の大きな違いは、最後のものがかなり遅い接続を行うことです、それで私はまだXtightvncを好みます...

今では、これをもう少しうまく処理できますが、それ以上のアイデアも歓迎します...

ところで、私はXvncが実際に私のマシンのRealVNCであり、私が望むTightVNCではないことを発見しました。私が望むようにXtightvncを使用する方法についても、物事をうまくリダイレ​​クトする方法についてもっと調べる必要があると思います...

読んでくれてありがとう...

奥付のように...私はついにXtightvncを動作させることができました。問題? xinetdのserver_args構成行では、パラメーターに値を割り当てるための「=」文字を受け入れていません。 :Dなので、最終結果は次のようになります。

service vnc-1024x768x16
{
  protocol = tcp
  socket_type = stream
  wait = no
  user = user_name
  server = /usr/bin/Xvnc
  server_args = -inetd -query localhost -once -geometry 1024x768 -depth 16 -rfbport 5901 -rfbauth /home/user_name/.vnc/passwd
  disable = no
}

また、Xvnc4(realvnc)を指していたXvncソフトリンクを変更する必要があったため、最終的にXtightvncを指していました...

0
Javier Novoa C.