VNC Server config

来源:互联网 发布:杭州城市骑行大数据 编辑:程序博客网 时间:2024/06/07 19:14

Ubuntu下包含2种远程桌面的方式:VINO-Server以及VNC Server。

其中Vino-Server是Ubuntu自带的远程桌面服务器,也就是在系统(System) —>首选项(Preferences) —> 远程桌面(Remote Desktop)下,可以很容易开启,然后就可以使用VNC Viewer进行远程桌面连接。具体开通办法,可以参见《Ubuntu下开启远程桌面的方法》。不过,这种自带的Vino-Server方式有一个最显著的缺点:那就是当你重启机器之后,必须首先到远程服务器那边登录机器,进入系统(相当于创建了一个Session)之后,才能在本地使用远程桌面连接这个远程服务器。这个缺点导致Vino-Server有时极为不方便。

那么,我们如果要解决这个问题,可以通过安装VNC Server来解决。在Ubuntu下安装VNCServer的过程非常简单:

(1)安装VNCServer
使用ssh登录Ubuntu,执行命令:sudo apt-get install vnc4server

(2)关闭原来Ubuntu Server自带的远程桌面
可以先使用VNCViewer连接到Ubuntu上,然后在系统(System) —>首选项(Preferences) —> 远程桌面(Remote Desktop)下,去掉第一个勾。这个时候你的VNCViewer就会自动断开。

(3)配置VNCServer
在ssh到Ubuntu的命令行中,运行如下命令:vncpasswd,注意不用加sudo。
这个命令是为当前用户设定远程桌面密码的。然后会在当前用户的根目录下生成.vnc的文件夹,进入.vnc的文件之后,修改xstartup文件
vim .vnc/xstartup (假设你此时在用户根目录下)
注释掉 twm & (即在这一行的最开头加上一个#) ,在文件最后添加一行gnome-session &,保存退出。

(4)启动VNCServer
vncserver -geometry 1280×800 -alwaysshared :1
这个命令包含了3个参数,第一个参数geometry表示分辨率,你可以指定适合自己桌面的分辨率;第二个参数alwaysshared表示运行多个人同时连接到同一个桌面;第三个参数:1表示开启一个1号远程桌面,此时你可以使用ip:1来连接这个远程桌面。(注意:上面1280与800之间的连接符为英文字母x(xyz的x),而不是中英文的乘号!)

(5)使用VNCViewer连接这个远程桌面
在VNCViewer中,输入ip加桌面号,即 X.X.X.X:1 即可连接刚才的远程桌面,密码为之前设定的密码。

这样,当你再次重启服务器之后,就不必跑到服务器前登录系统,而可以首先使用ssh登录Ubuntu,执行以上第4步命令,就可以开启一个远程桌面,然后就可以使用VNCViewer连接这个远程桌面了。

我也曾经尝试能否在Ubuntu下自动启动VNCServer,自动启动一个远程桌面,不过很遗憾,在网上查到的方法多是针对其他的Linux的方法,在Ubuntu下目录结构完全不同,一些极少数在Ubuntu下自动启动VNCServer的文章也不适合Ubuntu 9.04 Server版,因此最终我没有在Ubuntu 9.04 Server上实现自动启动VNCServer的方法。就是每次重启机器之后,得先多一步ssh启动VNCServer的步骤。先这么用着吧。

备注:另外,如果想要关闭一个远程桌面,可以使用如下命令
vncserver -kill :1
其中,":1"表示的创建远程桌面时的桌面号。

本文可以自由转载,转载时请保留全文并注明出处:
转载自仲子说 [ http://www.wangzhongyuan.com/ ]
原文链接:http://www.wangzhongyuan.com/archives/787.html

 

 

 

fedora中配置VNC vncserver

VNCserver在Fedora上配置过程
前言:一直想写一下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"

在启动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这个目录的内容,应该类似于下面的东西.

[Copy to clipboard] [ - ]
CODE:
[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.

[Copy to clipboard] [ - ]
CODE:
[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

[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接受两个不同的用户:

[Copy to clipboard] [ - ]
CODE:
VNCSERVERS="1:tchung 2:thomasc"

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

持两个用户,应同时打开5901和5902.


原创粉丝点击