本人的操作環境:被控端 RHEL AS 3 U4,主控端Windows 2003。
如果不想自己折騰的話,這里推薦一個工具能夠滿足大家的需求-IIs7服務器管理工具。IIs7服務器管理工具可以批量連接並管理VNC服務器 作為服務器集成管理器,它最優秀的功能就是批量管理windows與linux系統服務器、vps。能極大的提高站長及服務器運維人員工作效率。同時iis7服務器管理工具還是vnc客戶端,服務器真正實現了一站式管理,可謂是非常方便。
IIS7服務器管理工具 界面如下:
1.下載RealVNC Server與RealVNC viewer.
2.安裝。
rpm –Uvh vnc-4_1_1-1.i386.rpm(如果是源代碼請看包里的說明)
安裝winvnc.exe
3.在Linux上啟動VNC Server
執行vncserver命令:
[root@linux root]# vncserver
You will require a password to access your desktops.
Password: ----為了不想任何人都可以任意遙控此計算機。因此當第
Verify: ---1次啟動VNC server時,會要求設置網絡遙控的密碼。
New ‘X’ desktop is linux:1 ----一定要記住這一行稍后會用到。
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/linux:1.log
(經上述步驟后,便已啟動了VNC Server。如果你想要更改VNC Server的密碼,只要執行vncpasswd命令即可。)
4.在Microsoft Windows上運行VNC Viewer
直接運行“vncviewer.exe”,系統會出現”Connection details”對話框。
在“Connection details”對話框中的“VNC server”文本框中輸入VNC Server的IP地址(或主機名及顯示裝置編號,(請看3。在Linux上啟動VNC server的這一行,New ‘X’ desktop is linux:1 得到此信息),例如:192.168.0.1:1(冒號后面的1是執行VNC Server生成的顯示裝置編號),單擊“OK”按鈕后,VNC Server即會開始檢查所輸入的信息,若是信息錯誤,系統會出現“Failed to connect to server”的錯誤信息:若是信息正確,則會接着出現“VNC Authentication”對話框。
若是在“VNC Authentication”對話框中輸入的密碼正確,就可以成功地打開Linux的桌面窗口。
5. 從瀏覽器遠程遙控。
啟動VNC Server 后直接打開瀏覽器,在地址欄中輸入被控端的網址或IP地址,並在網址后加上“:5800+顯示編號”的端口號即可操控該計算機。
例如:http://192.168.01.:5801 (如果顯示編號為1,一般第一次設置的顯示編號都是1,就用5800+1=5801。)
6.FAQ
A.為什么連接后,不能顯示桌面,而只有一個Terminal窗口?
試着修改/root/.vnc/xstartup,把最后一行 twm& 改成 gnome-session& or kde&(據說KDE在目前的VNC Viewer上的表現不太穩定)
B.為什么重新啟動VNC Server后,連接不上了?
因為重新啟動VNC Server時,系統會指定一個新的顯示編號,需使用此新的編號,否則就無法連接。
linux的vnc遠程桌面的安裝
VNC最初由AT&T開發的,它的源代碼是開源的。
- 檢查vnc客戶端和服務器是否已經安裝:
[root@localhost ~]# rpm -q vnc
package vnc is not installed
[root@localhost ~]# rpm -q vnc-server
package vnc-server is not installed
沒有安裝的話。在光盤里找到rpm包安裝
[root@localhost ~]# [root@localhost ~]# mount /dev/cdrom /media/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# cd /media/CentOS/
[root@localhost CentOS]# rpm -ivh vnc-server-4.1.2-14.el5.i386.rpm
warning: vnc-server-4.1.2-14.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing... ########################################### [100%]
1:vnc-server ########################################### [100%]
[root@localhost ~]# rpm -ivh /mnt/cdrom/CentOS/vnc-4.1.2-9.el5.i386.rpm
Preparing... ########################################### [100%]
1:vnc ########################################### [100%]
這里已經安裝成功。 - 將用戶名稱加入到配置文件:(/etc/sysconfig/vncservers)
(注:這里的“用戶名”是指linux系統用戶的名稱)
The VNCSERVERS variable is a list of display:user pairs.#
Uncomment the lines below to start a VNC server on display :2
as my 'myusername' (adjust this to your own). You will also
need to set a VNC password; run 'man vncpasswd' to see how
to do that.
DO NOT RUN THIS SERVICE if your local area network is
untrusted! For a secure way of using VNC, see
URL:http://www.uk.research.att.com/archive/vnc/sshvnc.html.
Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.
Use "-nohttpd" to prevent web-based VNC clients connecting.
Use "-localhost" to prevent remote VNC clients connecting except when
doing so through a secure tunnel. See the "-via" option in the
`man vncviewer' manual page.
VNCSERVERS="2:myusername"
VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 800x600 "
這里注意一下,默認系統配置里有 –nolisten tcp 和 –nohttpd ,這兩個是阻止Xwindows登陸和HTTP方式VNC登陸的,如果需要圖形界面,那就刪除這部分。
-
設置密碼
[root@localhost ~]# vncpasswd
Password:
Verify:
[root@localhost ~]#
注意這里設置的密碼不是root用戶的密碼,而且我們用vncview客戶端登錄時的密碼。也就是這個vnc軟件的密碼。 -
啟動VNC服務
[root@localhost ~]# /sbin/service vncserver start
Starting VNC server: 1:root xauth: creating new authority file /root/.Xauthority
New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log
[ OK ]
[root@localhost ~]#
注意:此時在/root/.vnc已經有VNC登陸的啟動文件xstartup,和日志文件localhost:1.log。這一步很重要,之后我們才可以修改xstartup這個文件。
5.修改xstartup
[root@localhost ~]# cd /root/.vnc/
[root@localhost .vnc]# vi 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" &
gnome-session
startkde & #kde desktop
twm &
注意: 這一步也很重要,如是不修改這個文件的話也連不到桌面,是一片空白,所以要加上相應的桌面的參數。
- 最后,需要配置一下防火牆,允許VNC客戶端連接VNC server。VNC server監聽的端口從5900開始,display :1的監聽5901,display :2監聽5902,以此類推。CentOs的防火牆缺省是不允許連接這些端口的,所以需要使用下面的步驟打開防火牆(需要root權限):
[root@localhost ~]# vi /etc/sysconfig/iptables
Firewall configuration written by system-config-securitylevel
Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5900:5903 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
在此行之前,加上下面的內容:
-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的用戶就可以連接到本機。
然后使用root身份重新啟動防火牆和VNC:
[root@localhost ~]# /sbin/service iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_conntrack_netbios_n[ OK ]
[root@localhost ~]# /sbin/service vncserver resatrt
Usage: /etc/init.d/vncserver {start|stop|restart|condrestart|status}
[root@localhost ~]# /sbin/service vncserver restart
Shutting down VNC server: 1:root [ OK ]
Starting VNC server: 1:root
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
[ OK ]
7. Windows登陸到VNC Server
Windows 客戶端 VNC Viewer 的配置: 1. 從 http://www.realvnc.com/download.html 下載 VNC Free Edition for Windows Version 4.1.2 2. 打開 VNCViewer : 填入VNCServer 的IP:編號(1或2或...) 3. VNCViewer 切換全屏模式:F8
注意我的選項
這個密碼就是vncpasswd的密碼
哈哈。已經成功啦。
8. 允許VNC server在系統啟動過程中被啟動。這可以通過“系統設置–>服務器設置–>服務”菜單來配置,把vncserver一項選上就可以了。
如果使用命令行的話,以root身份運行以下兩條命令:
cd /etc/rc5.d
mv K35vncserver S35vncserver
另外可以再終端里輸入:ntsysv 找到vncserver這項勾上。
9.如果是在VMware上裝的話,還需要這樣設置一步
虛擬機——設置——選項——遠程顯示——啟用
密碼填不填都行。
vnc 源碼安裝
anyway, download source code from
http://www.realvnc.com/products/free/4.1/download.html
[root@localhost Code]# tar zxvf vnc-4_1_3-x86_linux.tar.gz
[root@localhost vnc-4_1_3-x86_linux]# cd vnc-4_1_3-x86_linux
root@vinco:/home/vinco/Downloads/vnc-4_1_3-x86_linux# ls
java vncconfig vncpasswd vncserver.man vncviewer.man Xvnc
LICENCE.txt vncconfig.man vncpasswd.man vnc.so x0vncserver Xvnc.man
README vncinstall vncserver vncviewer x0vncserver.man
this action is important, believe it or not:
[root@localhost vnc-4_1_3-x86_linux]# vim README
vncviewer 4.1.2 is install by default:
[root@localhost vnc-4_1_3-x86_linux]# which vncviewer
/usr/bin/vncviewer
[root@localhost vnc-4_1_3-x86_linux]#
[root@localhost vnc-4_1_3-x86_linux]# ./vncinstall /usr/local/bin /usr/local/man
Can't install manual pages to /usr/local/man/man1
Copying Xvnc to /usr/local/bin
Copying vncviewer to /usr/local/bin
Copying vncpasswd to /usr/local/bin
Copying vncconfig to /usr/local/bin
Copying vncserver to /usr/local/bin
Copying x0vncserver to /usr/local/bin
[root@localhost vnc-4_1_3-x86_linux]#
[root@localhost vnc-4_1_3-x86_linux]# vncviewer
VNC Viewer Free Edition 4.1.2 for X - built Oct 6 2008 07:20:19
Copyright (C) 2002-2005 RealVNC Ltd.
See http://www.realvnc.com for information on VNC.
[root@localhost vnc-4_1_3-x86_linux]#
[root@localhost vnc-4_1_3-x86_linux]# which vncviewer
/usr/local/bin/vncviewer
[root@localhost vnc-4_1_3-x86_linux]#
remove the old one:
[root@localhost vnc-4_1_3-x86_linux]# rm /usr/bin/vncviewer
Things are not always the way its going :
[root@localhost vnc-4_1_3-x86_linux]# vncserver
You will require a password to access your desktops.
vncpasswd: error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory
[root@localhost vnc-4_1_3-x86_linux]#
somebody advised to create a soft link like this:
[root@localhost lib]# pwd
/usr/lib
[root@localhost lib]# ln -s libstdc++.so.6.0.10 libstdc++-libc6.2-2.so.3
[root@localhost lib]# ls -l libstdc*
lrwxrwxrwx 1 root root 19 2012-05-31 20:40 libstdc++-libc6.2-2.so.3 -> libstdc++.so.6.0.10
lrwxrwxrwx 1 root root 19 2011-06-17 08:35 libstdc++.so.6 -> libstdc++.so.6.0.10
-rwxr-xr-x 1 root root 966072 2008-11-05 20:14 libstdc++.so.6.0.10
[root@localhost lib]#
the guy cheat me, it doesn't work at all:
[root@localhost vnc-4_1_3-x86_linux]# vncserver
You will require a password to access your desktops.
vncpasswd: symbol lookup error: vncpasswd: undefined symbol: __builtin_vec_new
[root@localhost vnc-4_1_3-x86_linux]#