As Good A Place As Any

Tim Thomas's Blog

Tuesday Sep 16, 2008

在 Solaris 10 5/08 和 Solaris Express (Nevada) 中配置 VNC 服务器的脚本

有一段时间我使用脚本来配置 Solaris Express (Nevada) 的 VNC 服务器显示,我发现这段脚本也适用于 Solaris 10 5/08 (Solaris 10 Update 5),因为它也包含 Xvnc。

我总是安装完整的 Solaris。如果您不是这样安装的,那么您的系统上可能没有安装 Xvnc。很容易检查是否安装了 Xvnc:

# pkginfo | grep  xvnc
system      SUNWxvnc                         X11/VNC server

在完成 OS 安装之后运行下面的脚本。该脚本设置两个 VNC 显示,您使用一个 VNC 客户端以 <hostname>:1<hostname>:2 的形式连接它们。第二个显示是共享的。

#!/bin/sh
#
# config_Xvnc_s10+snv.sh
#
# Run this script once after OS installation is completed.
#
# This has been tested with Solaris 10 5/08 and Solaris Express (Nevada) b87 onwards
#

#add vnc display 1
svccfg -s application/x11/x11-server add display1
svccfg -s application/x11/x11-server:display1 addpg options application
svccfg -s application/x11/x11-server:display1 addpropvalue options/server astring: "/usr/X11/bin/Xvnc"
svccfg -s application/x11/x11-server:display1 addpropvalue options/server_args astring: '"SecurityTypes=None"'

#add vnc display 2, which is shared
svccfg -s application/x11/x11-server add display2
svccfg -s application/x11/x11-server:display2 addpg options application
svccfg -s application/x11/x11-server:display2 addpropvalue options/server astring: "/usr/X11/bin/Xvnc"
svccfg -s application/x11/x11-server:display2 addpropvalue options/server_args astring: '"SecurityTypes=None"'
svccfg -s application/x11/x11-server:display2 addpropvalue options/server_args astring: '"-alwaysshared"'

# Configure dtlogin to start it
if [ ! -d /etc/dt/config ] ; then
        mkdir -p /etc/dt/config
fi
if [ ! -f /etc/dt/config/Xservers ] ; then
        cp /usr/dt/config/Xservers /etc/dt/config/Xservers
fi

echo "   :1   Local local_uid@none root /usr/X11/bin/Xserver :1" >> /etc/dt/config/Xservers
echo "   :2   Local local_uid@none root /usr/X11/bin/Xserver :2" >> /etc/dt/config/Xservers

pkill -HUP dtlogin

#End

断开 VNC 客户端时仍会继续显示,因此您可以在以后的某个时刻返回到原来的会话,所有的窗口和应用程序都会与您离开该会话时的状态一模一样。您暂停的任何作业都会继续运行。

您可以从 http://www.realvnc.com 获取 VNC 客户端软件。该软件包括一个免费版本和一个增强的个人版本,后者需要许可证。

如果您的 Solaris 10 版本比 5/08 旧,请查看我关于如何配置 VNC 的以前的博客文章

参考资料:12

一个简单的 OpenSolaris 2008.05 VNC 服务器和 GDM 配置示例

我的要求是能够将我的 VNC 客户端连接到一个运行 OpenSolaris 2008.05 的系统,并且能够以超级用户的身份进行登录。我现在已经在一个运行原始 OpenSolaris 2008.05 二进制分发版的系统上成功实现此目标,运行了一个到 snv_91 的完全映像更新之后,在一个运行 OpenSolaris 2008.05 的系统上也实现了此目标。

1. 检查是否安装了 VNC 服务器

VNC 服务器应该已经安装,因为它是 2008.05 二进制分发版的一部分,但我仍然进行了检查。

# pkg info SUNWxvnc
          Name: SUNWxvnc
       Summary: X11/VNC server
         State: Installed
     Authority: opensolaris.org (preferred)
       Version: 4.1.2
 Build Release: 5.11
        Branch: 0.91
Packaging Date: Fri Jun 13 17:49:25 2008
          Size: 6.3 MB
          FMRI: pkg:/SUNWxvnc@4.1.2,5.11-0.91:20080613T174925Z

2. 将此行代码添加到 /etc/services

vnc-server      5900/tcp                        # Xvnc

3. 按照以下方法编辑 /etc/X11/gdm/custom.conf

[xdmcp]
Enable=true
[security]
DisallowTCP=false
AllowRoot=true
AllowRemoteRoot=true

4. 启用这些服务

# svcadm enable xvnc-inetd
# svcs xvnc-inetd
STATE          STIME    FMRI
online         16:22:30 svc:/application/x11/xvnc-inetd:default
# svcadm enable gdm
# svcs gdm
STATE          STIME    FMRI
online         14:43:13 svc:/application/graphical-login/gdm:default

5. 使用 VNC 客户端连接到显示器

您现在应该能够连接到 <hostname>:5900,而且您应该会看到 gdm 登录屏幕。

如果您不能够进行连接,尝试停止并启动这些服务:

# svcadm disable xvnc-inetd gdm
# svcadm enable xvnc-inetd gdm

有一点使我不太满意:当我关闭 VNC 客户端时,与显示器相关联的登录会话似乎退出了。我使用 Solaris 10 和 Solaris Express 时都没有遇到这种现象,它们使用的是 dtlogin,而不是 gdm。如果我找到此问题的解决方案,我会将其添加到本文中。

参考资料:12

A Day At The Seaside

Calendar

About Me

View Tim Thomas's profile on LinkedIn

Available in

English

简体中文

日本語

Feeds

Search

Links

Navigation