RHEL 6 下 VNC Server 的配置

Linux 可以通过使用 SSH 远程连接来进行控制,也可以在主机执行以下命令进行投射。

[root@localhost ~]# export DISPLAY=ipaddress:0
[root@localhost ~]# xhost +

这个命令要求 ipaddress 的机器装有 X Server(比如 Xmanager),但有时需要将远程整个的 Linux 桌面投射到本地,这时仍可通过安装配置 Xmanager 来实现。

本文主要介绍 VNC Server 的配置方法,需配置好 yum 源,文中的“主机”指安装 Linux 的机器。

1. 首先验证主机上是否安装 VNC Server,使用

[root@localhost ~]# yum list | grep vnc

的命令。返回

tigervnc.x86_64                        1.0.90-0.10.20100115svn3945.el6    @local
tigervnc-server.x86_64                 1.0.90-0.10.20100115svn3945.el6    @local

就代表已经存在,否则就通过

[root@localhost ~]# yum install "*vnc*"

的命令进行安装。

2. 随后启动 VNC Server,这时会要求你输入两次进行连接的初始密码。

[root@localhost ~]# vncserver
You will require a password to access your desktops.

Password: //输入密码
Verify: //再次输入密码
xauth: creating new authority file /root/.Xauthority

New ‘localhost.localdomain:1 (root)’ desktop is localhost.localdomain:1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log

这里要注意:每个用户都可以启动多个 VNC Server 远程桌面,它们用 ip 加端口号:ip:1、ip:2、ip:3 来标识区分,使用同一端口会使另外登录的用户自动退出。另,VNC Server 的大部分配置文件及日志文件都在用户 home 目录的.vnc 目录下。

用户可以自定义启动号码如:

[root@localhost ~]# vncserver :2        #注意:2前面一定要有空格。
A VNC server is already running as :2

3. Red Hat Linux 支持两种图形模式:KDE 模式和 gnome 模式。

你的 Redh Hat 使用的什么图形模式这个一般只有登录到图形界面查看一下才能知道,或者通过

[root@localhost ~]# ps -aux | grep gnome

这样的命令来判断。

如果是 gnome 桌面,那么需要修改/root/.vnc/xstartup的配置文件。

使用 vi 打开 xstartup 文件,如下:

[root@localhost /]# cd /root/.vnc
[root@localhost .vnc]# vi xstartup

删除全部内容,然后添加如下内容:

unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

4. 重启动 VNC Server

[root@localhost ~]# vncserver -kill :1
Killing Xvnc process ID 21198

[root@localhost ~]# vncserver

New ‘localhost.localdomain:1 (root)’ desktop is localhost.localdomain:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log

5. 在防火墙上打开 VNC Server 的监听端口

VNC Server 用到了三个端口:5801、5901、6001。

[root@localhost /]# cd /etc/sysconfig
[root@localhost sysconfig]# vi iptables

添加如下三行

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5801 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6001 -j ACCEPT

注意,一定要在

-A INPUT -j REJECT --reject-with icmp-host-prohibited

的前面,否则不会生效。

6. 重新启动 iptables。

[root@localhost sysconfig]# /etc/rc.d/init.d/iptables restart
Flushing firewall rules: [  OK  ]
Setting chains to policy ACCEPT: filter [  OK  ]
Unloading iptables modules: [  OK  ]
Applying iptables firewall rules: [  OK  ]
Loading additional iptables modules: ip_conntrack_netbios_ns ip_conntrack_ftp [  OK  ]

7. 在 Windows 机器上使用 VNC Viewer 连接 VNC Server

下载 VNC Viewer,运行然后输入IP:5901,输入刚才设定的密码,进入 RHEL 桌面。

参考:
http://jsx112.iteye.com/blog/1032842
http://guanjianfeng.com/archives/1447

5 thoughts on “RHEL 6 下 VNC Server 的配置

  1. 有没有遇到过 VNC远程不能输入字符的问题

    [回复]

    NickyYe 于 2011 年 07 月 26 日 13:26 回复:

    是无法输入中文还是就无法输入字符呢?

    vnc server这边会要求vnc viewer这边OS的输入法要和vnc server那边OS的语言要一致。一般我们装的Linux OS都是E文的,所以使用vnc viewer连入的时候,请关闭本地OS的中文输入法,切换到英语就可以了。

    要想能切换被控端输入法,在启动VNC服务前,首先在环境变量里面指定X图形界面的输入法,有两种方法,
    如下:
    export XMODIFIERS=@im=SCIM
    export GTK_IM_MODULE=SCIM

    上面两种方式随便采用一种就行,也可以两者都采用,只不过SCIM的GTK模块会
    和许多程序相冲突。

    只是我在网上搜到的…估计是你linux那边安装中文输入法了?

    [回复]

    kevin.lu 于 2011 年 11 月 03 日 22:35 回复:

    使用VNC View远程访问Linux,总是没有办法切换出SCIM输入法,研究了很久,终于让我找到了解决方法。
    1)修改.vnc/xstartup文件,在最后一行加入:scim -d,意思为打开SCIM输入法
    2)使用VNC View访问Linux系统以后,修改scim输入法的快捷键,因为默认打开输入法的快捷键为ctrl+space,与本地机器上切换输入法的快捷键冲突,系统会先接收到本地的命令,所以没办法使用默认快捷键打开输入法。将打开SCIM输入法的快捷键修改为Ctrl+Alt+Space(谁有更好的选择?麻烦告知,这个快捷键很笨。。。)
    3)打开一个可以输入汉字的地方,例如Web浏览器,然后使用Ctrl+Alt+Space切换,看到了吧:)

    [回复]

  2. 请问下。我要设 免验证自动连接怎么设置呢?

    [回复]

    NickyYe 于 2011 年 09 月 26 日 20:26 回复:

    这个方法我没有尝试过,大概搜索了一下,可能要借助 vncpasswd 的命令,你可以看看:)

    [回复]

发表评论

电子邮件地址不会被公开。 必填项已用*标注