Skip to main content

vnc教程

VNC(Virtual Network Computing)是一种远程桌面协议和工具,允许用户通过网络连接到远程计算机的桌面并进行交互。

一、tigervnc

1. 项目链接

GitHub官网

tigervnc官网

稳定版本下载

实验版本下载

2. 简介

tigervnc是一个跨平台的vnc工具,支持Linux、Windows和macOS。

tigervnc支持物理显示器和虚拟显示器连接,经测试,无硬件加速的情况下,虚拟显示器效果更好。

分为服务端和客户端:

服务端:提供vnc服务

客户端:进行vnc连接

3. 测试环境

vnc server:Debian12 xfce

vnc client :win10

novnc:Debian 12

web: chrome edge测试novnc

4. 使用(虚拟显示器)

4.1Debian12 安装tigervnc

apt install tigervnc-standalone-server

4.2 配置vnc密码

debian@lgb:~$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n

4.3 启动vnc服务

# 注意,因为系统安装的是xfce4桌面,所以用了 /usr/bin/xfce4-session 
tigervncserver -xstartup /usr/bin/xfce4-session -geometry 1280x800 -localhost no :1

#geometry 指定 VNC 会话的屏幕分辨率
#localhost 控制是否只允许本地连接 no:允许来自远程主机的连接 yes:只允许从本地主机连接
#:1 VNC服务器的显示编号 VNC 服务器会监听在5901端口(因为 5900 + 1 = 5901)

#也可直接启动
tigervncserver -geometry 1920x1080 -localhost no :1

#查看vnc会话
tigervncserver -list

# 关闭服务的命令
tigervncserver -kill :1

4.4 直连vnc

在win10使用任意vnc客户端连接即可

4.5 使用novnc代理

#安装vnc
apt install novnc python3-websockify

#为noVNC服务生成一个私有证书(选做)
openssl req -x509 -nodes -newkey rsa:3072 -keyout novnc.pem -out novnc.pem -days 3650

#启用novnc
websockify -D --web=/usr/share/novnc/ --cert=/root/novnc.pem 41181 localhost:5901

#关闭novnc代理的tcp转发
ps aux | grep websockify

#kill websockify进程的pid
kill -9 pid

4.6 novnc代理访问

浏览器使用https://ip:41181访问

5. 使用(物理显示器)

5.1 Debian12安装tigervnc-scraping-server

这是一个用来抓取屏幕共享的tigervnc组件,这个组件的效果比虚拟机显示器差

apt install tigervnc-scraping-server/stable

5.2 配置vnc密码

debian@lgb:~$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n

5.3 启动vnc服务

#:0使用第一个块屏幕,默认是物理显示器
x0vncserver :0

#查看连接
x0vncserver -list

#关闭服务的命令
x0vncserver -kill :0

5.4 直连vnc

使用win10的vnc客户端直连失败,不知道原因

5.5 使用novnc代理

#安装vnc
apt install novnc python3-websockify

#为noVNC服务生成一个私有证书(选做)
openssl req -x509 -nodes -newkey rsa:3072 -keyout novnc.pem -out novnc.pem -days 3650

#启用novnc
websockify -D --web=/usr/share/novnc/ --cert=/root/novnc.pem 41181 localhost:5900

#关闭novnc代理的tcp转发
ps aux | grep websockify

#kill websockify进程的pid
kill -9 pid

5.6 novnc代理访问

浏览器使用https://ip:41181访问

二、novnc

1. 项目官网

GitHub官网

官网

2. 简介

noVNC 是一个基于 HTML5 的 VNC(Virtual Network Computing)客户端,它允许用户通过浏览器访问远程计算机的桌面。

三、KasmVNC

1. 项目官网

GitHub官网

官网

官网文档

安装包下载

参考教程

2. 简介

KasmVNC 提供对桌面或应用程序的基于 Web 的远程访问。

虽然名称中包含 VNC,但 KasmVNC 不同于 TigerVNC、RealVNC 和 TurboVNC 等其他 VNC 变体。

KasmVNC 打破了定义 VNC 的 RFB 规范,以支持现代技术并提高安全性。

KasmVNC 可由用户从任何现代浏览器访问,并且不支持传统的 VNC 查看器应用程序。

3. 测试环境

vnc server:Debian12 xfce

vnc client :win10

4. 使用(虚拟机显示器)

4.1Debian12安装kasmvnc

apt install ./kasmvncserver_bookworm_1.3.3_amd64.deb

4.2 配置vnc密码

vncpasswd -u root -w -r

4.3 启动vnc服务

root@debian:~# vncserver
Creating default config /root/.vnc/kasmvnc.yaml
Please choose Desktop Environment to run:
[1] XFCE
[2] Manually edit xstartup
1

New 'debian:1 (root)' desktop is debian:1

Users configured:
root (can use keyboard and mouse)

Log file is /root/.vnc/debian:1.log

Starting applications specified in /root/.vnc/xstartup

Paste this url in your browser:
https://127.0.1.1:8444

#查看会话
vncserver -list

#结束会话
vncserver -list :1

4.5 访问

浏览器直接访问:https://127.0.1.1:8444

5.使用(物理显示器)

5.1 启动服务

创建空白监视器

vncserver -noxstartup :1

将diskplay:0转发给vncserver:1

kasmxproxy -a :0 -v :1 &

5.2 访问

浏览器直接访问:https://127.0.1.1:8444