可以在启动时添加 VNC 屏幕定义吗?

可以在启动时添加 VNC 屏幕定义吗?

我有一个 AWS Ubuntu 12.04 GUI 实例。我使用 VNC 从家里的 Windows PC 访问它。由于实例在不使用时会停止,因此每次启动它时,我都必须通过 SSH 终端进入它以运行 VNC 屏幕定义命令。只有这样我才能在 GUI 中启动我的 VNC 查看器。

有没有办法将 VNC 屏幕定义包含在批处理或启动脚本中,以便每次启动机器时自动创建它们?

答案1

我建议使用x11vnc,编写一个简单的脚本并在/etc/rc.local脚本中执行它。

x11vnc 与传统 Unix VNC 的区别。x11vnc直接与物理显示器交互

示例 shell 脚本

#!/bin/bash
x11vnc -safer -forever -display :0 -rfbauth ~/.vnc/passwd >/tmp/x11vnc.log 2>&1 &

下面我包含了针对另一个问题写的安装/配置详细信息:UBUNTU 13.04 上的 VNC - 不显示完整桌面

安装 x11vnc

sudo apt-get install x11vnc

创建 VNC 密码

x11vnc -storepasswd

笔记:默认为~/.vnc/passwd文件。或者,使用vncpasswd-storepasswd传递文件将密码传递作为 VNC 密码存储在文件文件中。存储密码后,程序退出。通过“ -rfbauth file”使用密码。如果调用时不使用任何参数“ x11vnc -storepasswd”,则提示用户输入密码,并将其存储在文件 ~/.vnc/passwd 中。使用一个参数调用,这将是存储提示密码的文件。

启动 x11vnc

# Start x11vnc using ~/.vnc/passwd
x11vnc -safer -forever -display :0 -rfbauth /home/terry/.vnc/passwd
# less output to stderr -q -quiet
# this does not eliminate all informational output, it only reduces it
x11vnc -safer -forever -display :0 -rfbauth /home/terry/.vnc/passwd -q
# eliminate all output
x11vnc -safer -forever -display :0 -rfbauth /home/terry/.vnc/passwd 2>/dev/null 1>2&

更改要监听的 VNC 端口

-rfbport

要监听的 VNC 端口(LibVNCServer 选项),例如 5900、5901 等。如果指定为“-rfbport PROMPT”,则 x11vnc -gui 用于提示用户输入端口号。

x11vnc -rfbport 5901

这强制 x11vnc 使用端口 5901(这是 VNC 显示:1。)

如果其他程序正在使用该端口,x11vnc 将立即退出。如果您不提供该-rfbport选项,它将从 5900 开始自动探测,一直到 5999,寻找一个可以监听的空闲端口。

将 x11vnc 发送到后台

x11vnc -safer -forever -display :0 -rfbauth /home/terry/.vnc/passwd -bg

屏幕设置后进入后台。除非使用 -o logfile,否则发送到 stderr 的消息将丢失。

VNC 密码文件

此选项-rfbauth .vnc/passwd通过要求每个连接的 VNC 查看器都输入 VNC 密码来提供额外的保护。vncpasswdstorepasswd程序,或x11vnc -storepasswd选项可用于创建密码文件。x11vnc还有安全性稍差的-passwdfile-passwd XXXXX选项来指定密码。

相关内容