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

相关推荐
笑锝没心没肺23 分钟前
fail2ban工具安装配置及使用
linux·运维·服务器
zt1985q2 小时前
本地部署开源智能家居集成平台 ioBroker 并实现外部访问( Windows 版本)
运维·服务器·智能家居
大卡片2 小时前
linux内核驱动开发
linux·运维·驱动开发
心心喵3 小时前
[linux] nohup和pm2的区别 进程保活
linux·运维·服务器
NGINX开源社区4 小时前
F5 NGINX Ingress Controller 5.3.0 新增功能
运维
醉熏的石头4 小时前
Ubuntu 中的编程语言(中)
linux·ubuntu·scala
SelectDB6 小时前
Apache Doris 在 AgentLogsBench 中领先,支撑 Agent 可观测性生产负载
运维·数据库·agent
荣-6 小时前
从两天到十几分钟:一套 YT Crash 自动化分析工具完整工程复盘
大数据·运维·自动化
酷炫的水壶7 小时前
使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制
运维·nginx·缓存
dddwjzx8 小时前
嵌入式Linux C应用编程入门——信号
linux·嵌入式