博客¶
虚拟游戏房
打算弄多个 windows 虚拟机,分享给 guest。
好处
- pcie 4.0 的固态作系统 (6000MB 的读写)
- Ryzen 5800x + 16GB 内存
- 共享高性能显卡(目前为 1060 3G)
具体
- 所有 windows 虚拟机的 C 盘共用一个基本镜像
- 虚拟机的修改关机后不保存
- 所有 windows 虚拟机共享 2TB 的游戏盘
- 普通用户关机后,数据不保存
- 管理员虚拟机对其修改可以保存
- 一个存储盘,50GB。数据私有并进行保存
实现
- 通过 COW 文件系统的 overlay 技术,在 base 镜像上创建一个 overlay 镜像。之后删除 overlay 即可回退到基础状态。
VLAN 实现单网口软路由
起因是发现在原本的两个路由器间架设 wireguard 隧道,其中一个路由器 (小米 4A 千兆版) 遇到了 CPU 瓶颈,导致带宽只能达到 100-200 左右。后面研究了市面上的各种路由器的 CPU 型号,包括矿渣路由器。购买了一个 100 元的可以刷 openwrt 的竞斗云 2.0,带宽可以达到 200-300M,但仍远低于理想的千兆。目前即便是 500 元以上的高端路由器,其配置仍然只有 4 核 Cortex A53@2.0GHz 的水平。
偶然看到用旧笔记本做软路由的视频,遂萌生了折腾软路由的想法。仔细研究其方案后发现为 pppoe 拨号上网的方式,不适用于 dhcp 上网的情况。后偶然发现所购买路由器支持 vlan 功能(其实后面发现所有 openwrt 路由器都支持),于是自己独立构思了后面的架构图。并尝试成功 (11/5),最终在红米 AX6S+ 软路由的情况下,达到了 500M 的带宽,此时 AX6S 的双核 Cortex A53@1.2GHz CPU 占用率也达到了 100%。
之后再接再励,将 AX6S 也配置了 vlan,并在旧笔记本实现软路由。最终带宽达到了 880Mbps,scp 文件达到 98MB/s 的速率。并且之后还成功配置了 Guest WIFI,将其和主网络隔离开来,更加保证了安全性。
通过本次项目,学会了:
- linux 下,ip, netplan 创建 bridge 和 vlan
- lxc 容器的使用
- openwrt DSA 架构配置 vlan
LXC 使用
1 说明
lxc vs docker
LXC 是一种轻量虚拟机,复用 host 内核。与 docker 尽可能每个容器只跑一个应用不同,lxc 的思路更接近虚拟机。
The key networking difference between Docker and LXC is that with LXC one can attach a container to any bridge on the Host. This includes a bridge on the outside interface. Via transparent bridging the container can have unfettered access to the existing IPv6 subnet, including picking up Global Unique Addresses (GUAs) without the host having to do router-like functions, such as adding routes, auto propagation of prefixes (with DHCPv6-PD), redistribution of routes, etc. Again, things which Docker doesn't support.
lxc vs lxd
LXD is actually two parts, the lxd
daemon, and the lxc
CLI client which makes calls to the lxd
daemon
尝试非官方 openwrt
说明
我的红米 ac2100 不知道怎么回事,使用自己编译的固件,无法开启 5G 无线。radio1 显示 not active,并且为 802.11n 协议。先后尝试编译 22.03-rc6, 21.02 稳定版都是如此。(官方稳定版是有的)(想到一些第三方的 openwrt 说针对国内进行了优化,因此想尝试下第三方的 openwrt
retroarch 配置
RetroArch Starter Guide – Retro Game Corps
retroarch 是一个模拟器前端,不同的模拟器以 core 的形式嵌入 retro。retroarch 相对于单独的模拟器来说好处如下
- 跨平台。retroarch 支持非常多的平台。由于 core 是动态链接库的形式嵌入 retroarch 的,相当于解决了不同 core 的跨平台问题。
- 支持全局的按键映射。不用为每个模拟器设置手柄,快捷键等等配置。
- shader and filters。可以实现一些特别的视觉效果,比如
Openwrt Mesh 和快速漫游配置
背景
家里原本有两个路由器,一个负责楼上,一个负责楼下。但是仍然有许多覆盖不到的地方,比如厨房。并且更影响体验的是楼上楼下的 WIFI 使用不同的 SSID,手机无法很好地自动切换。经常是楼上连接到楼下的网络导致信号很差。因此决定对家里的网络改造一番。
以前听过 mesh 这个技术,可以将很多台路由器通过无线连接起来,共同提供一个网络。于是去搜索了 openwrt 是否支持 mesh,发现是可以的。并且经过进一步的了解,纠正了自己之前对无线网络的一些错误认知。
- 首先,mesh 解决的并不是如何让设备自动切换网络,而是如何进行无线组网,可以避免布线的困难。mesh 节点通过同一个信道的的无线相互连接,而通过另一个无线提供 WIFI。
- 快速漫游(fast roaming) 协议,准确来说叫做 802.11r 协议,可以减少设备切换无线网络的耗时。
硬件设备上,我选择使用小米路由 3G 来搭建,主要是因为硬件配置上在 wifi5 的路由器中算是很不错的了,且某鱼上一个只需要 50 元。于是又买了两个,加上原本的,现在有 4 台 openwrt 路由器,一个红米 AC2100 作为主路由,3 个 R3G 作为 AP 节点。
为了方便配置还实现了一个自动配置脚本放在 github:TheRainstorm/my-openwrt-config (github.com)
使用 openwrt 路由器和 usb 摄像头进行延时摄影
作用
放在楼顶,拍摄一天 24h 的户外录像、延时摄影。像超级小桀每天的直播录屏 p1 那样。
- 可以远程通过网页实时查看摄像头直播画面
openwrt DNS 详解
openwrt DNS 说明
参考:
- openwrt DNS 和 DHCP 配置均位于/etc/config/dhcp
-
openwrt 使用 dnsmasq 和 odhcpd。它们功能如下:
- 总结来说:
- dnsmasq 将自己设置为 DHCP 客户端的 DNS
- dnsmasq 使用缓存来提升性能。到达的 dns 请求如果没有命中则转发给上游 DNS
Dnsmasq serves as a downstream caching DNS server advertising itself to DHCP clients. This allows better performance and management of DNS functionality on your local network. Every received DNS query not currently in cache is forwarded to the upstream DNS servers.
linux 系统迁移
linux 系统迁移
买了一条三星的 PM9A1 SSD,想要把原本的 linux 迁移到新的固态上。
系统信息
- 原本的系统(windows 和 ubuntu 双系统)安装在固态上,包含 EFI 分区。
- 系统引导方式:EFI/GPT(其它方式有 BIOS/MBR, BIOS/GPT)
BIOS system
On a BIOS/GPT system there is no MBR and therefore no place to store the loader. The GPT partition specification allows for an unformatted partition of the BIOS boot partition type (0xEF02). The size of this partition can be as small as 1 mebibyte. The Calamares installer uses a fixed size of 32 mebibyte. On a BIOS/MBR system a part of the bootloader is written to the Master Boot Record for the primary disk.
vnc 和 rdp 远程
说明
写这个的原因是,网络上的教程真的太烂了。比如:
- 没有说明就默认用 centos
- 默认是服务器版本的 Linux 发行版,没有桌面环境
- 桌面环境默认用 xfce,而很少有 gnome 的
- vnc 各种版本,默认只说明其中一种
- xstartup 没有任何说明,如何配置
各种 remote desktop 软件,可以看到最近更新时间
Linux 安装 windows 虚拟机并显卡直通
说明
在 linux 上使用 KVM 安装 windows 虚拟机。然后将显卡直通 (pci passthrough) 进虚拟机,从而可以在 Windows 虚拟机上打游戏。
达到一台机器同时运行两个系统,充分利用硬件。