> CentOS > CentOS教程 >

用VNC XP远程连接CENTOS .

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 服务器:

  1. 创建你的 VNC 用户。
  2. 设置用户的 VNC 口令。
  3. 编辑服务器的设置。
  4. 创建及自定 xstartup 脚本。
  5. 引导 VNC 服务。
  6. 测试每位 VNC 用户。
  7. 设置 VNC 服务在开机时自动启用。
  8. 加入选择性的改动。

 

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。

  1. 编辑 /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"
    
    
  2. /sbin/service vncserver restart

  3. 进入另一台拥有 vncserver 的机器并测试 VNC。
    1. vncviewer -via larry@192.168.0.10 localhost:1

    2. vncviewer -via moe@192.168.0.10 localhost:2

    3. 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"。

注:假若你启用 selinuxiptables ,你须要留意可能会出现的交互问题。如果你没有一个正在运行的显示管理程序(譬如在 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)。简单来说,请跟从下面的步骤:

  1. 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
    
    
  2. 以 root 的身份在要被连接的主机上用 yum 或 rpm 进行安装:

    yum install x11vnc-0.9.3-1.el5.rf.i386.rpm
    
    
  3. 在要被连接的主机上引导 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

 

  1. 在你需要执行 vnc-server 的系统上,如上面所示安装 vnc-server。
  2. 以 root 身份编辑 /etc/X11/xorg.conf,并加入/创建一个 Module 分段及加入 Load "vnc"

    Section "Module"
    
      Load "vnc"
    
    EndSection
    
    
  3. 要用标准的 vnc 验证,以 root 身份编辑 /etc/X11/xorg.conf,并在 Screen 分段内加入:

      Option "SecurityTypes" "VncAuth"
    
      Option "UserPasswdVerifier" "VncAuth"
    
      Option "PasswordFile" "/root/.vnc/passwd"
    
    
  4. 以 root 身份执行 vncpasswd 并如上面所示创建口令。
  5. 重新引导 X11(如果你已经在控制台上,可用 <Ctrl>+<Alt>+<BS>)

  6. 你应该可以正常地用 vncviewer 客户端来进行连接。
  7. 要排除困难,请检查 /var/log/Xorg.0.log 内的错误,并确定 iptables 或 selinux 并没有干扰远程的连接。额外的信息已收录在 http://www.realvnc.com/products/free/4.1/x0.html

(责任编辑:IT)