VNC server搭建、VNC Viewer 客户端连接及常见错误处理(The connection closed unexpectedly)

本文详细介绍了在Ubuntu和麒麟系统上通过镜像和yum方式搭建VNC服务器的过程,包括使用docker镜像、配置端口、设置密码,以及使用VNCViewer连接远程桌面的步骤。同时列出了连接过程中可能遇到的常见错误及其处理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

搭建vnc server

一、镜像方式,ubuntu下可以使用该方式

二、yum方式,麒麟系统下可以使用该方式

连接远程主机桌面

常见错误处理


VNC (Virtual Network Console),虚拟网络控制台是一个图形桌面共享软件,允许您使用键盘和鼠标远程控制另一台计算机。

VNC是在基于UNIX和Linux操作系统的免费开源软件,远程控制能力强大,高效实用,具有平台无关的特性。国内以VNC为核心的软件有网络人远程控制软件。VNC几乎支持所有的图形界面的操作系统,并支持Java。多个VNC客户端"VNC Viewer"可以同时连接到服务器,流行的应用包括远程技术支持、相互传输两台计算机的文件等。

搭建vnc server

一、镜像方式,ubuntu下可以使用该方式

1、下载镜像

https://github.com/fcwu/docker-ubuntu-vnc-desktop

该镜像是含有ubuntu 通过docker运行的桌面环境,并接受vnc 的连接

docker pull dorowu/ubuntu-desktop-lxde-vnc

2、运行容器

1)只暴露容器的80端口,此时只能通过web的方式访问vnc

docker run --rm -itd --name vnc_test -p 6080:80 -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc

2)同时暴露80、5900端口,此时web、客户端工具都可以连接

docker run --rm -itd --name vnc_test -p 6080:80 -p 5900:5900 -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc

3)暴露80、5900端口的同时,设置VNC登录的密码:abc@123$

docker run --rm -itd --name vnc_test -p 6080:80 -p 5900:5900 -e VNC_PASSWORD=abc@123$ -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc
4)指定分辨率 -e RESOLUTION=1920x1080
docker run --rm -itd --name vnc_test -p 6080:80 -p 5900:5900 -e RESOLUTION=1920x1080 -e VNC_PASSWORD=abc@123$ -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc

二、yum方式,麒麟系统下可以使用该方式

1、查看是否安装了VNC

rpm -q tigervnc tigervnc-server

2、安装vnc client和server

yum install tigervnc tigervnc-server -y

3、设置vnc的登录(连接)密码

vncpasswd

4、启动vncserver@:1.service

[root@www ~]#  systemctl start vncserver@:1.service
Job for vncserver@:1.service failed because the control process exited with error code.
See "systemctl status vncserver@:1.service" and "journalctl -xe" for details.



[root@www ~]# systemctl status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC)
   Loaded: loaded (/etc/systemd/system/vncserver@:1.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2024-04-17 16:08:23 CST; 1h 17min ago
  Process: 248162 ExecStart=/usr/libexec/vncsession-start :1 (code=exited, status=1/FAILURE)

从命令的结果看,vncserver@:1.service启动失败,但是不影响服务的使用,继续用启动vnc server

5、启动 vnc server服务

vncserver默认启动的为“桌面号”为1的服务,即与命令vncserver :1等价

[root@www ~]# vncserver

WARNING: vncserver has been replaced by a systemd unit and is about to be removed in future releases.
Please read /usr/share/doc/tigervnc/HOWTO.md for more information.

New '192.168.1.56:1 (root)' desktop is 192.168.1.56.com:1

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

vncserver启动成功,监听的端口为5901

启动“桌面号”为2的服务:vncserver :2,即端口为5902的服务

启动服务

vncserver :2

[root@www ~]# vncserver :2

WARNING: vncserver has been replaced by a systemd unit and is about to be removed in future releases.
Please read /usr/share/doc/tigervnc/HOWTO.md for more information.

New '192.168.1.56:2 (root)' desktop is 192.168.1.56:2

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/192.168.1.56:2.log

注意:不需要再复制一个桌面号为2的vnc操作脚本,即不需要执行:cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service,直接使用命令vncserver :2启动服务即可,同样启动5903的服务:vncserver :3

3)查看监听的端口

8、停止vnc server

vncserver -kill :1

注意:冒号后面紧跟着1

[root@www ~]# vncserver -kill :1

WARNING: vncserver has been replaced by a systemd unit and is about to be removed in future releases.
Please read /usr/share/doc/tigervnc/HOWTO.md for more information.
Killing Xvnc process ID 248181

9、查看vncserver@:1.service配置

[root@www ~]# cat /etc/systemd/system/vncserver@:1.service
# The vncserver service unit file
#
# Quick HowTo:
# 1. Add a user mapping to /etc/tigervnc/vncserver.users.
# 2. Adjust the global or user configuration. See the
#    vncsession(8) manpage for details. (OPTIONAL)
# 3. Run `systemctl enable vncserver@:<display>.service`
# 4. Run `systemctl start vncserver@:<display>.service`
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted!  For a secure way of using VNC, you should
# limit connections to the local host and then tunnel from
# the machine you want to view VNC on (host A) to the machine
# whose VNC output you want to view (host B)
#
# [user@hostA ~]$ ssh -v -C -L 590N:localhost:590M hostB
#
# this will open a connection on port 590N of your hostA to hostB's port 590M
# (in fact, it ssh-connects to hostB and then connects to localhost (on hostB).
# See the ssh man page for details on port forwarding)
#
# You can then point a VNC client on hostA at vncdisplay N of localhost and with
# the help of ssh, you end up seeing what hostB makes available on port 590M
#
# Use "nolisten=tcp" to prevent X connections to your VNC server via TCP.
#
# Use "localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel.  See the "-via" option in the
# `man vncviewer' manual page.


[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/usr/libexec/vncsession-start %i
PIDFile=/run/vncsession-%i.pid
SELinuxContext=system_u:system_r:vnc_session_t:s0

[Install]
WantedBy=multi-user.target

连接远程主机桌面

一、web的方式访问,在浏览器中输入http://10.10.1.1:6080,则将打开远程桌面:

二、使用客户端工具vnc viewer 连接访问

1、下载vnc viewer:https://downloads.realvnc.com/download/file/viewer.files/VNC-Viewer-7.10.0-Windows.exe

2、安装vnc viewer,一路next安装即可。

3、启动vnc viewer,建立到服务器10.10.1.1的链接

4、连接远程的vnc server,默认会连接vnc server的5900端口

1)配置连接

2)连接服务,点击continue后,即可连接到远程桌面

3)系统为ubuntu 20.04.2 LTS (Focal Fossa),默认集成了chrome、firefox等浏览器

常见错误处理

1)如果5900端口未启用(如:docker启动时未暴露5900端口),则会报错:The connection closed unexpectedly.

2)如果10.10.1.1无法访问,则报错:Timed out waiting for a response from the computer

参考:使用桌面环境和 VNC 在 Docker 中运行 Ubuntu Linux |

动手篇 | 麒麟Kylin V10 环境下如何配置VNC远程桌面访问 - 墨天轮

vnc viewer,网络人远程控制软件为你解说vnc viewer和vnc Server

<think>好的,用户想了解VNC ServerVNC Viewer的区别及用法。首先,我需要明确两者的基本概念。根据引用[1],VNC Server是服务端,提供图形接口连接,而VNC Viewer客户端,用于连接服务器。要详细说明它们的区别,比如角色、安装位置、功能等。 接下来是使用方法。引用[1]提到配置epel源安装VNC Server,引用[3]有安装和重启服务的命令,可能需要整理步骤。对于VNC Viewer,引用[3]提到在另一台主机安装客户端连接时需要IP和端口号。常见问题部分,引用[2]提到连接意外关闭的错误,需要指出可能的原因,如端口未开放或防火墙设置。 还要注意引用中的信息,比如引用[4]提到的VNC Connect功能,可以适当提及应用场景,如远程支持或协作。需要确保回答结构清晰,分点说明区别和使用步骤,并加入相关问题。 最后检查LaTeX格式是否正确,行内公式用$...$,独立公式用$$...$$,不过当前问题可能不需要数学公式,但需遵循其他格式要求。确保引用标识正确,例如[^1]、[^2]等,并在回答末尾列出相关问题。</think>### VNC ServerVNC Viewer 的区别及用法 #### 一、核心区别 1. **角色定位** - **VNC Server**:是服务端软件,运行在被控制的计算机上,负责提供图形界面连接服务[^1]。例如,在 CentOS 中配置后,它允许其他设备通过 VNC 协议访问其桌面环境。 - **VNC Viewer**:是客户端软件,安装在控制端设备上,用于连接并操作远程的 VNC Server[^3]。例如,通过输入 IP 地址和端口号访问远程服务器。 2. **功能差异** - VNC Server 的主要功能是**监听端口、管理连接权限、转发图形界面数据**[^1]。 - VNC Viewer 则负责**发送操作指令(如键盘、鼠标输入)并接收屏幕画面更新**[^4]。 3. **安装位置** - VNC Server 通常部署在需要被远程控制的设备(如服务器、工作站)。 - VNC Viewer 安装在控制端设备(如个人电脑或移动终端)。 #### 二、使用方法 ##### 1. VNC Server 配置(以 CentOS 为例) - **步骤1:安装软件** 通过 EPEL 源安装 TigerVNC 或 RealVNC: ```bash yum install tigervnc-server ``` - **步骤2:启动服务** 初始化并设置访问密码: ```bash vncserver :1 # 启动编号为1的桌面会话 service vncserver restart # 重启服务 ``` - **步骤3:防火墙配置** 开放默认端口 `5901`(对应桌面编号1): ```bash firewall-cmd --add-port=5901/tcp --permanent firewall-cmd --reload ``` ##### 2. VNC Viewer 连接 - **步骤1:安装客户端** 在控制端下载并安装 VNC Viewer(如 RealVNC Viewer 或 TigerVNC Viewer)[^3]。 - **步骤2:输入连接信息** 格式为 `IP地址:桌面编号`,例如 `192.168.1.100:1`。 - **步骤3:身份验证** 输入 VNC Server 设置的密码完成连接。 #### 三、常见问题 - **连接失败(如“The connection closed unexpectedly”)** 可能原因包括: - 端口未开放或防火墙拦截 - VNC Server 未正确启动 - 密码错误或权限配置问题 - **性能优化** 可调整画面质量或启用压缩功能以减少延迟[^4]。 #### 四、应用场景 - **远程技术支持**:通过 VNC Viewer 实时查看并操作用户设备。 - **跨平台协作**:支持 Windows、Linux、macOS 等多种系统间的连接。 - **服务器管理**:为无图形界面的服务器临时启用可视化操作环境。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值