新闻详情

新闻详情

首页 / 资讯中心 / 详情

Ubuntu 24.04 搭建远程桌面服务 x0vncserver noVNC

发布时间:2026/9/28 4:31:30来源:尧图网络
Ubuntu 24.04 搭建远程桌面服务 x0vncserver  noVNC
本文介绍了一种在 Ubuntu 环境下搭建远程桌面服务的方法。主要环境操作系统环境Ubuntu 24.04 LTS GNOME 桌面系统VNC 服务端TigerVNCVNC 客户端noVNC其他环境和工具1panelopenresty (nginx)supervisor (or systemd)安装和配置 VNC 服务端安装 TigerVNC在 sourceforge 上下载 TigerVNC 的程序包。https://sourceforge.net/projects/tigervnc/files/stable/1.13.1/下载完成后解压到指定目录。我这里放在了/opt/目录下。解压后的目录结构如下Collapse code blockBashOpen full page code blockCopy codewgxlsserver:/opt$ tree tigervnc-1.13.0.x86_64/ tigervnc-1.13.0.x86_64/ ├── etc │ ├── pam.d │ │ └── tigervnc │ └── tigervnc │ ├── vncserver-config-defaults │ ├── vncserver-config-mandatory │ └── vncserver.users └── usr ├── bin │ ├── vncconfig │ ├── vncpasswd │ ├── vncviewer │ ├── x0vncserver │ └── Xvnc ├── lib │ └── systemd │ └── system │ └── vncserver.service ├── lib64 │ ├── swrast_dri.so │ └── xorg │ └── protocol.txt ├── libexec │ ├── vncserver │ └── vncsession-start ├── sbin │ └── vncsession └── share ├── applications │ └── vncviewer.desktop ├── doc │ └── tigervnc │ ├── HOWTO.md │ ├── LICENCE.TXT │ └── README.rst ├── icons │ └── hicolor │ ├── 128x128 │ │ └── apps │ │ └── tigervnc.png │ ├── 16x16 │ │ └── apps │ │ └── tigervnc.png │ ├── 22x22 │ │ └── apps │ │ └── tigervnc.png │ ├── 24x24 │ │ └── apps │ │ └── tigervnc.png │ ├── 32x32 │ │ └── apps │ │ └── tigervnc.png │ ├── 48x48 │ │ └── apps │ │ └── tigervnc.png │ ├── 64x64 │ │ └── apps │ │ └── tigervnc.png │ └── scalable │ └── apps │ └── tigervnc.svg ├── locale │ ├── bg │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── cs │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── da │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── de │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── el │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── eo │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── es │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── fi │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── fr │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── fur │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── he │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── hu │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── id │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── it │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── ka │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── ko │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── nl │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── pl │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── pt_BR │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── ro │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── ru │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── sk │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── sr │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── sv │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── tr │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── uk │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── vi │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ ├── zh_CN │ │ └── LC_MESSAGES │ │ └── tigervnc.mo │ └── zh_TW │ └── LC_MESSAGES │ └── tigervnc.mo ├── man │ ├── man1 │ │ ├── vncconfig.1 │ │ ├── vncpasswd.1 │ │ ├── vncviewer.1 │ │ ├── x0vncserver.1 │ │ └── Xvnc.1 │ └── man8 │ ├── vncserver.8 │ └── vncsession.8 └── metainfo └── org.tigervnc.vncviewer.metainfo.xml 98 directories, 64 files展开剩余 145 行配置 x0vncserver首先给 VNC 服务生成密码。Collapse code blockBashOpen full page code blockCopy code# 切换到 tigerVNC 的 bin 目录 cd /opt/tigervnc-1.13.0.x86_64/usr/bin # 执行 vncpasswd 命令 ./vncpasswd这里将会提示输入两次密码这个密码用于远程登录的认证服务。然后查看当前的显示器序号。Collapse code blockBashOpen full page code blockCopy codeprintenv DISPLAY这里显示的是:0表示当前显示器的序号是 0。然后启动 x0vncserver 服务。我这里使用的 x0vncserver可以直接连接到当前桌面环境。在效果上就和 Windows 的远程桌面服务向日葵等工具类似。如果使用 Xvnc会新开一个桌面环境远程访问的效果和本地不同。Collapse code blockBashOpen full page code blockCopy code# 切换到 tigerVNC 的 bin 目录 cd /opt/tigervnc-1.13.0.x86_64/usr/bin # 启动 x0vncserver 服务 ./x0vncserver -display :0 -passwordfile ~/.vnc/passwd -NeverShared简单解释一下这三个参数-display :0指定显示器序号。-passwordfile ~/.vnc/passwd指定密码文件。-NeverShared表示不共享只允许一个用户连接。全部支持的参数信息可以查看帮助文档。⚠️ TigerVNC 的 vncpasswd 命令进行了更新现在passwd文件会生成在$HOME/.config/tigervnc/passwd注意更新相关命令。参考vncpasswd配置桌面环境根据我的实验如果使用 Wayland 桌面环境x0vncserver 连上后就只能看到一个黑屏。所以首先关闭 Wayland。同时为了能让电脑在一开机的时候就能够自动启动 x0vncserver 服务我们需要开机桌面的自动登录为了创建一个 X 会话。Collapse code blockBashOpen full page code blockCopy code# 编辑 /etc/gdm3/custom.conf 文件 sudo vim /etc/gdm3/custom.conf # 找到 [daemon] 部分添加如下内容 WaylandEnablefalse AutomaticLoginEnabletrue AutomaticLoginyour_username修改完之后重启电脑。安装和配置 noVNC下载 noVNC我这里在/opt/目录下存放 noVNC 的程序包。Collapse code blockBashOpen full page code blockCopy codecd /opt git clone https://github.com/novnc/noVNC.git配置 noVNCCollapse code blockBashOpen full page code blockCopy codecd /opt/noVNC ./utils/novnc_proxy --vnc localhost:5900第一次执行这个命令的时候会自动下载 websockify。至此核心部分的配置已经完成。配置守护进程和反向代理因为我的服务器上安装了 1panel1panel 提供了图形界面去管理 supervisor 守护进程。所以我这里使用 supervisor 来管理 noVNC 和 x0vncserver 服务。登录 1panel 后点击工具箱-守护进程如果服务器没有安装 supervisor可以按照提示进行安装。安装完成 supervisor 后, 在 1panel 的守护进程页面点击初始化然后点击创建守护进程。首先添加 x0vncserver 的守护进程, 下图是我的例子可以根据自己的实际情况进行配置。启动命令我填写的是/opt/tigervnc-1.13.0.x86_64/usr/bin/x0vncserver -display :0 -passwordfile /home/wgxls/.vnc/passwd -NeverShared然后添加 noVNC 的守护进程如图所示最后添加网站并配置反向代理这一步是常规操作这里不再赘述。我这里的反向代理配置如下Collapse code blockNginxOpen full page code blockCopy codelocation ^~ / { proxy_pass http://127.0.0.1:6080; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; add_header X-Cache $upstream_cache_status; add_header Strict-Transport-Security max-age31536000; }如果你的网站域名是example.com那么你可以通过https://example.com/vnc.html访问 noVNC。设置 Dummy 显示器如果你需要在没有物理显示器的服务器上使用 x0vncserver可以设置一个 Dummy 显示器。安装 Dummy 驱动Collapse code blockBashOpen full page code blockCopy codesudo apt install xserver-xorg-video-dummy创建配置文件Collapse code blockBashOpen full page code blockCopy codesudo vim /etc/X11/xorg.conf.d/10-dummy.conf在文件中添加以下内容Collapse code blockCONFOpen full page code blockCopy codeSection Device Identifier DummyDevice Driver dummy VideoRam 1024000 EndSection Section Screen Identifier DummyScreen Device DummyDevice Monitor DummyMonitor DefaultDepth 24 SubSection Display Depth 24 Modes 2560x1440_60.0 EndSubSection EndSection Section Monitor Identifier DummyMonitor HorizSync 30-200 VertRefresh 50-1000 Modeline 2560x1440_60.00 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync vsync EndSection展开剩余 3 行重启 X 服务器或重启服务器Collapse code blockBashOpen full page code blockCopy codesudo systemctl restart gdm3然后就可以远程访问了。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

MATLAB ISODATE聚类算法实战:从解压到调参避坑 2026/9/28 5:35:44

MATLAB ISODATE聚类算法实战:从解压到调参避坑

简介:这份资源是面向MATLAB初学者与数据挖掘学习者的ISODATA聚类算法实现包,用于解决类别数量不确定、数据分布复杂场景下的自动聚类问题。压缩包内共1个文件,为m脚本类型,整体约3KB,核心是ISODATA算法的完整逻辑代码&…

阅读更多 →
网页多商户客服系统whisper-v2.1.11:坐席隔离与多租户架构方案 2026/9/28 5:35:44

网页多商户客服系统whisper-v2.1.11:坐席隔离与多租户架构方案

简介:网页多商户客服系统whisper-v2.1.11是一套面向多商户场景的在线客服解决方案,适合需要为多个商家提供独立客服入口的网站运营者、开发者及二次开发团队使用,可解决多租户环境下会话分配、坐席管理与消息互通等问题。压缩包共1890个文件&…

阅读更多 →
Cocos节点截图倒立排查:离屏渲染Y轴翻转完整指南 2026/9/28 5:35:44

Cocos节点截图倒立排查:离屏渲染Y轴翻转完整指南

做Cocos开发这几年,节点截图这个功能我前前后后写了不下十次。每次写完都有人来问:为什么截出来的图片是倒立的?包括我自己第一次遇到时也懵了——游戏画面里明明是正的,渲染纹理读出来、编码成PNG保存,打开一看上下完…

阅读更多 →
基于Flutter与OpenHarmony的剧本杀组队App活动中心开发实践 2026/9/28 5:35:44

基于Flutter与OpenHarmony的剧本杀组队App活动中心开发实践

1. 项目定位与整体设计思路1.1 剧本杀组队App的核心需求拆解先明确一件事:剧本杀这个场景,最核心的用户痛点从来不是“看剧本”,而是“凑人”。一个本子动辄五六个人,临时缺一两个人就开不了车,群里喊半天也没回应&…

阅读更多 →
【AI前沿】2026.08.12 英伟达Nemotron 4开源落地:用TaoToken统一Key跑通万亿参数推理配置 2026/9/28 5:35:37

【AI前沿】2026.08.12 英伟达Nemotron 4开源落地:用TaoToken统一Key跑通万亿参数推理配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
网络通信模型实战指南:从分层原理到故障排查 2026/9/28 5:35:31

网络通信模型实战指南:从分层原理到故障排查

很多开发者在排查网络问题时,第一反应是“是不是网断了”“是不是防火墙拦了”,但很少会去想:一次HTTP请求从发起到返回,中间到底经过了哪些环节、每一层各自干了什么活。这个问题如果答不清楚,那排查网络故障基本靠猜…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉