AIO 02 配置openWrt(网络)和UPS

废话

书接上回,我们已经可以访问PVE了,接下来需要配置一下网络和UPS

openWrt(网络)

image
根据网络方案,我们需要一个软路由,将作为服务器的网关、DNS、NTP等基础服务和防火墙

软路由系统

  • iKuai
    完善的防火墙和流量控制,我了解到的,不支持无线网卡
  • openWrt
    支持无线网卡,防火墙功能弱于iKuai

由于我的设备只有一个网口,连接了笔记本后,服务器独立联网就只能通过无线网卡,所以这里我选择 openWrt 作为主(软)路由

查看网卡

lspci -nn
#~ 找到Network controller, 14c3:7961 为驱动号
02:00.0 Network controller [0280]: MEDIATEK Corp. MT7921 802.11ax PCI Express Wireless Network Adapter [14c3:7961]

openWrt 镜像

感谢 kiddin9 提供的 openWrt 免费编译服务
如果需要也可以自行编译 源码参考

编译 openWrt 镜像

  1. 选择合适的系统架构,一般为 Generic x86/64
  2. 可以自行选择常用软件包,开始建议选择少一些,后期再逐步添加,下面是我添加的

kmod-mt7921e kmod-mt7921-common hostapd wpa-supplicant luci-app-argon-config luci-app-ttyd luci-app-vlmcsd luci-app-dufs luci-app-aria2 luci-app-wrtbwmon luci-app-cloudflared luci-app-nginx-manager

说明

  • kmod-mt7921e kmod-mt7921-common
    无线网卡驱动,你需要选择自己的
  • hostapd wpa-supplicant
    热点和网络桥接
  • luci-app-argon-config
    主题
  • luci-app-ttyd
    网页shell
  • luci-app-vlmcsd
    kms服务
  • luci-app-dufs
    文件共享服务
  • luci-app-aria2
    下载任务管理
  • luci-app-wrtbwmon
    流量监控
  • luci-app-cloudflared
    CF内网穿透,也可以选择其他,但大部分需要公网ip,家宽可能没有公网ip
  • luci-app-nginx-manager
    nginx简易管理器
  1. 互联网:梯子,选择熟悉的
  2. 建议勾选https
  3. 勾选ipv6

其他选项,不想改或者看不懂,默认即可
我的openWrt成品

SSH

SSH连接工具有很多:XShell、FinalShell、MobaXterm等
考虑到之后会同时操作多个VM,这里我选择 MobaXterm,而且其操作模式与XShell相似

pve 卷合并(可选)

image
一般local卷放镜像,lvm卷放vm磁盘
如果你想合并可以按照以下步骤
1.进入pve shell

lvremove pve/data
lvextend -l +100%FREE -r pve/root
reboot

2.local卷添加存储类型,全选即可

创建 VM:opwrt

上传镜像

创建vm

  1. 输入名称
  2. 选择不适用任何介质
  3. 显卡:默认
  4. 删除磁盘
  5. 分配2核心,类别选择kvm64
  6. 分配2G内存(根据自己的情况,最小建议2G)
  7. 关闭防火墙
  8. 完成,创建虚拟机





    image

复制镜像到vm

进入pve shell

qm importdisk 100 /var/lib/vz/template/iso/kwrt-11.11.2024-x86-64-generic-squashfs-combined-efi.img local-lvm 
  • 100 为vm id
  • xx.img 为镜像的名称
  • local-lvm 为vm 磁盘所在卷
    image

配置vm

  1. 直通网卡:添加pci设备,选择无线网卡
  2. 添加vm 磁盘
  3. 设置启动为磁盘优先,开机自启


接下来,vm开机,访问openWrt后台

https://10.3.3.1

配置openWrt

默认激活无线网卡

# 默认激活radio0===
nano /etc/config/wireless

# radio0 配置下,添加或者修改为 option disabled '0'
config wifi-device 'radio0'
    option disabled '0'

# 延时重启网络===
nano /etc/rc.local

# 在 exit 0 这一行前添加,1 即延时1秒
sleep 1 && /etc/init.d/network restart &

image
image

连接无线网络

输入密钥即可,其他均可默认

配置热点

建议更改国家,可能与各国家5G频段不一致有关


至此,服务器已经可以正常联网了

优化PVE

优化PVE 参考资料
pve_source是老虎大佬开发的pve脚本(首发于X86派论坛),可以更方便的初始化PVE,进入pve shell

wget -q -O /root/pve_source.tar.gz 'https://bbs.x86pi.cn/file/topic/2023-11-28/file/01ac88d7d2b840cb88c15cb5e19d4305b2.gz' && tar zxvf /root/pve_source.tar.gz && /root/./pve_source


建议分步执行23456

更换 Proxmox VE 源

# 更换 Proxmox VE 源
2
# 更换 PVE 软件源 + Debian 源
1
# Proxmox VE 8
2
# 选择软件源镜像站,不清楚的直接都选择清华大学源就行
2

更新软件包和系统

执行 3、4 选项

去除无效订阅源提示

每次在登录pve的时候会弹出企业订阅提示,对于普通用户我们直接去除掉弹窗即可,登录PVE,在Shell窗口中输入./pve_source,进入pve工具箱,输入6,系统会自动执行去除订阅脚本,脚本运行完成后请强制刷新浏览器缓存

修改PVE概要信息

pve默认概要中不会显示cpu温度、硬盘信息等,通过pve工具箱可以修改信息概要页面,使其信息显示更加完善

# 执行7
7
# 推荐方案1:高大全版本
1
# 按下面直接逐个输入
012345678abcro

配置服务器自动开机

BIOS设置来电自动开机

这是最关键的一步,大多数主板支持来电自动开机(Restore on AC Power Loss),具体步骤如下:

  1. 进入BIOS
    • 重启服务器并按下进入BIOS的键(通常是DELF2F10等,具体取决于主板型号)。
  2. 查找电源管理设置
    • 通常位于“Power Management Setup”或类似的菜单下,找到类似于“AC Power Recovery”、“Restore on AC Power Loss”或“After Power Loss”的选项。
  3. 设置为自动开机
    • 将此选项设置为Power OnAlways On,或Last State(在有些系统中,Last State表示在恢复电源时恢复到断电前的状态)。
  4. 保存并退出
    • 保存更改并退出BIOS设置。

配置UPS

pve shell 保存并执行

#!/bin/bash

echo "更新系统"
apt-get update

echo "安装NUT和相关工具"
apt-get install -y nut nut-client

echo "备份现有配置文件"
for file in /etc/nut/ups.conf /etc/nut/upsmon.conf /etc/nut/upsd.users /etc/nut/nut.conf; do
    if [ -f "$file" ]; then
        cp "$file" "$file.bak"
        echo "备份 $file 到 $file.bak"
    fi
done

echo "配置NUT"
cat > /etc/nut/ups.conf <<EOL
[myups]
    driver = usbhid-ups
    port = auto
    desc = "UPS"
EOL

cat > /etc/nut/upsmon.conf <<EOL
MONITOR myups@localhost 1 monuser secret master
SHUTDOWNCMD "/sbin/shutdown -h +0"
NOTIFYCMD /usr/sbin/upssched
NOTIFYFLAG ONLINE SYSLOG+WALL
NOTIFYFLAG ONBATT SYSLOG+WALL
NOTIFYFLAG LOWBATT SYSLOG+WALL
NOTIFYFLAG FSD SYSLOG+WALL
EOL

cat > /etc/nut/upsd.users <<EOL
[monuser]
    password = secret
    upsmon master
EOL

echo "MODE=standalone" > /etc/nut/nut.conf

echo "创建NUT用户"
useradd -M -s /bin/false nut

echo "启动NUT服务"
service nut-server start

echo "配置虚拟机挂起"
cat << EOL >> /etc/pve/datacenter.cfg
shutdown_mode: suspend
EOL
service nut-client start

echo "测试UPS连接"
upsc myups@localhost

echo "NUT配置完成"

device.model ups型号

扩展:
上面脚本设置了挂起,可以编辑/etc/pve/datacenter.cfg文件,设置为PVE虚拟机自动关机
shutdown_mode 的选项:

stop: 这是一个相对安全的选项,会在关机时尝试有序地停止所有虚拟机和容器。相当于正常关闭每个VM的操作系统。

suspend: 这个选项会在关机时挂起所有虚拟机,允许它们在恢复供电后恢复运行状态。

migrate: 如果您的PVE环境是集群配置,并且具备高可用性配置,可以选择这个模式,将虚拟机迁移到其他节点继续运行

12 个赞

感谢大佬教程。