
ゼロ円でできるXサーバ
WindowsでLinuxをリモート操作(後編)
中澤 勇
@IT編集局
2001/4/24
VNCをinetdで起動
時々VNCを使うだけであれば、以上の設定で十分ではないかと思う。しかし、幾つかの欠点もある。まず、VNC使用時は、先にtelnetなどでLinuxに接続してからVNCサーバを起動、VNCを使い終わったら再びtelnetなどでVNCサーバを停止させる必要がある(個人環境であればVNCサーバを起動させたままでもよいかもしれないが)。また、セキュリティ的に脆弱であることも気になる。一応暗号化されているとはいえ、パスワード以外にアクセスを制限する手段がないのである。
そこで思い起こされるのがinetdの存在だ。inetdはクライアントからのリクエストに応じて必要なサーバを起動させるもので、常駐させておく必要のないサーバ類(telnetなど)はinetd経由になっている。また、inetdを使えばTCP Wrapper(tcpd)で経路によるアクセス制御を行うこともできる。VNCサーバにアクセスできるマシンを特定のIPアドレスやネットワークで限定すれば、セキュリティを大幅に強化できる。いずれにせよ、インターネットからアクセスできるマシンでVNCを利用するのはオススメできないが……。
VNCサーバをinetdから起動できるようにできないだろうか? そう考えたのがAndre Moreira氏である。同氏は、VNCをinetd経由で起動させるiXvnc patch for VNC X-Server(http://www.dei.isep.ipp.pt/~andre/extern/ixvnc.htm)というパッチを作成した。パッチ登場時はVNCをソースで入手して、このパッチを当ててからコンパイルする必要があった。しかし、VNCの最新版である3.3.3R2からはこのパッチが取り込まれたため、これまでの手順でインストールしたバイナリ版はすでにinetdに対応しているのである。前編の始めで「ソース版は必要ない」と書いた理由はここにある。
■/etc/servicesの設定
VNCサーバをinetd経由で起動するためには、若干設定の追加が必要だ。
まず、rootになって/etc/servicesに以下の内容を追加する。
vnc-800x600x8 5950/tcp |
/etc/servicesは
サービス名 ポート/プロトコル |
という書式になっている。「vnc-800x600x8」などの部分は任意に設定するサービス名であり、上記のとおりにする必要はないが、この後で設定する/etc/inetd.confの記述もそれに合わせて変更すること。また、ここでは4つのサービスを追加したが、1つだけでもよいし、さらに増やしてもよい。ポート番号を重複させないことにだけ注意。
■/etc/inetd.confの設定
次に/etc/inetd.confの設定だ。/etc/inetd.confに以下の内容を追加する。
vnc-800x600x8 stream
tcp nowait nobody /usr/local/bin/Xvnc Xvnc -inetd -query ホスト -once
-geometry 800x600 -depth 8 -cc 3 |
「vnc-800x600x8」などは、/etc/servicesで指定したサービス名。両者の対応がとれていないとVNCを起動できないので注意すること。「/usr/local/bin/Xvnc」はVNCサーバ(Xvnc)のパスである。
以降はVNCサーバを起動させる際のパラメータ指定だ。
-inetd
Xvncをinetd経由で起動させるオプション(必須)
-query ホスト
XDMCP(X Display Manager Control Protocol)を使ってユーザー認証を行う指定。「ホスト」は、VNCサーバが動作するマシンを指定する。筆者の場合はIPアドレスにした。
例:-query 192.168.33.8
-once
xsessionが終了した時点でVNCサーバを終了させる
-geometry 800x600 -depth 8 -cc 3
仮想Xデスクトップのサイズと色数の指定。-depth 8の場合は-cc 3も追加する
■gdmの設定
XDMCPでユーザー認証を行わせるため、Linuxをグラフィカルログインに変更しておく必要がある(テキストログインにしていた場合)。ディストリビューションによってグラフィカルログインに使うディスプレイマネージャはxdm、kdmなどさまざまだが、筆者が使っているLASER5 Linux 6.4の場合はGNOMEのgdmなので、これをそのまま使うことにする。
LASER5 Linux 6.4のデフォルト設定では、XDMCPが無効になっているので/etc/X11/gdm/gdm.confの以下の部分を編集して有効化する。
[xdmcp] |
これで準備は完了。後はLinuxをランレベル5で起動してグラフィカルログイン化する。グラフィカルログイン化する方法は、Linux Tipsの「テキストログインとグラフィカルログインを切り替えるには」を参照していただきたい。
なお、筆者の環境ではこれだけで問題なく接続できたが、これだけではうまくいかないというケースを聞いたことがある。VNC経由でグラフィカルログインしてもLinuxのデスクトップ画面が表示されない場合は、/etc/X11/gdm/gdm.confの[daemon]セクションにある
KillInitClients=1 |
を
KillInitClients=0 |
に変更してみよう。
|
VNCサーバをinetd経由で起動させる場合、Windowsからの接続方法も若干異なる。もちろん、「vncserver :1」などとして、あらかじめVNCサーバを起動しておく必要はない。
Windowsから接続する際は、まずWindows側でVNCビューアを起動する。接続先を問い合わせるダイアログボックスが表示されたら、従来のディスプレイ番号の代わりに/etc/servicesに記述したポート番号を指定する。ただし、ポート番号は5900を引いた下2けただけにする。
例えば、/etc/servicesに
vnc-800x600x8 5950/tcp |
という設定を追加しており、800×600ドット 8bitsカラーでVNCサーバを起動させるには、「192.168.33.8:50」と指定する(IPアドレスは環境に応じて読み替えること)。1024×768ドット 16bitsカラーにするなら「192.168.33.8:51」だ。
接続先を指定すると、パスワード入力ダイアログボックスをパスしてgdmの画面になる。
![]() |
| 画面1 VNC経由で表示されたgdmの画面(画像をクリックすると拡大表示します) |
ここでLinuxのユーザーアカウントとそのパスワード(VNCで設定したパスワードではないことに注意)を入力する。
![]() |
| 画面2 800×600ドットのサイズで起動したGNOME。入出力はWindowsで行われるが、処理自体はLinuxマシンで実行する(画像をクリックすると拡大表示します) |
なお、あらかじめvncserverでVNCサーバを待機させておく方法とinetd経由で接続時に起動させる方法は共存できる。VNCビューワで「192.168.33.8:1」のようにディスプレイ番号を付加した場合は待機していたVNCサーバが、「192.168.33.8:5x」としてポート番号を指定した場合はinetd経由で新たにVNCサーバが起動する。共存させる意義には疑問がないでもないが。
|
2/2
|
|
| Index | |
| ゼロ円でできるXサーバ WindowsでLinuxをリモート操作(後編) |
|
| 前編 | |
| VNCの高度なカスタマイズ 新規ユーザーへの対応 Window Managerを簡単切り替え |
|
| VNCをinetdで起動 /etc/servicesの設定 /etc/inetd.confの設定 gdmの設定 |
|
| Windowsからの接続 | |
| Linux Square全記事インデックス |
| Linux Squareフォーラム Windowsとの共存/連携関連記事 |
| 特集:ゼロ円でできるデュアルブート LinuxとWindowsを共存させる Windows 98とLinuxの最も基本的なデュアルブート環境を構築しながら、OSの共存に必要な基礎知識を紹介する |
|
| 特集:続ゼロ円でできるデュアルブート LinuxとWindows 2000を共存させる 今回はLinuxとWindows 2000の組み合わせに挑戦しよう。Windows 2000のOS LoaderにLinuxを登録する方法を紹介する |
|
| 特集:ゼロ円でできるXサーバ WindowsでLinuxをリモート操作(前編) Windows用Xサーバは高価だ。しかしライセンスフリーのVNCなら低コストでリモート操作環境を構築できる。その方法を紹介しよう |
|
| 特集:ゼロ円でできるXサーバ WindowsでLinuxをリモート操作(後編) 今回は多ユーザー環境などに適応させるカスタマイズ方法や、inetd経由でVNCサーバを自動起動させる方法を紹介しよう |
|
| 特集:真ゼロ円でできるXサーバ Windows 2000で動かすXFree86[インストール編] Windows上にGNU環境を作るCygwinを使って、Windows 2000でXFree86を動かしてみよう。これで完全なフリーのXサーバが手に入る |
|
| 特集:真ゼロ円でできるXサーバ Windows 2000で動かすXFree86[設定・運用編] Cygwin/XFree86でLinuxサーバにアクセスしよう。sshによる接続や日本語入力、Win2kでWindow Makerを動かす方法まで |
|
| 特集:真ゼロ円でできるXサーバ Cygwin/XFree86最新事情と日本語化 多くのパッケージが標準setup.exeでインストールできるようになったCygwin。今回は日本語化を中心に環境構築方法を解説 |
|
| 特集:真ゼロ円でできるXサーバ Cygwin/XFree86でKDE & GNOMEを使おう Cygwin/XFree86の準備ができたので、Xサーバとして活用しよう。後半ではKDEとGNOMEを動かすための方法を解説 |
|
| Linux Squareフォーラム全記事インデックス |
|
TechTargetジャパン
- OSSライセンスの採用傾向に「変化」あり (2012/5/21)
OSS普及の一翼を担ってきたライセンス、GPLファミリー採用の割合が減少傾向にあるそうです。いったいどうして? - ここからFirefoxの反撃が始まる (2012/3/12)
2月のLinux SquareのランキングではFirefoxの記事がダントツのページビューを集め、トップに立ちました - CMakeでMySQLをビルドしてみる (2012/3/8)
ここまでの作業でCMakeを使う準備が整いました。今回はひとまずMySQLをビルドしてみます - MySQLのビルドに欠かせないCMakeを準備する (2012/3/2)
今回は、MySQLをビルドするために欠かせないツール「CMake」をインストールし、使う準備をします
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


