2005/08/19(金) [n年前の日記]
#12 [vine] VNCをインストール
Windows から Linux を、あるいは、Linux から Windows を、あるいは、Windows から Windows を遠隔操作できるソフト。
妹のノートPCは WinMe が動いてるせいか GIMP が起動しない。ので、最悪 Linuxサーバに vnc を使ってアクセスして利用できるようにならないかと。速度は遅いだろうけど。一応「お試し」ぐらいはできるだろうと。
例えば、
妹のノートPCは WinMe が動いてるせいか GIMP が起動しない。ので、最悪 Linuxサーバに vnc を使ってアクセスして利用できるようにならないかと。速度は遅いだろうけど。一応「お試し」ぐらいはできるだろうと。
◎ Windows側のインストールと起動 :
ブラウザでもアクセスできるらしいけど、表示色が少ない等不便なところもあるので、専用ビューワを使ったほうがよさげ。
一応、Linux側は設定済みという前提で。
VNCビューワをDL・インストールする。 _RealVNC のサイトから辿っても取得できるけど。 _RealVNC日本語インストール版 があるらしいので、せっかくだから日本語版をインストール。
後は、VNCビューワを起動して、「サーバ名:1」とか「サーバ名:2」とか入力して、パスワード入力をすればOK。ちなみに、サーバ名の後ろの番号はディスレプレイ番号。VNCサーバが何番で待ってるかで違ってくる。
ウインドウを閉じれば接続も切れる、のかな。
一応、Linux側は設定済みという前提で。
VNCビューワをDL・インストールする。 _RealVNC のサイトから辿っても取得できるけど。 _RealVNC日本語インストール版 があるらしいので、せっかくだから日本語版をインストール。
後は、VNCビューワを起動して、「サーバ名:1」とか「サーバ名:2」とか入力して、パスワード入力をすればOK。ちなみに、サーバ名の後ろの番号はディスレプレイ番号。VNCサーバが何番で待ってるかで違ってくる。
ウインドウを閉じれば接続も切れる、のかな。
◎ Javaが動くブラウザを使っているならブラウザからアクセスすることもできるらしい :
http://ホスト名:5800+ディスプレイ番号/にアクセスするのだとか。
例えば、
- ホスト名 = hoge
- ディスプレイ番号 = 1
http://hoge:5801/となるし。
- ホスト名 = fuga
- ディスプレイ番号 = 2
http://fuga:5802/になるらしい。
◎ Linux側のvncserverインストール・起動・終了 :
ここから先はサーバ管理者の仕事。
インストール。
とりあえず、Linux側で vncserver 起動。putty等を使って ssh でアクセス中に打ち込んでみる。
画面の大きさや色のモードを指定するときは、
vncserver 終了方法。
長々と打ち込むのが面倒なときは、~/.bashrc に alias でも書いておく。
これで、
でも、一々こういうことをするのも面倒。vncビューワでアクセスしたら自動的に起動するようにしたい。たしか inetd がどうとか…。今後の課題。
インストール。
# apt-get install vnc-server
とりあえず、Linux側で vncserver 起動。putty等を使って ssh でアクセス中に打ち込んでみる。
$ vncserver :1最初の起動時はパスワードを尋ねてくる。
画面の大きさや色のモードを指定するときは、
$ vncserver -geometry 992x704 -depth 24 -pixelformat RGB888 :1といった感じにするらしい。与えてるオプションの意味は、
- -geometry 992x704
- 画面サイズ。
- -depth 24
- 色のモード(8,16,24)。
- -pixelformat RGB888
- サーバが使用するピクセルフォーマット。RGBnnn or BGRnnn。~/.vnc/ 内のログを見たら、サーバとクライアントで合ってなかったみたいなので、指定してみたり。
vncserver 終了方法。
$ vncserver -kill :1
長々と打ち込むのが面倒なときは、~/.bashrc に alias でも書いておく。
alias vncstart='vncserver -geometry 992x704 -depth 24 -pixelformat RGB888 :1' alias vncstop='vncserver -kill :1'次回ログイン時に修正内容は有効になるけど、修正後の ~/.bashrc の変更をログアウトせずに反映させたいときは、
$ source ~/.bashrcと打つ。
これで、
$ vncstart $ vncstopで起動・終了ができる。
でも、一々こういうことをするのも面倒。vncビューワでアクセスしたら自動的に起動するようにしたい。たしか inetd がどうとか…。今後の課題。
◎ vncサーバ側の設定 :
~/.vnc/xstartup に書くことで何をどう表示するか指定できる…らしい。/etc/X11/xinit/xinitrc が参考になる模様。というか。
/etc/hosts.(allow|deny) に以下を追加して、利用制限をつける…らしい。
/etc/hosts.deny に追加。
/etc/hosts.allow に追加。
$ cp ~/.vnc/xstartup ~/.vnc/xstartup.orig20050819 $ cp /etc/X11/xinit/xinitrc ~/.vnc/xstartupこうやって丸々コピーしちゃってもいいような気も。
/etc/hosts.(allow|deny) に以下を追加して、利用制限をつける…らしい。
/etc/hosts.deny に追加。
Xvnc: allこれで、基本的には vncserver ≒ Xvnc がどこからも使えない状態になる、はず。その上で使える条件を指定していく。
/etc/hosts.allow に追加。
sshd: localhost 192.168.1.0/255.255.255.0 Xvnc: localhost 192.168.1.0/255.255.255.0これで 192.168.1.x の IP からは使える状態になる。のかな。たぶん。
◎ inetd起動を設定 :
_2005/02/11
にcoLinuxの設定で似たようなことをやってたので参考にしつつ作業。
/etc/services に追加。
/etc/inetd.conf に追加。(ただし、これは失敗例。)
gdm と xvfb(XOrg-Xvfb) をインストール。ちなみに、gdm は既に入ってた。(Vine 3.1 の場合) また、xvfb は要らないかもしれず。
/etc/X11/gdm/gdm.conf を修正。
inetd 再起動。
という感じでやってみたのだけど。上手くいきませぬ。Win側のビューワを起動して「ホスト名:50」を打っても、ユーザ名の入力欄はグレー。パスワードしか尋ねてこない。しかも、パスワードを打ってもアクセスできないと言われる。本来ここで gdm が出てこないといかんはずだけど…。
/etc/inittab を修正して、RunLevel 5(グラフィカルログイン)でOSを起動してみた。相変わらずダメ。
情報を探してるうちに、 _VNC 3.Xを使用している場合は「-SecurityTypes None」オプションはいらない という話を見かけた。「3.X は要らない」ということは、「4.X では要る」ということかしら。 _VNC覚書(VineLinux3.0(inetd起動用)) というページには、vnc認証に関連するオプション、と書いてある。
/etc/inetd.conf への記述の中で、
inetd 再起動。
RunLevel 5、かつ、この指定なら、Win側のビューワでアクセスした際に gdmらしきログイン画面が出てくる。これで正解なのかしら?
/etc/inittab を修正して、RunLevel 3(テキストログイン)でOSを起動後、Win側からアクセスしてみた。これはダメ。テキストログインにするとダメか。
/etc/X11/gdm/gdm.conf を修正して、/usr/bin/X11/Xvfb を使うように指定してみた。これもダメ。
/etc/services に追加。
vnc-1152x864x24 5950/tcp vnc-1152x864x8 5951/tcp vnc-1024x768x24 5952/tcp vnc-1024x768x8 5953/tcp
/etc/inetd.conf に追加。(ただし、これは失敗例。)
vnc-1152x864x24 stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/Xvnc -inetd -query localhost -once -geometry 1152x864 -depth 24 -pixelformat RGB888 vnc-1152x864x8 stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/Xvnc -inetd -query localhost -once -geometry 1162x864 -depth 8 -cc 3 vnc-1024x768x24 stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/Xvnc -inetd -query localhost -once -geometry 992x704 -depth 24 -pixelformat RGB888 vnc-1024x768x8 stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/Xvnc -inetd -query localhost -once -geometry 992x704 -depth 8 -cc 3
gdm と xvfb(XOrg-Xvfb) をインストール。ちなみに、gdm は既に入ってた。(Vine 3.1 の場合) また、xvfb は要らないかもしれず。
# apt-get install gdm XOrg-Xvfb
/etc/X11/gdm/gdm.conf を修正。
- [daemon]
- KillInitClients=false
- [xdmcp]
- Enable=true
inetd 再起動。
/etc/rc.d/init.d/inet restart
という感じでやってみたのだけど。上手くいきませぬ。Win側のビューワを起動して「ホスト名:50」を打っても、ユーザ名の入力欄はグレー。パスワードしか尋ねてこない。しかも、パスワードを打ってもアクセスできないと言われる。本来ここで gdm が出てこないといかんはずだけど…。
/etc/inittab を修正して、RunLevel 5(グラフィカルログイン)でOSを起動してみた。相変わらずダメ。
情報を探してるうちに、 _VNC 3.Xを使用している場合は「-SecurityTypes None」オプションはいらない という話を見かけた。「3.X は要らない」ということは、「4.X では要る」ということかしら。 _VNC覚書(VineLinux3.0(inetd起動用)) というページには、vnc認証に関連するオプション、と書いてある。
/etc/inetd.conf への記述の中で、
-securitytypes noneをそれぞれつけてみた。こんな感じの記述に。(これでもまだ足りない。)
vnc-1152x864x24 stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/Xvnc -inetd -query localhost -once -geometry 1152x864 -depth 24 -pixelformat RGB888 -securitytypes none vnc-1152x864x8 stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/Xvnc -inetd -query localhost -once -geometry 1162x864 -depth 8 -cc 3 -securitytypes none vnc-1024x768x24 stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/Xvnc -inetd -query localhost -once -geometry 992x704 -depth 24 -pixelformat RGB888 -securitytypes none vnc-1024x768x8 stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/Xvnc -inetd -query localhost -once -geometry 992x704 -depth 8 -cc 3 -securitytypes none
inetd 再起動。
/etc/rc.d/init.d/inet restart
RunLevel 5、かつ、この指定なら、Win側のビューワでアクセスした際に gdmらしきログイン画面が出てくる。これで正解なのかしら?
/etc/inittab を修正して、RunLevel 3(テキストログイン)でOSを起動後、Win側からアクセスしてみた。これはダメ。テキストログインにするとダメか。
/etc/X11/gdm/gdm.conf を修正して、/usr/bin/X11/Xvfb を使うように指定してみた。これもダメ。
◎ 要するにあらかじめgdmが起動してないからダメってことかも :
RunLevel 5(グラフィカルログイン)の場合、既にgdmが起動してるから上手くいくのだろうな。
となると、どうやって事前に gdm を起動しておくかという話になるけれど。少なくとも coLinux + Debian の設定をしてたときは、標準でコンソールしか表示されてないのに gdm を起動させておくこともできたわけだから…。何か手はありそうな気もする。
となると、どうやって事前に gdm を起動しておくかという話になるけれど。少なくとも coLinux + Debian の設定をしてたときは、標準でコンソールしか表示されてないのに gdm を起動させておくこともできたわけだから…。何か手はありそうな気もする。
◎ 別の方法…vncserverをサービスとして起動しておく方法も試してみたり :
/etc/sysconfig/vncservers に追加。
サービスとして起動。及び、登録。
「ホスト名:ディスプレイ番号」でアクセスすれば、使える。けど。このやり方だと使わないときですら常時 X が裏で動いてるように見える。よろしくない。使うときだけ存在してほしいのだけど。
VNCSERVERS="1:hoge 2:fuga"ディスプレイ番号1をユーザ hoge に、番号2をユーザ fuga に割り当てる。
サービスとして起動。及び、登録。
# /etc/rc.d/init.d/vncserver start # chkconfig vncserver on
「ホスト名:ディスプレイ番号」でアクセスすれば、使える。けど。このやり方だと使わないときですら常時 X が裏で動いてるように見える。よろしくない。使うときだけ存在してほしいのだけど。
◎ グラフィカルログインでも構わんか :
今までずっとテキストログインにしてたからそれでなきゃと思ってたけど。どうせサーバ機の前で直接ログインすることは少ないのだし。
_coLinux で Vine Linux 3.0 を動かしてみました という記事を眺めてたら、そちらの中でも RunLevel 5にしていた。ということは、それしかないか。
試しに RunLevel 5 にして再起動。…アレ? 画面はテキストログインのまま。もしかして、Xvfb を gdm.conf に指定したことで、Linux 側ではグラフィカルログインにならずに済んだのだろうか。
違った。
_coLinux で Vine Linux 3.0 を動かしてみました という記事を眺めてたら、そちらの中でも RunLevel 5にしていた。ということは、それしかないか。
試しに RunLevel 5 にして再起動。…アレ? 画面はテキストログインのまま。もしかして、Xvfb を gdm.conf に指定したことで、Linux 側ではグラフィカルログインにならずに済んだのだろうか。
違った。
- [servers]
- 0=Standard
- [servers]
- # 0=Standard
◎ 一部のフォントがおかしい :
vnc経由で emacs を起動しようとすると「フォントがないよ」と言われる。
/etc/inetd.conf 中の vnc関連記述部分に、「-fp unix/:7100 -co /usr/lib/X11/rgb」を追加。
/etc/inetd.conf 中の vnc関連記述部分に、「-fp unix/:7100 -co /usr/lib/X11/rgb」を追加。
vnc-1152x864x24 stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/Xvnc -inetd -query localhost -once -geometry 1152x864 -depth 24 -pixelformat RGB888 -fp unix/:7100 -co /usr/lib/X11/rgb -securitytypes none vnc-1152x864x8 stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/Xvnc -inetd -query localhost -once -geometry 1162x864 -depth 8 -cc 3 -fp unix/:7100 -co /usr/lib/X11/rgb -securitytypes none vnc-1024x768x24 stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/Xvnc -inetd -query localhost -once -geometry 992x704 -depth 24 -pixelformat RGB888 -fp unix/:7100 -co /usr/lib/X11/rgb -securitytypes none vnc-1024x768x8 stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/Xvnc -inetd -query localhost -once -geometry 992x704 -depth 8 -cc 3 -fp unix/:7100 -co /usr/lib/X11/rgb -securitytypes noneこれでようやく満足できる動作になった。
◎ 念のため /etc/hosts.allow を書き換えて予想外のIPからアクセスできないかどうかを確認 :
制限できてるみたい。本来の指定に戻す。
◎ 参考ページ :
[ ツッコむ ]
以上です。