Fedora 12で xinetd, VNC, XDMCP (概要編)

サーバのOSをFedora 8 から Fedora 12 に変えました。

今までVNCビューアを使って、xinetdでVNCサーバを起動しXDMCPでログインをして使っていたので、今回もその設定をしようとしたところ、パッケージ名が変わっていたり環境が変わっていたりで、少し手間取りました。初めからわかっていればFedora 8 より 12 の方が簡単に設定できるようになっていたのですが、以前と同じ方法で設定しようとすると、少し迷ってしまいます。

Fedora 8から12の間のどのバージョンで変わったのかはわかりませんが、今のところネット上に設定方法をわかりやすく書いた情報はなさそうなので、簡単にまとめておきます。

なお、OSインストール時に指定する追加タスクは、「オフィスとプロダクティビティ」のチェックもはずして、何もチェックしていない状態でインストールしています。

まずは、Fedora 8と違っていたところの概略

  • パッケージ構成
    • Fedora 8
      vncサーバやxinetdなどを個別にインストール
    • Fedora 12
      vnc-ltsp-configをインストールすれば、依存パッケージとしてVNCサーバやxinetdなどがインストールされ、VNC+XDMCP環境がほとんどできてしまう。
  • xinetdのVNC設定ファイル構成
    • Fedora 8
      自分で作成。/etc/servicesに追加記述(*1)し、/etc/xinetd.d/vncNxN (自分で作成)(*2)に、対応するサービス定義を記述した。
    • Fedora 12
      vnc-ltsp-configをインストールすると設定ファイル/etc/xinetd.d/vnctsが作成され、disablenoにするだけでOK。/etc/servicesの書き換えは不要
  • xinetdのVNC設定内容
    • Fedora 8
      /etc/servicesのサービス定義追加と、それにあわせた/etc/xinetd.d/vncNxNのサービス記述。
    • Fedora 12
      /etc/xinetd.d/vnctsの設定で、
      type=UNLISTED
      port=5900
      が記述されていた。この設定だと、/etc/servicesに書いていなくても、ポート5900の時にはこのサービスが起動される。(今まで知りませんでした。(*3)
  • Xvncの起動方法
    • Fedora 8
      /etc/xinetd.d/vncNxNserver/usr/bin/Xvncを、 server_argsに必要な引数全てを記述して起動していた。
    • Fedora 12
      /etc/xinetd.d/vnctsserverには/usr/bin/vncts (シェルスクリプト)が、server_argsには各サービスで異なる引数(-geometry-depth)だけが記述されている。
      /etc/sysconfig/vnctsにXvncのパスと各サービス共通の引数が定義されており、/usr/bin/vnctsでこのファイルを読み込み、/etc/xinetd.d/vnctsで定義された引数を追加してXvncを起動している。

(*1) /etc/servicesに追加記述

vnc1280x1024    5900/tcp                        # Xvnc 1280 x 1024
vnc1592x1136    5901/tcp                        # Xvnc 1592 x 1136
vnc1600x1200    5902/tcp                        # Xvnc 1600 x 1200

(*2) /etc/xinetd.d/vncNxN

service vnc1280x1024
{
	socket_type	= stream
	wait		= no
	user		= nobody
	server		= /usr/bin/Xvnc
	server_args	= -geometry 1280x1024 -inetd -query localhost -once securitytypes=none -desktop Planets
	disable		= no
}

service vnc1592x1136
{
	socket_type	= stream
	wait		= no
	user		= nobody
	server		= /usr/bin/Xvnc
	server_args	= -geometry 1592x1136 -inetd -query localhost -once securitytypes=none -desktop Planets
	disable		= no
}

service vnc1600x1200
{
	socket_type	= stream
	wait		= no
	user		= nobody
	server		= /usr/bin/Xvnc
	server_args	= -geometry 1600x1200 -inetd -query localhost -once securitytypes=none -desktop Planets
	disable		= no
}

(*3)

他に今回新しく知った事として

今まで、/etc/xinetd.d/にあるファイルは全て設定ファイルになると思っていたので、オリジナルをfoo.origなどとせずに、別ディレクトリに保存していました。

しかし、% man xinetd.conf によると、「名前にドットを含むファイルと、名前がチルダで終わるファイルは対象外」でした。以前はそんな対象外ファイルなんてなかったと思ったのですが…

コメント

  1. Pingback: Imai blog

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA