Linux下Vnc遠程桌面Server配置教程
http://www.aiezu.com/Article/Linux_Vnc_Server_conf.aspx
用VNC實現(xiàn)遠程桌面共享(支持Windows, Linux,...)
http://easwy.com/blog/archives/linux-remote-desktop-by-vnc/
# [ 原理 ]#
#--------------------------------------------
VNC,全稱為Virtual Network Computing,使用 RFB(Remote FrameBuffer,遠程幀緩沖)
協(xié)議來實現(xiàn)遠程控制另外一臺計算機。把鍵盤、鼠標(biāo)動作發(fā)送到遠程計算機,并把遠程計算機的屏幕發(fā)回到本地
VNC技術(shù)與平臺無關(guān),VNC Viewer可以和VNC Server在不同的操作系統(tǒng)上
VNC幾乎支持所有的操作系統(tǒng),也支持Java,甚至可以通過支持Java的瀏覽器來訪問VNC Server
多個 VNC 客戶端可以同時連接到一個 VNC Server
顯示編號(display number)來區(qū)分,每個vncserver服務(wù)監(jiān)聽3個端口,分別是:
5800+顯示編號: VNC的httpd監(jiān)聽端口,如果VNC客戶端為IE,Firefox等非vncviewer時必須開放。
5900+顯示編號: VNC服務(wù)端與客戶端通信的真正端口,必須無條件開放。
6000+顯示編號: X監(jiān)聽端口,可選。
注意:VNC 密碼保存在用戶的主目錄中,每個用戶都可以設(shè)置自己的密碼
因此,請使用你的用戶名(盡量不要使用root)運行下列命令:
在啟動VNC server時,需要為 server指定一個display參數(shù)
可以把display理解為一個桌面,每個用戶都可以有自己的桌面,在系統(tǒng)中,display號不能重復(fù)
VNC server監(jiān)聽的端口從5801開始,display :1的監(jiān)聽5801,display :2監(jiān)聽5802,以此類推
#
# [ /etc/sysconfig/vncservers ]# {{{
#--------------------------------------------
顯示編號、開放的端口分別由
/etc/sysconfig/vncservers 文件中 VNCSERVERS 和 VNCSERVERARGS 控制
VNCSERVERS的設(shè)置方式為
VNCSERVERS="顯示編號1:用戶名1 …",如:VNCSERVERS="1:root 2:aiezu"
VNCSERVERARGS 設(shè)置方式為
VNCSERVERARGS[顯示編號1]="參數(shù)一 參數(shù)值一 參數(shù)二 參數(shù)值二 ……"
如VNCSERVERARGS[2]="-geometry 800x600 -nohttpd"
VNCSERVERARGS的詳細參數(shù)有:
-geometry 桌面分辨率,默認(rèn)1024x768;
-nohttpd 不監(jiān)聽HTTP端口(58xx端口);
-nolisten tcp 不監(jiān)聽X端口(60xx端口);
-localhost 只允許從本機訪問;
-AlwaysShared 默認(rèn)只同時允許一個vncviewer連接,此參數(shù)允許同時連多個vncviewer;
-SecurityTypes None 登錄不需要密碼認(rèn)證VncAuth默認(rèn)值,要密碼認(rèn)證。
# vi /etc/sysconfig/vncserver
VNCSERVERS="1:root 2:oracle"
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp"
VNCSERVERARGS[2]="-geometry 1024x768 -nolisten tcp"
#
# [ 設(shè)置用戶登錄密碼 / 生成用戶配置文件 ]# {{{
#--------------------------------------------
設(shè)置VNC用戶密碼:
# XXX 此步不可跳過放在后面操作,否則VNC Server將無法啟動
# su - ink
# vncpasswd
Password:
Verify:
# su - root
# vncpasswd
Password:
Verify:
# [ 啟動 vncserver ]
#--------------------------------------------
# service vncserver start
運行上面命令后,分別會在用戶根目錄($HOME)下的".vnc"文件夾下生成一系列文件
其中passwd為vnc用戶密碼文件,由vncpasswd生成。xstartup為VNC客戶端連接時啟動的腳本
啟動VNC server的命令是:
vncserver
# vncserver
New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log
#
# [ 自定義 xstartup ]#
#--------------------------------------------
修改".vnc/xstartup"文件
vncserver 默認(rèn)使用的窗口管理器是 twm
編輯這個文件:.vnc/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 &
# gnome-session &
重啟 vncserver 使配置生效
# }}}
# [ 配置防火墻 ]#
#--------------------------------------------
必須允許VNC的相關(guān)端口(58xx,59xx,60xx)
vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 5900:5903 -j ACCEPT
允許其它機器訪問本機的5900到5903端口,這樣,display:1, display:2, display:3 用戶就可以連接到本機
我的是 -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 5801:6003 -j ACCEPT
安裝vnc時,要檢查一下iptables的設(shè)置,如果沒有開放vnc端口的訪問,是連接不上的,而且vnc客戶端會提示 failed connection:操作成功完成!(0)這樣的錯誤提示!
#-------------------------------------------
在windows下使用vncviewer+putty.exe通過ssh安全通道連接:
打開putty,在左邊的"Category"中依次點"Connection"->"SSH"->"Tunnels"
在"Source Port"文本框中輸入"5901","Destination"文本框中輸入"localhost:5901"
點擊"Add,添加端口轉(zhuǎn)發(fā)。然后在putty左邊的"Category"下點"Session"
輸入服務(wù)器的IP地址后,點"Open"按鈕,輸入密碼登陸后,既成功啟用了端口轉(zhuǎn)發(fā)
接著在本機打開vncviewer輸入"127.0.0.1:5901"即可成功連接到遠程的5901端口
在Linux下使用vncviewer+ssh安全通道連接:
與④類似,在linux vnc客戶端shell下運行"ssh -L 5901:localhost:5901 vncserverhost"命令
輸入用戶名密碼。即完成通過shh安全通道,將遠程的5901端口轉(zhuǎn)發(fā)到本機的5901端口
然后在shell下運行"vncviewer 127.0.0.1:1"命令即可以連接到遠程的VNC Server
#
#
#--------------------------------------------
查看VNC正在運行的顯示編號端口號?
答:在Linux命令提示符下執(zhí)行"netstat -tlup|grep vnc",即可以查看到端口號,端口號后兩位即顯示編號
如何關(guān)閉指定的顯示編號?
答:vncserver -kill :number 即可以關(guān)閉指定的顯示編號和對應(yīng)的端口號
在通過VNC連接的圖形界面桌面啟動X應(yīng)用時出現(xiàn):"Error: Can't open display: :0.0"錯誤?
答:請使用"echo $DISPLAY"命令查看"DISPLAY"壞境變量是否設(shè)置為":顯示編號:0",如:":1:0"
如果不是此形式,啟動X應(yīng)用時會出現(xiàn)此錯誤。此時可以通過"export DISPLAY=:1:0"設(shè)置正確的DISPLAY
還有一種可能就是切換了用戶啟動X應(yīng)用,當(dāng)前用戶沒有權(quán)限使用X窗口,這時返回到啟用VNC的用戶
運行"xhost +"允許其他用戶訪問此X窗口即可
#
如果配置完成后出現(xiàn)能夠通過鍵盤輸入數(shù)字,但是不能輸入字符的情況,就要看看你的客戶端的輸入法的設(shè)置是否和服務(wù)器端的設(shè)置是否一致。一般兩端都要是英文的!
本文題目:【主機】vnc介紹以及安裝時注意的問題
文章起源:
http://weahome.cn/article/ijhghc.html