参考一:
参考网站: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 的那一行,好让我们能重新引导我们的窗口管理员。
-
gnome 的话,输入 gnome-session 。
-
kde 的话,输入 startkde 。
-
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 。