LINUX设置VNC server配置服务客户端和服务器

运维 系统运维
要把VNC server配置成一项系统服务,把你的用户名称加入到下面的VNC server配置文件中: CODE:[Copy to clipboard][tchung@tchung101 tchung]$ sudo vi /etc/sysconfig/VNCservers

特别值得一提的是VNC server配置有很多值得学习的地方,这里我们主要介绍VNC server配置,包括介绍启动VNC server服务等方面。对特定计算环境的支持使得每一个操作系统都有适合于自己的工作场合,这就是系统对特定计算环境的支持。远程桌面设置在Fedora上设置VNC server。

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

什么是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 server配置成一项系统服务,把你的用户名称加入到下面的VNC server配置文件中:
CODE:[Copy to clipboard][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服务之前,让我们用VNC passwd这个命令来创建一个VNC的口令注意这将同时在你的home目录下,创建一个隐藏的目录.VNC,其中有一个文件passwd保存着你的VNC口令.
CODE:[Copy to clipboard][tchung@tchung101 tchung]$ VNC passwd
Password:
Verify:
[tchung@tchung101 tchung]$ ls -d .VNC
.VNC
[tchung@tchung101 tchung]$ ls .VNC
passwd
[tchung@tchung101 tchung]$

现在来启动VNC server服务.

CODE:[Copy to clipboard][tchung@tchung101 tchung]$ sudo /sbin/service VNC server start
Starting VNC server: 1:tchung                              [  OK  ]
[tchung@tchung101 tchung]$
察看一下.VNC这个目录的内容,应该类似于下面的东西.
CODE:[Copy to clipboard][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 &

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

CODE:[Copy to clipboard][tchung@tchung101 tchung]$ sudo /sbin/service VNCserver restart
Shutting down VNC server: 1:tchung                         [  OK  ]
Starting VNC server: 1:tchung                              [  OK  ]
[tchung@tchung101 tchung]$
那么怎样来连接到VNC server? 照下面使用客户端的VNC viewer命令.
[tchung@tchung101 tchung]$ VNC viewer 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
让VNC server配置接受两个不同的用户:

CODE:[Copy to clipboard]VNC SERVERS="1:tchung 2:thomasc"
当然你要为两个用户分别运行VNC passwd来设置口令. 并且在你的防火墙修改中,你应该明白VNC server使用端口5901给连接1用,如果象上面一样要支持两个用户,应同时打开5901和5902.

远程桌面设置part2:利用putty进行VNC + ssh tunneling

在前面有VNC server配置设置的文章(http://bbs.chinaunix.net/forum/viewtopic.php?t= 368552&highlight=yunqing)里, 我们已经可以在一个Linux的服务器上运行VNC server进行远程访问了,但需要注意的是,如果直接使用VNC viewer来进行访问,有两点不利因素:
1. 口令传输是明文,很容易被侦听到.
2. 防火墙需要打开59xx端口,这在通常的单位里是不可能的.
幸运的是,我们有ssh这个强大的工具,象X11 Forwarding(另文论述),我们可以使用ssh隧道来保护通讯过程,下面就进行简单介绍.
假设VNC server配置运行在服务器 myserver (ip地址为:192.168.x.x)的屏幕1,也就是侦听 192.168.x.x:5901, 用户名为foo

情形一: VNC server配置客户端为Linux

这种情形很简单,一般的Linux发行版本里面都默认安装了ssh套件.

1. 用ssh登录到服务器
ssh -L 5901:localhost:5901 -l foo myserver或者直接用ip地址
ssh -L 5901:localhost:5901 -l foo 192.168.x.x

2. 在本机的另外开的终端上,运行VNC viewer (或其它的类似工具)
VNC viewer localhost:1

情形二: VNC客户端为windows

1. 下载一个ssh客户端,个人推荐putty,只有一个程序,不需要安装,简单而功能齐全. 到这里下载http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
下载putty.exe到桌面上直接运行即可。
2. 运行putty,输入服务器的ip地址,输入一个名字,这里myserver作为session的名字,按save保存。见附图一
3. 单击对话框左边的tunnels来选择相关设置,在source port里输入5901,在Destination里输入localhost:5901,按Add添加,如附图二
4. 单击左边session,回到session设置,按save重新保存。按open即可登录到服务器。
5.  运行VNC-viewer (如果没有,到这里下载http://www.real VNC.com/download.html,只要一个exe的文件就行) ,在Server里输入localhost:1,见附图三, 输入口令后一个Linux的桌面就会出现在windows里,并且是非常安全的, Cool?

另请参阅:
远程桌面设置part1:在Fedora上VNC server配置过程(转译) (http://bbs.chinaunix.net/forum/viewtopic.php?t=368552&highlight=yunqing)

【编辑推荐】

  1. 介绍Ubuntu VNC远程控制原理操作
  2. 学习手册:SUSE Linux下安装VNC
  3. 利用VNC远程遥控Linux操作系统
  4. 教你如何使用VNC连接Linux服务器
  5. 用SSH保护你的VNC远程连接
责任编辑:佚名 来源: CSDN
相关推荐

2010-03-01 16:10:32

Linux Samba

2018-12-20 08:50:53

TCPIP服务器

2010-03-19 09:26:34

Java Socket

2018-04-12 10:55:41

Android服务器数据

2011-03-28 17:24:26

2012-05-07 13:55:41

JavaJava Web

2009-06-27 20:32:00

LinuxNFS客户端

2009-02-12 15:51:00

squid代理服务器web服务器

2018-11-19 15:30:23

ChronyLinux命令

2014-06-01 11:03:13

VDI零客户端

2010-03-26 11:23:52

CentOS系统

2021-06-16 07:34:32

Pythonsocket库Python基础

2011-06-09 10:51:26

Qt 服务器 客户端

2011-04-06 14:24:21

Nagios监控Linux

2011-03-21 14:53:27

Nagios监控Linux

2019-05-05 10:42:22

LinuxNTP命令

2009-08-18 12:51:19

服务器+客户端

2009-09-17 18:06:44

Nis服务器

2021-10-14 08:39:17

Java Netty Java 基础

2012-05-29 09:38:04

Linux客户端服务器
点赞
收藏

51CTO技术栈公众号