前情提要 之前体验过几次DNS污染被恶心到了(github被指向127.0.0.1),因此我下定决心要解决这个问题。
最开始的时候,是在服务器上部署虚拟机,在虚拟机内使用mosdns来获得相对干净的DNS解析。
但是服务器总是会有关机重启的时候(时不时就忍不住更新一下固件),这种时候自动切换使用默认的运营商DNS,可能还会返回污染的IP。
后来一段时间尝试在一个闲置的路由器上部署,但是感觉虚拟机管理起来更方便,而且路由器如果要跑点”科学“相关的东西,性能就不太够了。
因此我总结了一下:
需要用虚拟化方案部署
不能部署在主服务器上,否则ALL IN BOOM
所以我决定再搞一个服务器,最好能省电、省钱同时性能比路由器高。
硬件选型 要省电,最简单就是选择ARM的板子了,比如树莓派、Rockpi之类的。
但是这种开发板随随便便都要几百块钱了,感觉没必要单纯为了个“科学”和DNS解析花这么多钱。
然后机缘巧合之下,我看到了一个矿渣盒子,型号叫Panther X2,CPU是四核心的RK3566,内存4G,内置32G的EMMC,有千兆网口,USB2.0,同时可以通过sdcard扩展内存。
我看了下RK3566,是4核A55架构,个人觉得性能够用,而且全小核心,虚拟化的时候不用担心CPU的一致性。
于是在淘宝找了一家,花了115购入。
其实这玩意最初可能只要50元左右,后来被人发现利用价值就涨起来了,我综合对比了一下当前能捡的垃圾,觉得目前这个价格还能接受…
开始折腾 首先必须要注意的一点是,这个机器不带HDMI接口,所以如果配置过程中,网络相关配置错了,很可能就导致无法连接到机器,只能重装系统,或者拆机用TTL通讯了。
因此我个人强烈建议:先配置网络功能后,再执行后续操作
当然第一步还是得装系统,从网上来看,似乎只有bookworm版本的armbian可以安装PVE,一定要注意自己下载的版本,固件下载地址
下载好固件之后,就需要将固件刷入系统,我个人不太信任在sdcard上装系统,因为之前玩树莓派的时候,因为意外断电,导致系统起不来。
所以我决定使用内置的emmc装系统。但还是需要注意的是,因为这个机器本来是挖矿用的,可能对机器本身emmc有比较大的消耗,所以这个机器内置的emmc也不一定稳定,只能说需要赌 。
如果要刷emmc的话,还必须准备双头USB TYPE-A的数据线。
刷机教程这里就不写了,可以参考网上的博客,可以参考这两篇Panther X2折腾记录 和PantherX2(黑豹X2)刷机
刷机后连接网线和电源,起来后会自动获取IP地址,应该可以在路由器的IP地址列表里看到新的设备IP,尝试SSH连接上去走完剩余的初始配置步骤。
当安装完成后,将 Armbian 设备接入路由器
,设备开机2分钟
后,到路由器里查看设备名称为 Armbian 的 IP
,使用 SSH
工具连接进行管理设置。默认用户名为 root
,默认密码为 1234
,默认端口为 22
配置网络 如上文所述,如果网络没配置好,可能导致无法连接到机器,所以一定要细心配置好! 配置前可以先安装vim
1 sudo apt-get install vim
然后我们打开编辑这个文件/etc/network/interfaces
,修改成如下内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 source /etc/network/interfaces.d/*auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto vmbr0 iface vmbr0 inet static address 192.168.4.12/24 gateway 192.168.4.1 bridge-ports eth0 bridge-stp off bridge-fd 0
我家局域网网关是192.168.4.1,子网是192.168.4.0/24,我给这个设备分配的地址是192.168.4.12
配置完成后,使用命令重启网络
1 sudo systemctl restart networking
重启的时候可能会断联一小段时间,后续应该能正常ping通。
检查KVM虚拟化支持情况 为了确保系统支持虚拟化,我还是做了一下检查,先安装cpu-checker
1 2 apt install cpu-checker
然后用kvm-ok
命令检查KVM加速是否可用。
1 2 3 root@armbian:~# kvm-ok INFO: /dev/kvm exists KVM acceleration can be used
检查内核配置也确认支持KVM
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 root@armbian:~ CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_IRQFD=y CONFIG_HAVE_KVM_IRQ_ROUTING=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_MMIO=y CONFIG_HAVE_KVM_MSI=y CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y CONFIG_KVM_VFIO=y CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL=y CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y CONFIG_HAVE_KVM_IRQ_BYPASS=y CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y CONFIG_KVM_XFER_TO_GUEST_WORK=y CONFIG_KVM=y
安装PVE 运行armbian-software
命令,自动更新后应该会出现这个界面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 root@armbian:~ [ STEPS ] Start selecting software [ Current system: debian/bookworm ]... ─────────────────────────────────────────────────────────────────── ID NAME STATE MANAGE ─────────────────────────────────────────────────────────────────── 101 Docker not-installed install 102 Portainer not-installed install 103 Yacht not-installed install 104 Transmission not-installed install 105 qBittorrent not-installed install 106 NextCloud not-installed install 107 Jellyfin not-installed install 108 HomeAssistant not-installed install 109 Kodbox not-installed install 110 CouchPotato not-installed install 111 Sonarr not-installed install 112 Radarr not-installed install 113 Syncthing not-installed install 114 FileBrowser not-installed install 115 Heimdall not-installed install 116 Node-RED not-installed install 117 Mosquitto not-installed install 118 OpenWrt not-installed install 119 Netdata not-installed install 120 XunLei not-installed install 121 Docker-Headless not-installed install 122 Navidrome not-installed install 123 Alist not-installed install 124 QingLong not-installed install 125 ChatGPT-Next-Web not-installed install ─────────────────────────────────────────────────────────────────── ID NAME STATE MANAGE ─────────────────────────────────────────────────────────────────── 201 Desktop not-installed install 202 Firefox not-installed install 203 VLC not-installed install 204 MPV not-installed install 205 GIMP not-installed install 206 Krita not-installed install 207 LibreOffice not-installed install 208 Shotcut not-installed install 209 Kdenlive not-installed install 210 Thunderbird not-installed install 211 Evolution not-installed install 212 Gwenview not-installed install 213 Eog not-installed install 214 VisualStudioCode not-installed install 215 Gedit not-installed install 216 Flameshot not-installed install ─────────────────────────────────────────────────────────────────── ID NAME STATE MANAGE ─────────────────────────────────────────────────────────────────── 301 Frps not-installed install 302 Frpc not-installed install 303 NPS not-installed install 304 NPC not-installed install 305 Plex not-installed install 306 Emby-Server not-installed install 307 KVM not-installed install 308 PVE installed update/remove 309 CasaOS not-installed install ─────────────────────────────────────────────────────────────────── [ OPTIONS ] Please Input Software ID:
这里输入308就可以安装PVE了
配置OVMF Proxmox-Port仓库提示Rockchip芯片不支持主线的OVMF,因此我们需要使用特殊的rockchip固件。
如果PVE版本低于8.1,执行这个命令
1 2 apt download pve-edk2-firmware=3.20220526-1 dpkg -i pve-edk2-firmware_3.20220526-1_all.deb
如果版本号大于等于8.1,则执行这个命令
1 2 apt download pve-edk2-firmware-aarch64=3.20220526-rockchip dpkg -i pve-edk2-firmware-aarch64_3.20220526-rockchip_all.deb
解决可能出现的小问题 如果访问PVE页面死活打不开,然后systemctl检查pveproxy一直退出的话,可能是因为证书有问题所以无法正常启动,可以用下面的命令重新生成证书
先删掉原先的
1 rm -f /etc/pve/pve-root-ca.pem /etc/pve/priv/pve-root-ca.* /etc/pve/local/pve-ssl.*;
重新生成
后记 经过上面的步骤之后,应该就可以访问PVE的管理页面了(https://IP地址:8006 )
目前我在这个PVE服务器上跑了两个虚拟机,一个debian系统用于“科学”,一个OpenWrt系统用来跑mosdns。
即便跑了两个系统,“科学”的性能也比以前用的MTK7981B芯片的路由器更强。