想操作遠端的 Linux 桌面就架設 VNC Server 來用
然後考量連線安全,再透過 SSH Tunnel 來連線
久久設定一次都找網路資料,還是簡略記錄過程

首先安裝 VNCServer 服務

設定 /etc/sysconfig/vncserver 設定檔,以要讓 bestlong 帳號登入為例

1
2
VNCSERVERS="2:bestlong"
VNCSERVERARGS[2]="-geometry 1024x768 -nolisten tcp -nohttpd  -localhost"

其中的 2 就是設定成 5900 + 2 當連線的 Port

接著登入 bestlong 帳號用 vncpassw 建立連線密碼,這一步驟沒做會導致 VNC Server 無法順利啟動

1
2
3
4
[bestlong@www ~]$ vncpasswd
Password:
Verify:
[bestlong@www ~]$

啟動 VNC Server 服務 /etc/init.d/vncserver start

1
2
3
4
5
6
7
8
9
10
[root@www ~]# /etc/init.d/vncserver start
正在啟動 VNC 伺服器: 2:allen
New 'www.bestlong.idv.tw:2 (bestlong)' desktop is www.bestlong.idv.tw:2

Creating default startup script /home/bestlong/.vnc/xstartup
Starting applications specified in /home/bestlong/.vnc/xstartup
Log file is /home/bestlong/.vnc/www.bestlong.idv.tw:2.log

                                                           [  確定  ]
[root@www ~]#

在 SSH 完成連線並登入
接著設定 Putty (or Pietty) Tunnel

1
2
3
4
Source port 5902
Destintion localhost:5902
Local
Auto

然後就可以用 VNC Client 連線
要注意先前設定的 ssh 在此時必須是連線狀態 Tunnel 才會存在
連線到 localhost:2 並輸入密碼就可以看到一個簡單的桌面

這是因為所產生的設定是預設使用 twm 視窗管理員
當然也是可以改為 GNOME 或 KDE 的
請修改 $HOME/.vnc/xstart 檔案
以 bestlong 帳號來說路徑就是 /home/bestlong/.vnc/xstart
預設內容是

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh

# Uncomment the following two lines for normal desktop:
# 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" &
twm &

修改成為

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/sh

# Uncomment the following two lines for normal desktop:
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" &
#twm &
gnome-session &

修改完後重新啟動 VNC Server
然後重新用 VNC Client 連線就可以看到 GNOME 桌面了。