`

远程登陆vncserver在redhat下详细配置

阅读更多
   +++++++++++参考网址+++++++++++
http://hi.baidu.com/willor/blog/item/a585ba446ad5062fcffca3ac.html

[本人已经在RHEL5.3上测试过可以用的,willor]
前言:一直想写一下vncserver在redhat下详细配置过程,以帮助一些向我有同样需求却有懒得去读man page的朋友,后来在www.fedoranews.org上发现已经有人写了一个教程,并且还不错。干脆翻译算了。大家可以直接去阅原文,我这里只是粗略地解释一下,以方便那些不愿意读字母的朋友.

翻译:yunqing

原作者:Thomas Chung

出处:http://fedoranews.org/tchung/vnc/

声明: 版权属原作者Thomas Chung所有,转载请注明出处.

再说一句废话:强烈推荐这个网站,虽然更新比较慢,对Fedora发行版来说比较对口.

以下正文:

什么是VNC?

VNC是虚拟网络计算Virtual Network Computing的缩写. 他是一个远程控制程序,允许用户在因特网的任何地方使用简单的程序来和一个特定的计算机(服务器)进行交互. 两个交互的计算机不一定非得是同一类型,所以你可以在家里的运行windows的PC上来察看办公室里运行LINUX的机器。VNC可以自由获取并且有上百万的人在使用,他们来自工业、学术和个人应用等不同层面. 更多的信息请访问 http://www.realvnc.com/

我的系统中已经有这个软件了吗?

键入下面的命令来检查vnc客户端和服务器是否已经安装在你的系统中:

[tchung@tchung101 tchung]$ rpm -q vnc vnc-server

vnc-4.0-0.beta4.3.2

vnc-server-4.0-0.beta4.3.2

[tchung@tchung101 tchung]$

要把vnc配置成一项系统服务,把你的用户名称加入到下面的配置文件中:

[tchung@tchung101 tchung]$ sudo vi /etc/sysconfig/vncservers

# The VNCSERVERS variable is a list of display:user pairs.

#

# Uncomment the line below to start a VNC server on display :1

# 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/vnc/sshvnc.html

                                                                                                 

# VNCSERVERS="1:myusername"

VNCSERVERS="1:tchung"

VNCSERVERARGS[1]="-geometry 1024x768"

在启动vnc服务之前,让我们用vncpasswd这个命令来创建一个vnc的口令

注意这将同时在你的home目录下,创建一个隐藏的目录.vnc,其中有一个文件passwd保存着你的vnc口令.

[tchung@tchung101 tchung]$ vncpasswd

Password:

Verify:

[tchung@tchung101 tchung]$ ls -d .vnc

.vnc

[tchung@tchung101 tchung]$ ls .vnc

passwd

[tchung@tchung101 tchung]$

现在来启动vnc服务.

[tchung@tchung101 tchung]$ sudo /sbin/service vncserver start

Starting VNC server: 1:tchung                              [ OK ]

[tchung@tchung101 tchung]$

察看一下.vnc这个目录的内容,应该类似于下面的东西.

[tchung@tchung101 tchung]$ cd .vnc

[tchung@tchung101 .vnc]$ ls

passwd tchung101:1.log tchung101:1.pid xstartup

[tchung@tchung101 .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 &

因为我们已经修改了启动脚本,现在来重新启动vncserver.

[tchung@tchung101 tchung]$ sudo /sbin/service vncserver restart

Shutting down VNC server: 1:tchung                         [ OK ]

Starting VNC server: 1:tchung                              [ OK ]

[tchung@tchung101 tchung]$

那么怎样来连接到vncserver? 照下面使用客户端的vncviewer命令.

[tchung@tchung101 tchung]$ vncviewer localhost:1

输入你的vnc口令,看一下结果

更新:

在使用防火墙的情况下来连接到一个远程系统,需要打开端口5901.

加入以下红色的部分,然后重启iptables服务。

[tchung@tchung101 tchung]$ sudo vi /etc/sysconfig/iptables

# Firewall configuration written by redhat-config-securitylevel

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0]

:FORWARD ACCEPT [0]

:OUTPUT ACCEPT [0]

:RH-Firewall-1-INPUT - [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 -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 5901 -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT

或者:

  这句话的含义是,允许其它机器访问本机的5900到5903端口,这样,display:1, display:2, display:3的用户就可以连接到本机。

[tchung@tchung101 tchung]$ sudo /sbin/service iptables restart

Flushing firewall rules:                                   [ OK ]

Setting chains to policy ACCEPT: filter                    [ OK ]

Unloading iptables modules:                                [ OK ]

Applying iptables firewall rules:                          [ OK ]

[tchung@tchung101 tchung]$

Forrest Taylor 提供的TIP

让vncserver接受两个不同的用户:

VNCSERVERS="1:tchung 2:thomasc"

当然你要为两个用户分别运行vncpasswd来设置口令. 并且在你的防火墙修改中,你应该明白VNC使用端口5901给连接1用,如果象上面一样要支持两个用户,应同时打开5901和5902.

---------------------------------------------------------------------------------------------------------
更改别的登陆桌面
  不过……这个桌面怎么这么丑?!

  原来vncserver默认使用的窗口管理器是twm,这是一个很简陋的窗口管理器,你可以把你的桌面改成GNOME或KDE。

  方法是,进入你自己的home目录,然后编辑这个文件:.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 &

  你可以把像上面这样把"twm &"这一行注释掉,然后在下面加入一行"gnome-session &",或者是"startkde &",分别启动GNOME桌面和KDE桌面。

  如果server重启了,那你就需要重新运行一次vncserver命令来启动VNC server,这很麻烦。有没有更好的方法呢?

  有!我们可以把VNC server启动成后台服务。执行如下步骤:

  首先要允许VNC server在系统启动过程中被启动。这可以通过“系统设置——>服务器设置——>服务”菜单来配置,把vncserver一项选上就可以了。

  如果使用命令行的话,以root身份运行以下两条命令:

  cd /etc/rc5.d

  mv K35vncserver S35vncserver

  然后编辑/etc/sysconfig/vncservers,以下是文件内容:

# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the line below to start a VNC server on display :1
# 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/vnc/sshvnc.html>.
VNCSERVERS="1:user1 2:user2 3:user3"
VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 1024x768"
VNCSERVERARGS[3]="-geometry 800x600 -alwaysshared -depth 24"

  解释一下这个文件:

  VNCSERVERS这一行是配置在系统启动时启动几个VNC server,上面的例子里运行了三个VNC server,其中user1在display :1,user2在display :2,user3在display :3。

  VNCSERVERARGS这三行,分别为VNC server 1, 2, 3配置启动参数,上面的例子里对user1和user2使用屏幕分辨率1024x768,对user3使用800x600。 -alwaysshared代表允许多用户同时登录 -depth代为色深,参数有8,16,24,32。

  其它支持的参数请使用“man vncserver”命令查询。

  编辑好这个文件后,保存,然后以root身份运行:

  /sbin/service vncserver start

  这样user1, user2, user3的vncserver就启动了。

  以后每次系统重启时,都会自动启动这三个用户的vncserver。

  注意:上面三个用户必须已经使用vncpasswd命令设置过vnc密码,不然他的vncserver启动会失败!

----------------------------------------------------------------------------

配置VNC使用KDE界面 http://waringid.blog.51cto.com/65148/53265
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics