RedHat9
(192.168.2.1)
|
(192.168.2.102)
Win2k
の環境下で
RedHat9←Win2k
のVNC接続したく思ってますが成功しません。
# rpm -qa | grep vnc
vnc-server-3.3.3r2-47
vnc-3.3.3r2-47
vnc-doc-3.3.3r2-47
# cat /etc/sysconfig/vncservers | grep -v ^#
VNCSERVERS="1:root 2:user01"
VNCSERVERARGS[1]="-geometry 800x600"
VNCSERVERARGS[2]="-geometry 800x600 -depth 24"
# vncserver
として、パスワードを入力して
# vncserver -kill :1
# exit
$ vncserver
としてパスワードを入力して
$ vncserver -kill :2
# cat /root/.vnc/xstartup
#!/bin/sh
# Red Hat Linux VNC session startup script
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
$ cat /home/user01/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
として
# ps ax |grep vnc
16511 pts/1 S 0:00 grep vnc
# service vncserver status | nkf -s
Xvncは停止しています
# service vncserver start | nkf -s
VNCサーバを起動中: 1:root 2:user01 [ OK ]
ファイアウォールをすべてスルーにしてみて、
Win2k側からwin32用VNCビューワ(NSLキー対応)
http://www.vector.co.jp/soft/dl/win95/net/se324464.html
でアクセスしてみましたら、
「server closed connection unexpectedly」
となってしまいます。
サーバ側ではtcpdumpや/var/log/messageは下記のようになっています。
これは何が原因なのでしょうか?
# tcpdump -i eth0 \( src host 192.168.2.102 and dst port 5902 \) or \( dst
host 192.168.2.102 and src port 5902 \)
tcpdump: listening on eth0
20:58:18.869247 192.168.2.102.1160 > 192.168.2.1.5902: S
3828553642:3828553642(
) win 65535 <mss 1460,nop,nop,sackOK> (DF)
20:58:18.870822 192.168.2.1.5902 > 192.168.2.102.1160: S
4139950751:4139950751(
) ack 3828553643 win 5840 <mss 1460,nop,nop,sackOK> (DF)
20:58:18.872950 192.168.2.102.1160 > 192.168.2.1.5902: . ack 1 win 65535
(DF)
20:58:18.960940 192.168.2.1.5902 > 192.168.2.102.1160: F 1:1(0) ack 1 win
5840
DF)
20:58:18.963112 192.168.2.102.1160 > 192.168.2.1.5902: . ack 2 win 65535
(DF)
20:58:23.130288 192.168.2.102.1160 > 192.168.2.1.5902: F 1:1(0) ack 2 win
65535
(DF)
20:58:23.131835 192.168.2.1.5902 > 192.168.2.102.1160: . ack 2 win 5840 (DF)
# tail -f /var/log/messages | grep 5902
Dec 12 20:59:16 rh9 kernel: eth0 Inbound Packet : IN=eth0 OUT=
MAC=00:07:40:e3:8a
:55:00:30:1b:29:90:c3:08:00 SRC=192.168.2.102 DST=192.168.2.1 LEN=48
TOS=0x00 PR
EC=0x00 TTL=128 ID=50323 DF PROTO=TCP SPT=1161 DPT=5902 WINDOW=65535
RES=0x00 SY
N URGP=0
Dec 12 20:59:16 rh9 kernel: eth0 Outbound Packet : IN= OUT=eth0
SRC=192.168.2.1 D
ST=192.168.2.102 LEN=48 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=5902
DPT
=1161 WINDOW=5840 RES=0x00 ACK SYN URGP=0
Dec 12 20:59:16 rh9 kernel: eth0 Inbound Packet : IN=eth0 OUT=
MAC=00:07:40:e3:8a
:55:00:30:1b:29:90:c3:08:00 SRC=192.168.2.102 DST=192.168.2.1 LEN=40
TOS=0x00 PR
EC=0x00 TTL=128 ID=50324 DF PROTO=TCP SPT=1161 DPT=5902 WINDOW=65535
RES=0x00 AC
K URGP=0
Dec 12 20:59:16 rh9 kernel: eth0 Outbound Packet : IN= OUT=eth0
SRC=192.168.2.1 D
ST=192.168.2.102 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=64128 DF PROTO=TCP
SPT=5902
DPT=1161 WINDOW=5840 RES=0x00 ACK FIN URGP=0
Dec 12 20:59:16 rh9 kernel: eth0 Inbound Packet : IN=eth0 OUT=
MAC=00:07:40:e3:8a
:55:00:30:1b:29:90:c3:08:00 SRC=192.168.2.102 DST=192.168.2.1 LEN=40
TOS=0x00 PR
EC=0x00 TTL=128 ID=50345 DF PROTO=TCP SPT=1161 DPT=5902 WINDOW=65535
RES=0x00 AC
K URGP=0
Dec 12 20:59:19 rh9 kernel: eth0 Inbound Packet : IN=eth0 OUT=
MAC=00:07:40:e3:8a
:55:00:30:1b:29:90:c3:08:00 SRC=192.168.2.102 DST=192.168.2.1 LEN=40
TOS=0x00 PR
EC=0x00 TTL=128 ID=50415 DF PROTO=TCP SPT=1161 DPT=5902 WINDOW=65535
RES=0x00 AC
K FIN URGP=0
Dec 12 20:59:19 rh9 kernel: eth0 Outbound Packet : IN= OUT=eth0
SRC=192.168.2.1 D
ST=192.168.2.102 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=5902
DPT
=1161 WINDOW=5840 RES=0x00 ACK URGP=0
再現環境がないため何とも言えませんが,TightVNCを
使ってみたらいかがでしょう.半年前実験で使っていて
特に苦労もせずできていたと覚えています.
因にRedhat9附属のVNCサーバの性能が断然低いのです.
趙
> 再現環境がないため何とも言えませんが,TightVNCを
> 使ってみたらいかがでしょう.半年前実験で使っていて
> 特に苦労もせずできていたと覚えています.
> 因にRedhat9附属のVNCサーバの性能が断然低いのです.
わかりました。
http://jaist.dl.sourceforge.net/sourceforge/vnc-tight/tightvnc-1.2.9-1.src.rpm
をインストールしてみました。
# rpm -e vnc-server
# rpm -e vnc
# rpm -e vnc-doc
# rpmrebuild --rebuild tightvnc-1.2.9-1.src.rpm
# cd /usr/src/redhat/RPMS/i386
tightvnc-debuginfo-1.2.9-1.i386.rpm
tightvnc-server-1.2.9-1.i386.rpm
tightvnc-1.2.9-1.i386.rpm
# rpm --test -ihv tightvnc-server-1.2.9-1.i386.rpm
# rpm -ihv tightvnc-server-1.2.9-1.i386.rpm
# rpm -ihv tightvnc-1.2.9-1.i386.rpm
# rpm -ihv tightvnc-debuginfo-1.2.9-1.i386.rpm
として無事イスントールできました。そして、
# cat /root/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
$ cat /home/user01/xstartup
#!/bin/sh
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# ls -l /root/.vnc
合計 24
-rw------- 1 root root 8 12月9 02:29 passwd
-rwxr-xr-x 1 root root 316 12月16 15:21 xstartup*
-rwxr-xr-x 1 root root 104 12月 9 02:29 xstartup~*
-rw-r--r-- 1 root root 1833 12月16 14:09 rh9.dyndns.net:1.log
-rw-r--r-- 1 root root 7776 12月 9 02:31 rh9.dyndns.net:2.log
$ ls -l /home/user01/.vnc
合計 36
-rw------- 1 user01 user01 8 12月 9 02:33 passwd
-rwxr-xr-x 1 user01 user01 316 12月 9 02:49 xstartup*
-rwxr-xr-x 1 user01 user01 104 12月9 02:33 xstartup~*
-rw-rw-r-- 1 user01 user01 9030 12月12 08:33 rh9.dyndns.net:1.log
-rw-rw-r-- 1 user01 user01 5 12月 9 02:33 rh9.dyndns.net:1.pid
-rw-r--r-- 1 user01 user01 7800 12月16 14:09 rh9.dyndns.net:2.log
# service vncserver start
VNCサーバを起動 1:root vncserver: The USER environment variable is not set.
失敗
# ls -l /etc/sysconfig/vncservers
-rw-r--r-- 1 root root 570 12月12 20:16
/etc/sysconfig/vncservers
# cat /etc/sysconfig/vncservers
VNCSERVERS="1:root 2:user01"
VNCSERVERARGS[1]="-geometry 800x600"
VNCSERVERARGS[2]="-geometry 800x600 -depth 24"
# service vncserver start
VNCサーバを起動 1:root vncserver: The USER environment variable is not set.
[失敗]
# service vncserver stop
VNCサーバを停止 1:root vncserver: The USER environment variable is not set.
2:user01
Can't find file /home/user01/.vnc/rh9.dyndns.net:2.pid
You'll have to kill the Xvnc process manually
となり、起動できません。
これにはどう対処したらいいのでしょうか?
(お手数お掛けしてスイマセン)
いろいろ試してみたのですが,ぼくのところはうまくいきましたよ ^o^.
なので,ご報告します.# 意外なところに原因があるのですね.
サービスを起動するコマンドとして
service vncserver [start|stop]
をお使いになっているのですが,その代わりに
/etc/init.d/vncserver [start|stop]
で(rootで)やってみてください.
# /sbin/serviceはenv -iを使ってLANGとPATH以外の環境変数を
# 全部無効にしてあるので,USERもない -- それが原因みたいです.
# ... どうしてUSER環境変数が必要なのかは知りません :-9.
> /etc/init.d/vncserver [start|stop]
> で(rootで)やってみてください.
> # /sbin/serviceはenv -iを使ってLANGとPATH以外の環境変数を
> # 全部無効にしてあるので,USERもない -- それが原因みたいです.
> # ... どうしてUSER環境変数が必要なのかは知りません :-9.
# /etc/init.d/vncserver start
VNCサーバを起動中: 1:root 2:user01 [OK]
で上手くいきました。\(^o^)/
(感動です!!!)
お陰さまで助かりました。どうもありがとうこざいました。m(_ _)m