在 Ubuntu 上安装 noVNC

在 Ubuntu 系统上安装和配置 noVNC 的完整指南:


1. 更新系统

首先,确保系统已更新:

bash 复制代码
sudo apt update
sudo apt upgrade -y

2. 安装依赖

noVNC 需要一些依赖包,包括 gitpython3pip 等:

bash 复制代码
sudo apt install -y git python3 python3-pip

3. 安装 Websockify

noVNC 依赖 websockify,可以通过 pip 安装:

bash 复制代码
sudo pip3 install websockify

4. 克隆 noVNC 仓库

从 GitHub 克隆 noVNC 的官方仓库:

bash 复制代码
git clone https://github.com/novnc/noVNC.git
cd noVNC

5. 启动 noVNC

noVNC 自带一个简单的 Web 服务器,可以通过以下命令启动:

bash 复制代码
./utils/launch.sh --vnc localhost:5901

参数说明:

  • --vnc localhost:5901:指定 VNC 服务器的地址和端口(默认 VNC 端口是 5901)
  • 默认情况下,noVNC 会在 http://localhost:6080 启动一个 Web 服务

6. 访问 noVNC

打开浏览器,访问:

复制代码
http://localhost:6080/vnc.html

如果一切正常,你将看到 noVNC 的界面,并可以连接到 VNC 服务器。


7. 可选:配置 SSL/TLS

如果需要通过 HTTPS 访问,可以配置 SSL 证书。例如,使用自签名证书:

bash 复制代码
openssl req -x509 -nodes -newkey rsa:4096 -keyout novnc.pem -out novnc.pem -days 365
./utils/launch.sh --vnc localhost:5901 --cert novnc.pem

然后通过 https://localhost:6080/vnc.html 访问。


8. 可选:设置为系统服务

如果需要 noVNC 在后台运行,可以创建一个 systemd 服务:

创建服务文件:

bash 复制代码
sudo nano /etc/systemd/system/novnc.service

添加以下内容(请根据实际路径修改 /path/to/noVNC):

ini 复制代码
[Unit]
Description=noVNC Service
After=network.target

[Service]
ExecStart=/usr/local/bin/websockify --web /path/to/noVNC 6080 localhost:5901
User=nobody
Group=nogroup
Restart=always

[Install]
WantedBy=multi-user.target

启用并启动服务:

bash 复制代码
sudo systemctl enable novnc
sudo systemctl start novnc

9. 常见问题

问题 解决方案
VNC 服务器未运行 确保 VNC 服务器(如 TigerVNC 或 x11vnc)已在 localhost:5901 上正常运行
端口冲突 如果 6080 端口被占用,可以修改 launch.sh 或 systemd 服务中的端口
权限问题 如果使用 systemd 服务,确保指定正确的用户和组权限
连接拒绝 检查防火墙设置,确保 6080(或自定义端口)已开放

验证服务状态:

bash 复制代码
# 查看服务状态
sudo systemctl status novnc

# 检查端口监听
netstat -tuln | grep 6080

# 查看日志
journalctl -u novnc -f

通过以上步骤,你应该可以在 Ubuntu 上成功安装并运行 noVNC。

相关推荐
rest102416 分钟前
使用内存探测bpf
linux
重生之我来学Python1 小时前
Docker套装的简介、安装、超级详细教程
linux·docker·容器·eureka·github
和裕1 小时前
光伏储能定制加强型瓦楞纸箱:降低组件运输隐裂率与售后损耗的核心价值
大数据·运维·网络·人工智能·算法
智购科技无人售货机工厂店1 小时前
2026自动售货机大屏交互设计原则:从信息层级到视觉动线的工程实践~YH
运维·python·单片机·嵌入式硬件·自动化·交互
Ruiery1 小时前
Linux 6.6内核 PCIe 深度解析(十):PCIe Port Driver(portdrv)— 一个物理 Port,拆出五个逻辑服务
linux·运维·服务器
运维行者_2 小时前
ISP 企业级带宽计费怎么做?网络流量计费的 6 大核心能力
运维·服务器·网络·数据库·支持向量机·接口隔离原则
数安旭说2 小时前
企业终端行为审计建设:本地审计 + 网络审计构建完整溯源取证体系
运维·数据安全·软件需求·溯源·审计·网络审计
码农小韩3 小时前
Linux应用开发(二)——Linux的文件IO
linux·嵌入式软件·嵌入式操作系统·linux应用
Elastic 中国社区官方博客3 小时前
在 Elasticsearch 中回填时间序列数据:通过批量 API 加载数月的历史指标数据
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
Horn Still Sounds3 小时前
Linux网络并发服务器模型与SQLite数据库学习笔记
linux·服务器·数据库