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

相关推荐
日取其半万世不竭7 小时前
用 Portainer 可视化管理 Docker:容器再多也不用背命令了
运维·docker·容器
2023自学中7 小时前
Linux 图形系统
linux
mounter62510 小时前
高性能网络技术演进与创新探索:RDMA、eBPF/XDP 深度解析及 LSF/MM/BPF 2023 专题演讲
linux·ebpf·linux kernel·kernel·rdma·xdp
动恰客流统计10 小时前
ReID边缘计算视觉统计:餐饮店客流增长的数字化破局路径
java·大数据·运维·人工智能
名字还没想好☜10 小时前
Python itertools 实战:用 groupby、chain、islice 优雅处理大数据流
linux·windows·python·迭代器·itertools
啊啊啊迈 旋棍12 小时前
【译】TypeScript 7 测试版已在 Visual Studio 2026 18.6 Insiders 3 中默认启用
ubuntu·typescript·visual studio
ziguo112213 小时前
深入浅出 C/C++ 数据类型:从入门到踩坑
linux·c语言·c++·windows·visual studio
无垠的广袤13 小时前
【工业树莓派 CM0 Dev Board】扩展板设计
linux·python·嵌入式硬件·pcb设计·模块化·传感器
会编程的土豆13 小时前
MySQL 入门:库、表、行、主键是什么
linux·数据库·网络协议·http
砍材农夫14 小时前
运维|devops|jenkins构建应用发布
运维·jenkins·devops