在 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。

相关推荐
猫猫的小茶馆9 小时前
【Python】函数与模块化编程
linux·开发语言·arm开发·驱动开发·python·stm32
神奇椰子10 小时前
[特殊字符] 服务器搭建网站完整教程
运维·服务器
慧都小妮子11 小时前
告别看图抓数据:DeviceXPlorer OPC Server 助力数据自动化管理
运维·物联网·自动化·takebishi·dxpserver·opc server
Wpa.wk11 小时前
APP自动化-Appium环境安装
运维·appium·自动化
快乐的哈士奇11 小时前
LangFuse 自托管实战:选型理由、Docker 部署与常用配置全解析
运维·人工智能·docker·容器
数智化管理手记11 小时前
精益生产3步实操,让现场从混乱变标杆
大数据·运维·网络·人工智能·精益工程
代码AC不AC11 小时前
【Linux】线程概念
linux·线程
志栋智能11 小时前
超自动化巡检:为智能运维(AIOps)铺平道路
运维·安全·自动化
武汉知识图谱科技11 小时前
智慧电厂AI中台:从燃料价值链到设备知识图谱的一体化智能运维
运维·人工智能·知识图谱
神奇小梵11 小时前
关于finalshell的使用
linux·服务器·网络