參考一:
參考網站:http://www.beyourman.com/article.asp?id=92
1.查看本機是否有安裝vnc(centOS5預設有安裝vnc)
rpm -q vnc vnc-server
如果顯示結果為:
package vnc is not installed
vnc-server-4.1.2-14.e15_3.1
那恭喜你,機器上已經安裝了vnc,如果沒有,就得自己安裝了,這裡不說怎麼安裝了,很簡單,在centOS的軟體庫中搜尋,點擊安裝
2.把遠端桌面的使用者加入到設定檔中
vi /etc/sysconfig/vncservers
使用vi編輯器開啟設定檔,在檔案中添加下面兩行命令
VNCSERVERS="1:root" --指定遠端使用者
VNCSERVERARGS[1]="-geometry 1024x768" --指定遠端桌面解析度
3.給你剛剛設定的遠端桌面使用者 root 設定密碼
vncpasswd
4.開啟VNC連接埠
vi /etc/sysconfig/iptables
使用vi編輯器開啟設定檔,在檔案中添加下面一行命令
-A RH-Firewall-l-INPUT -p tcp -m tcp --dport 5900:5903 -j ACCEPT
5.重啟防火牆
service iptables restart
6.修改遠端桌面顯示設定檔(不修改此檔案你看到的遠端桌面很簡單,相當於命令列操作,為了遠程操作如同本地操作一樣,務必參考以下方式進行修改)
cd ~/.vnc/
vi xstartup
使用vi編輯器開啟設定檔,並進行下列修改
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & --將它注釋,加#代表注釋
#twm & --將它注釋
gnome-session & --添加它
看了這段代碼,大家應該明白是怎麼回事了
7.啟動vnc服務
/sbin/service vncserver start
8.遠端連線
開啟vnc用戶端,server框中輸入ip:1 (1代表上面配置的遠端使用者代號,設定檔中可以配置多個遠端使用者),這時你便可以輕鬆的通過友好的遠端桌面來控制centOS了。
參考網站:http://www.beyourman.com/article.asp?id=92
1.查看本機是否有安裝vnc(centOS5預設有安裝vnc)
rpm -q vnc vnc-server
如果顯示結果為:
package vnc is not installed
vnc-server-4.1.2-14.e15_3.1
那恭喜你,機器上已經安裝了vnc,如果沒有,就得自己安裝了,這裡不說怎麼安裝了,很簡單,在centOS的軟體庫中搜尋,點擊安裝
2.把遠端桌面的使用者加入到設定檔中
vi /etc/sysconfig/vncservers
使用vi編輯器開啟設定檔,在檔案中添加下面兩行命令
VNCSERVERS="1:root" --指定遠端使用者
VNCSERVERARGS[1]="-geometry 1024x768" --指定遠端桌面解析度
3.給你剛剛設定的遠端桌面使用者 root 設定密碼
vncpasswd
4.開啟VNC連接埠
vi /etc/sysconfig/iptables
使用vi編輯器開啟設定檔,在檔案中添加下面一行命令
-A RH-Firewall-l-INPUT -p tcp -m tcp --dport 5900:5903 -j ACCEPT
5.重啟防火牆
service iptables restart
6.修改遠端桌面顯示設定檔(不修改此檔案你看到的遠端桌面很簡單,相當於命令列操作,為了遠程操作如同本地操作一樣,務必參考以下方式進行修改)
cd ~/.vnc/
vi xstartup
使用vi編輯器開啟設定檔,並進行下列修改
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & --將它注釋,加#代表注釋
#twm & --將它注釋
gnome-session & --添加它
看了這段代碼,大家應該明白是怎麼回事了
7.啟動vnc服務
/sbin/service vncserver start
8.遠端連線
開啟vnc用戶端,server框中輸入ip:1 (1代表上面配置的遠端使用者代號,設定檔中可以配置多個遠端使用者),這時你便可以輕鬆的通過友好的遠端桌面來控制centOS了。
9.開機自動啟動vnc
vi /etc/rc.d/rc.local
使用vi編輯器開啟設定檔,並進行下列修改
/etc/init.d/vncserver start --新增行
9.開機自動啟動vnc
vi /etc/rc.d/rc.local
使用vi編輯器開啟設定檔,並進行下列修改
/etc/init.d/vncserver start --新增行
參考二:
參考網站:http://wiki.centos.org/zh/HowTos/VNC-Server
1. 安裝所需的組件
伺服器的組件名叫 vnc-server。請執行 rpm -q vnc-server
這個指令。
它的輸出應該是 package vnc-server is not installed
或類似 vnc-server-4.0-11.el4
。
假如伺服器未被安裝,請用這個指令來安裝它:yum install vnc-server
。
用戶端的程式是 vnc。假若 rpm -q vnc
表示它未被安裝,你可以用 yum install vnc
這個指令來安裝它。
請安裝一個視窗管理員來取得一個正常的映像式案頭。舉個例說,你可以用 yum groupinstall "GNOME Desktop Environment"
這個指令來安裝 Gnome 案頭及所需的組件。其它受歡迎的案頭環境包括 KDE 及 XFCE-4.4。XFCE 比 Gnome 及 KDE 更為輕量,而且已收錄在 extras 軟體庫內。
如果你採用 CentOS 5,yum groupinstall "GNOME Desktop Environment"
可能會投訴 libgaim.so.0 被遺漏了。這是一個已知的錯誤。詳情請參閱 CentOS-5 常見問題集
。
2. 設定未加密的 VNC
我們會設定 VNC 給 3 位使用者。他們分別是 larry、moe 及 curly。
你須要執行下列步驟來設定你的 VNC 伺服器:
- 建立你的 VNC 使用者。
- 設定使用者的 VNC 口令。
- 編輯服務器的設定。
- 建立及自定 xstartup 指令碼。
- 引導 VNC 服務。
- 測試每位 VNC 使用者。
- 設定 VNC 服務在開機時自動啟用。
- 加入選擇性的改動。
2.1. 建立你的 VNC 使用者
以 root
的身份:
$ su -
# useradd larry
# useradd moe
# useradd curly
# passwd larry
# passwd moe
# passwd curly
2.2. 設定使用者的 VNC 口令
登入每個戶口,並執行 vncpasswd
。這樣做會建立一個 .vnc
目錄。
[~]$ cd .vnc
[.vnc]$ ls
passwd
2.3. 編輯服務器的設定
編輯 /etc/sysconfig/vncservers
,並在檔案底部加入以下內容。
VNCSERVERS="1:larry 2:moe 3:curly"
VNCSERVERARGS[1]="-geometry 640x480"
VNCSERVERARGS[2]="-geometry 640x480"
VNCSERVERARGS[3]="-geometry 800x600"
Larry 及 Moe 將會有 640 乘 480 的畫面。Curly 將會有 800 乘 600 的畫面。
2.4. 建立 xstartup 指令碼
我們會通過以 root 的身份引導及停止 vncserver 來建立 xstartup 指令碼。
# /sbin/service vncserver start
# /sbin/service vncserver stop
登入每個戶口並編輯 xstartup 指令碼。就以 Larry 為例,首先登入成為 larry
。
[~]$ cd .vnc
[.vnc] ls
mymachine.localnet:1.log passwd xstartup
編輯 xstartup。原有的應該看似:
#!/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 &
這
加入下面這行來確定 xterm 會經常存在。假若你希望在 VNC
內執行使用者的正常視窗管理員,請按指示除去兩行的注釋符號。請注意,在一個解像度及色彩深度都可能被降低的 VNC
視窗內,整個案頭將會頗狹窄,及看起來怪怪的。如果你不除去那兩行的注釋,你的 VNC 視窗將會有班點底色。
#!/bin/sh
# 加入下面這行來確定 xterm 會經常存在。
( while true ; do xterm ; done ) &
# 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 &
2.5. 引導 VNC 伺服器
以 root 身份引導 vncserver。
# service vncserver start
2.6. 測試每位 VNC 使用者
2.6.1. 以支援 java 的瀏覽器進行測試
讓我們假設我們機器擁有 192.168.0.10 這個 IP 位址。串連到每個戶口的 URL 將會是:
Larry 是 http://192.168.0.10:5801
Moe 是 http://192.168.0.10:5802
Curly 是 http://192.168.0.10:5803
串連到 http://192.168.0.10:5801
。一個 java 程式的視窗將會彈出,表示你要串連到機器的 1 號連接埠。擊按 [ok] 按鈕。輸入 larry 的 VNC 口令,然後一個 640x480 視窗將會通過 larry
預設的視窗管理員被開啟出來。iptables
防火牆必須開放以上這些連接埠 5801、5802 及 5803
給用戶端的 IP 位址或子網路。
2.6.2. 以 vnc 使用者機進行測試
Larry 用: vncviewer 192.168.0.10:1
Moe 用: vncviewer 192.168.0.10:2
Curly 用: vncviewer 192.168.0.10:3
要以 vncviewer 測試 larry
,執行 vncviewer 192.168.0.10:1
。
輸入 larry 的 VNC 口令,然後一個採用 larry 的預設視窗管理員的 640x480 視窗將會開啟。vncviewer
這個用戶端會串連到 590X 這個連接埠,當中 X 值等於 1、2、3 分別對應 larry、moe 及
curly,因此防火牆必須開放這些連接埠給用戶端的 IP 位址或子網路。
2.6.3. 開機時引導 vncserver
要在開機時引導 vncserver,請輸入 /sbin/chkconfig vncserver on
這個指令。
VNC 的基本設定現在已經完成。以下部份是選擇性的改善方法來增強安全性及功能。
3. 通過 ssh 隧道將 VNC 加密
你將會通過一條 ssh 隧道來串連。你必須能夠用 ssh 登入該機器上的一個戶口。舉個例說,vncserver 機器上的戶口是 larry。
- 編輯 /etc/sysconfig/vncservers,並加入 -localhost 這個選項。
VNCSERVERS="1:larry 2:moe 3:curly"
VNCSERVERARGS[1]="-geometry 640x480 -localhost"
VNCSERVERARGS[2]="-geometry 640x480 -localhost"
VNCSERVERARGS[1]="-geometry 800x600 -localhost"
/sbin/service vncserver restart
- 進入另一台擁有 vncserver 的機器並測試 VNC。
vncviewer -via larry@192.168.0.10
localhost:1
vncviewer -via moe@192.168.0.10
localhost:2
vncviewer -via curly@192.168.0.10
localhost:3
按預先設定,很多 vncviewer 都會針對它認為是「本地」的串連停用壓縮的選項。請查閱 vncviewer 的使用手冊來啟用/強加壓縮。否則,表現可能會很差勁!
4. 在登出後恢複
如果你登出你的案頭管理員,它不會再存在!
- 我們已在 xstartup 內加入了為我們開啟 xterm 的那一行,好讓我們能重新引導我們的視窗管理員。
5. 用 vnc-ltsp-config 進行遠程登入
要容許使用者利用 vnc 用戶端遠程登入 CentOS 系統,你可以安裝名為 vnc-ltsp-config 及 xinetd 的組件。當 vnc 用戶端串連到其中一個設定了的連接埠,使用者將會獲得一個標準的登入畫面。這個工作階段並不會
持久。當使用者登出,這個工作階段便會消失。
vnc-ltsp-config 這個 rpm 組件可以輕易地通過現有軟體庫
頁內的 EPEL 軟體庫來安裝。
註:vnc-ltsp-config*.rpm 這個組件並沒有什麼依賴性,因此你可以簡單地下載並安裝它,而不必啟用 EPEL 軟體庫。
以 root 身份安裝:
# yum install xinetd vnc-ltsp-config
# /sbin/chkconfig xinetd on
# /sbin/chkconfig vncts on
# /sbin/service xinetd restart
接著,請以 root 的身份編輯 "/etc/gdm/custom.conf" 這個檔案。
- 在 [security] 分段下的首行空行請加入 DisallowTCP=false
- 在 [xdmcp] 分段下的首行空行請加入 Enable=true
- 請確定你擁有許可權為預設的的 Gnome 安裝執行 gdm-restart,或索性重新引導 CentOS。
這樣做會容許你通過 vnc 用戶端串連來取得下面預設的工作階段:
解像度 |
色彩深度 |
連接埠 |
1024x768 |
16 |
5900/tcp |
800x600 |
16 |
5901/tcp |
640x480 |
16 |
5902/tcp |
1024x768 |
8 |
5903/tcp |
800x600 |
8 |
5904/tcp |
640x480 |
8 |
5905/tcp |
使
用 vnc-ltsp-config
的一大優點,就是相比起標準的「一人一設定」,它可以減低系統資源使用量。除非一個使用者登入系統,否則使用者進程不會引導,記憶體亦不會被佔用。此外,你不必
煩惱使用者的設定(也就是省略了為個別使用者手動設定 vnc-server)。vnc-ltsp-config 的弊處就是任何
擁有登入許可權的使用者都可以通過一個 vnc 用戶端來登入映像介面,除非你採取措施來限制這類型接線。還有就是工作階段不能持久!一旦 vnc 用戶端被關閉,vnc-ltsp-config 工作階段便會(預設)被中止,而所有執行中的進程都會被刪丟。
這個選項可以利用一個改良版的 vncviewer -via 指命與 ssh 隧道合并:
vncviewer -via remoteUser@remoteHost localhost:vncSinglePortNumber
對於 vnc-ltsp-config 的預設安裝,vncSinglePortNumber 是連接埠號碼的最後一個數目字。舉個例來說,連接埠號碼 5900(1024x768 16 位元)就只是 "0"。
註:假若你啟用 selinux
或 iptables
,你須要留意可能會出現的互動問題。如果你沒有一個正在啟動並執行顯示管理程式(譬如在 runlevel 3),你必須起動一個,否則當你串連時便只得一個黑劃面。
6. 為已登入的映像工作階段提供 VNC 伺服器 —— 兩個選擇
很
多時你需要遠端存取一個通過「真實」控制台登入的映像工作階段。又或者你須要遠程協助一位使用者解決映像介面或視覺方法的問題。你將會需要
vnc-server 或 x11vnc。vnc-server 這個選擇利用一個模組將常備的 vnc 支援加進 X11;而 x11vnc
就容許臨時性的 vnc 支援。
安裝 vnc-server 並不需要第三方的軟體庫或建立原始碼。
x11vnc 提供了一個方法容讓任從 VNC 查看器從遠程查看真實的 X 視像(包括了顯示器、鍵盤、及滑鼠)並進行互動。通過這樣做,它在 Unix/X11 上扮演了 WinVNC 在 Windows 上的角色。
6.1. 臨時性採用 x11vnc
Karl Runge 慷慨地在 http://www.karlrunge.com/x11vnc/
為 x11vnc 提供了大量的資訊。當中包括了如何提高串連的安全性,及使用 Enhanced TightVNC Viewer「增強版 TightVNC 查看器」(ssvnc)。簡單來說,請跟從下面的步驟:
從 http://dag.wieers.com/rpm/packages/x11vnc/
下載最新的 rpm 到你希望用 vnc 用戶端串連到的主機上:
wget http://dag.wieers.com/rpm/packages/x11vnc/x11vnc-0.9.3-1.el5.rf.i386.rpm
以 root 的身份在要被串連的主機上用 yum 或 rpm 進行安裝:
yum install x11vnc-0.9.3-1.el5.rf.i386.rpm
在要被串連的主機上引導 x11vnc 進程。請好好地查看 x11vnc 網頁上列出的所有選項。一個非常簡單/不安全,可供被信任的網路(本網或 VPN)使用的範例,就是請擁有映像控制台的使用者執行:
[user@helpme_host ~$] x11vnc -nopw -display :0.0
接著通過 vnc 用戶端串連(不需口令)到 x11vnc 指令所指示的 IP/主機名稱。x11vnc 預設會接納來自所有介面的串連。主機上的防火牆設定或許會需要被修改。
你可以連同 ssh 隧道一併使用它:
ssh -C -t -L 5900:localhost:5900 [遠程 ip] 'x11vnc -usepw -localhost -display :0'
留意 -C
選項選用壓縮,因此不是必需的
6.2. 永久性在 X11 採用 vnc-server
- 在你需要執行 vnc-server 的系統上,如上面所示安裝 vnc-server。
以 root 身份編輯 /etc/X11/xorg.conf,並加入/建立一個 Module 分段及加入 Load "vnc"
:
Section "Module"
Load "vnc"
EndSection
要用標準的 vnc 驗證,以 root 身份編輯 /etc/X11/xorg.conf,並在 Screen 分段內加入:
Option "SecurityTypes" "VncAuth"
Option "UserPasswdVerifier" "VncAuth"
Option "PasswordFile" "/root/.vnc/passwd"
- 以 root 身份執行 vncpasswd 並如上面所示建立口令。
重新引導 X11(如果你已經在控制台上,可用 <Ctrl>+<Alt>+<BS>)
- 你應該可以正常地用 vncviewer 用戶端來進行串連。
要排除困難,請檢查 /var/log/Xorg.0.log 內的錯誤,並確定 iptables 或 selinux 並沒有幹擾遠端串連。額外的資訊已收錄在 http://www.realvnc.com/products/free/4.1/x0.html
。