Skip to main content

树莓派5安装realvnc远程连接服务

树莓派5安装realvnc远程连接服务

#raspberrypi5,#kali,#realvnc,#vnc,#xfce4,#linux,#xvbf,#deb,

需求,在没外接屏幕连接输出的情况下使用 realvnc 客户端连接显示 kali realvnc 服务端远程桌面

raspberrypi5 kali os 配置,kali 默认桌面环境是 xfce4

kali@kali-raspberry-pi5
-----------------------
OS: Kali GNU/Linux Rolling aarch64
Host: Raspberry Pi 5 Model B Rev 1.0
Kernel: 6.6.45-v8+
Uptime: 9 hours, 22 mins
Packages: 2750 (dpkg)
Shell: zsh 5.9
Theme: Kali-Dark [GTK2], adw-gtk3-dark [GTK3]
Icons: Flat-Remix-Blue-Dark [GTK2/3]
Terminal: /dev/pts/2
CPU: (4) @ 2.400GHz
Memory: 211MiB / 7945MiB

ssh 连接树莓派5 kali os

# 连接命令 ssh '[kali os 用户名]@[ssh域名或ip地址]' -o ServerAliveInterval=60 -p '[ssh端口]'
# 比如
ssh 'kali@127.0.0.1' -o ServerAliveInterval=60 -p '22'

下载 realvnc server 和 viewer 安装包

wget -t 3 -T 10 --verbose --show-progress=on --progress=bar --no-check-certificate --hsts-file=/tmp/wget-hsts -c 'https://downloads.realvnc.com/download/file/vnc.files/VNC-Server-7.12.1-Linux-ARM64.deb' -O"VNC-Server-7.12.1-Linux-ARM64.deb"  
wget -t 3 -T 10 --verbose --show-progress=on --progress=bar --no-check-certificate --hsts-file=/tmp/wget-hsts -c 'https://downloads.realvnc.com/download/file/viewer.files/VNC-Viewer-7.12.1-Linux-ARM64.deb' -O"VNC-Viewer-7.12.1-Linux-ARM64.deb"

安装 realvnc server viewer 安装包 和 xvfb 虚拟监视器

sudo apt update
sudo apt -fy install xvfb ./VNC-Server-7.12.1-Linux-ARM64.deb ./VNC-Viewer-7.12.1-Linux-ARM64.deb 

终止远程服务和虚拟监视器命令

vncserver-x11 -stop
vncserver-x11-core -stop
pkill -u ${USER} -f 'Xvfb'

配置监视器窗口号,比如 :0

export DISPLAY=:0
export DISPLAYNUM=$(echo ${DISPLAY} | tr -d ':')

删除远程服务根据窗口号产生的文件

rm -fv /tmp/.X${DISPLAYNUM}-lock
rm -fv /tmp/.X11-unix/X${DISPLAYNUM}

后台启用虚拟监视器分辨率 1920x1080 16色彩方案

Xvfb ${DISPLAY} -screen 0 1920x1080x16 & disown

启动桌面环境 xfce4 日志存放到 /tmp/startxfce4.log

startxfce4 -- ${DISPLAY}  &> /tmp/startxfce4.log & disown

启用远程桌面 日志存放到 /tmp/vncserver-x11.log

# 至于为什么没用 sudo setvice vncserver-x11-serviced start 
# 是因为我发现官方的方法总是失败,连接不到 X 服务,所以就直接使用 vncserver-x11 启动服务
vncserver-x11 -RfbPort $((5900+${DISPLAYNUM})) &> /tmp/vncserver-x11.log & disown

最后使用 realvnc 客户端连接显示远程桌面

# 打开客户端,输入树莓派5域名或IP:远程桌面窗口号,[域名或IP]:[DISPLAY]
# 比如,127.0.0.1:0
# 输入kali os 用户名密码认证就可以食用了

参考

官方realvnc安装包来源
官方realvnc服务和客户端部署脚本参考
xvfb虚拟监视器应用技巧?
如何在ubuntu上安装配置vnc?
树莓派上realvnc服务无法连接X服务?
apt安装deb包pkgAcquire::Run (13: Permission denied)报错?

Comments

Popular posts from this blog

python学习之路☞9.Comment, Primitive Data Types and Branch Conditional Structure if ... else ...

python学习之路☞9.Comment, Primitive Data Types and Branch / Conditional Structure if … else … #python,#Comment,#data type,#branch/conditional structure,#input(),#int,#float,#complex,#boolean,#if … else …, 注释(Comment) 内置函数input()(input() Function) 基本数据类型整数(Primitive Data Types int) 基本数据类型小数(Primitive Data Types float) 基本数据类型复数(Primitive Data Types complex) 基本数据类型布尔(Primitive Data Types boolean) 分支结构if … else …(Branch / Conditional Structure if … else …) 参考 Comment ''' 注释: 给人看的说明文字,Python 解释器完全忽略 要点 # 让该行 # 之后的内容全部失效,解释器跳过。 行尾注释与代码在同一行,通常用于简短说明。 docstring(三引号字符串)放在函数/类/模块第一行时,可被 help() 和文档工具读取,有特殊意义。 好的注释解释"为什么",而不是"做了什么"(代码本身已经说明了做了什么): # ✗ i = i + 1 # i 加 1 # ✓ i += 1 # 跳过表头行 ''' # 这是单行注释,# 号后面全部忽略 x = 10 # 行尾注释,代码照常执行 # 多行注释:每行都加 # # 第一行说明 # 第二行说明 # 第三行说明 """ 这是多行字符串(docstring) 虽然常被当注释用, 但本质是字符串字面量,不是注释。 通常用于函数/类的文档说明。 """ def add ( a , b ) : """返回 a 与 b 的和。"...

OnePlus 7 Pro LineageOS 23.2 Android 16 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南

OnePlus 7 Pro LineageOS 23.2 Android 16 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南 OnePlus 7 Pro LineageOS 23.2 Android 16 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南 #docker,#linux,#termux,#android,#kernel,#lineageos,#oneplus,#git,#android16, gmkm6 x86_64 主机配置环境 安装配置 docker 防止污染环境 更新 docker 插件 compose 更新 docker 插件 buildx 创建编译容器 容器内编译镜像刷机 安装magisk,termux获取root termux检测内核docker缺失功能 根据内核docker缺失功能编译boot.img并获取root 开启全部必要扩展功能 下面的步骤是开启大部分非必要扩展功能 修补内核代码方案 下面的步骤是开启剩余部分非必要扩展功能 修补内核 安装测试运行 termux docker 其它关于termux的docker-compose和docker-buildx更新 安装用于校验的工具 开机自启动和容器化部署使用例子 Android16尝试开启KVM失败的例子(不用试了,唉) 内核修补 参考&感谢 gmkm6 x86_64 主机配置环境 注意,获取自己的手机型号代号,这一点很重要在后续的命令中都要用到 比如我的手机 oneplus7pro 是 guacamole 也可以尝试通过命令获取获取,但是我不知道是不是所有设备都是这样获取的 adb shell getprop ro.boot.project_codename 最重要的是,一定要找好固件包,免得变成砖头,有线刷包就可以怎么折腾都不怕 听我说,编译内核是一件很枯燥的核对过程,这个过程需要考虑到各项之间的互相依赖和冲突并以此作出取舍 这不是个简单的过程,这里只展示具有逻辑的依赖项,需要耐心和不断的试错总结 不得不说设计的内核是一件件精美的艺术品,从某种意义上来讲,万事万物皆为艺术,而探索艺术本身是...

OnePlus 7 Pro LineageOS 19.1 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南

OnePlus 7 Pro LineageOS 19.1 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南 OnePlus 7 Pro LineageOS 19.1 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南 #docker,#linux,#termux,#android,#kernel,#lineageos,#oneplus,#git, gmkm6 x86_64 主机配置环境 安装配置 docker 防止污染环境 更新 docker 插件 compose 更新 docker 插件 buildx 创建编译容器 容器内编译镜像刷机 安装magisk,termux获取root termux检测内核docker缺失功能 根据内核docker缺失功能编译boot.img并获取root 安装测试运行 termux docker 其它关于termux的docker-compose和docker-buildx更新 参考&感谢 注意,获取自己的手机型号代号,这一点很重要在后续的命令中都要用到 比如我的手机 oneplus7pro 是 guacamole 也可以尝试通过命令获取获取,但是我不知道是不是所有设备都是这样获取的 adb shell getprop ro.boot.project_codename 最重要的是,一定要找好固件包,免得变成砖头,有线刷包就可以怎么折腾都不怕 最近 OP7P 设备型号是 guacamole 手机刷了 GM1910_11_H.40 即 android 12 https://gauss-componentotacostmanual-sg.allawnofs.com/remove-d74c973c240292cb011317bb07f424a2/component-ota/23/03/28/6d4604798d27450e8de05671d5effbae.zip 内核版本 4.14.180-perf+ 发现 github.com/OnePlusOSS 官方有相关的开放残缺的内核源码,但缺失了很多代码配置 https://github.com/OnePlusOSS/android_kernel_o...