废话
书接上回,我们已经初步配置了openWrt,但仍然不完善,接下来,则是主要配置openWrt的应用,以达到好用的程度。
备份
建议在进行重大更改前进行快照备份
拍摄快照时,内存可以不保存
即使你保存了内存,重启至快照时会出现时钟不同步问题,仍需重新启动
定时备份
你可以选择合适的备份位置,这里我选择外部磁盘作为备份存储
挂载磁盘
# 查看磁盘
lsblk
# 分区磁盘(如果磁盘未分区)
# 按 n 创建一个新分区,然后按照提示完成分区设置
# 使用 w 保存并退出
fdisk /dev/sda
# 格式化磁盘(假设分区为/dev/sda)
# ext4 是一个常用的Linux文件系统类型
mkfs.ext4 /dev/sda
# 创建一个挂载点目录
mkdir /mnt/backup
# 挂载外部磁盘到该目录
mount /dev/sda /mnt/backup
# 确保自动挂载
# 编辑/etc/fstab文件以添加一行,确保系统重启后自动挂载
nano /etc/fstab
/dev/sda /mnt/backup ext4 defaults 0 2
将外部磁盘添加到Proxmox VE作为存储
- 在Proxmox VE Web界面中,导航到Datacenter。
- 点击Storage选项卡并选择Add → Directory。
- 配置存储设置:
- ID: 给你的存储一个标识名称(例如
backup-disk
)。 - Directory: 输入你刚才创建的挂载点路径(如
/mnt/backup
)。 - Content: 选择
VZDump backup file
(表示将用于备份)。 - Max Backups: 设置要保留的备份数量。
- 点击Add以保存存储配置
创建备份计划
- 导航到Datacenter:
- 在Proxmox VE Web界面左侧选择Datacenter。
- 选择Backup选项:
- 点击上方的Backup选项卡。
- 添加新的备份任务:
- 点击Add按钮,打开备份任务配置窗口。
- 配置备份任务:
- Storage: 选择要将备份保存到的存储设备。
- Schedule: 设置备份的计划(选择时间和频率)。
- Selection Mode: 选择备份的范围(如所有VM/CT或指定的ID)。
- Compression: 选择压缩方式(如ZSTD、GZIP等)。
- Mode: 选择备份模式(如Snapshot、Stop或Suspend)。
- Snapshot: 在虚拟机运行时备份(推荐使用ZFS或LVM存储时)。
- Stop: 停止虚拟机后进行备份,然后重启虚拟机。
- Suspend: 暂停虚拟机后备份,然后恢复运行。
- Email Notification: 可选择在备份完成后发送邮件通知。
- 保存任务:
- 完成配置后,点击Create保存备份任务
这里我设置保留最近7天
PassWall
这是梯子,配置梯子可以让服务器内部进行无障碍联网
1.添加订阅,拉取订阅节点
2.配置Socks,进行节点异常切换
3.启动梯子和Soclks,检查是否正常运行
4.配置直连,添加需要直连的域名
KMS
kms 参考资料
常用密钥一览
Operating system edition | KMS Client Product Key |
---|---|
Windows 11 Pro | |
Windows 10 Pro | W269N-WFGWX-YVC9B-4J6C9-T83GX |
Windows 11 Pro N | |
Windows 10 Pro N | MH37W-N47XK-V7XM9-C7227-GCQG9 |
Windows 11 Pro for Workstations | |
Windows 10 Pro for Workstations | NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J |
Windows 11 Pro for Workstations N | |
Windows 10 Pro for Workstations N | 9FNHH-K3HBT-3W4TD-6383H-6XYWF |
Windows 11 Pro Education | |
Windows 10 Pro Education | 6TP4R-GNPTD-KYYHQ-7B7DP-J447Y |
Windows 11 Pro Education N | |
Windows 10 Pro Education N | YVWGF-BXNMC-HTQYQ-CPQ99-66QFC |
Windows 11 Education | |
Windows 10 Education | NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 |
Windows 11 Education N | |
Windows 10 Education N | 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ |
Windows 11 Enterprise | |
Windows 10 Enterprise | NPPR9-FWDCX-D2C8J-H872K-2YT43 |
Windows 11 Enterprise N | |
Windows 10 Enterprise N | DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4 |
Windows 11 Enterprise G | |
Windows 10 Enterprise G | YYVX9-NTFWV-6MDM3-9PT4T-4M68B |
Windows 11 Enterprise G N | |
Windows 10 Enterprise G N | 44RPN-FTY23-9VTTB-MP9BX-T84FV |
添加密钥到KMS,kms服务默认端口为1688,可以使用 tcping 检查是否正常运行
使用KMS激活,Windows 以管理员启动 PowerShell
slmgr.vbs -upk
#注意!!不同系统版本这里的激活码不一样,请寻找表格!
slmgr.vbs -ipk W269N-WFGWX-YVC9B-4J6C9-T83GX
#这是我的kms域名,如果你自己的已搭建好,可以输入你的域名或者ip)
slmgr.vbs -skms kms.ialdagorth.com
slmgr.vbs -ato
slmgr.vbs -dlv
Dufs
这是一个微型文件共享服务
根据自己的需求进行配置,主要需要配置存储位置
如果遇到应用一直未运行,检查应用是否需要更新,以及查看日志查找原因
# 检查日志
logread | grep dufs
# 查看全部端口和服务
netstat -tulnp
NTP
NTP即时间同步服务,主要作为vm的本地授时,保存并执行下面脚本
#!/bin/sh
echo "===== OpenWrt NTP服务器一键配置开始 ====="
# 1. 更新软件包列表并安装 ntpd
echo "更新软件包列表..."
opkg update
echo "安装 ntpd 服务..."
opkg install ntpd
# 2. 配置 NTP 服务器,包含 NTP.org、Google、Cloudflare 和国家授时中心 NTP 服务器
echo "配置 NTP 服务器..."
uci set system.ntp.server="0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org time.google.com time.cloudflare.com ntp.ntsc.ac.cn"
uci set system.ntp.enabled='1'
uci set system.ntp.enable_server='1'
uci commit system
# 3. 停止并禁用 sysntpd 服务(如果存在)
echo "停止并禁用 sysntpd 服务..."
/etc/init.d/sysntpd stop
/etc/init.d/sysntpd disable
echo "NTP 服务器配置完成..."
# 4. 配置防火墙规则以允许 NTP 流量
echo "配置防火墙规则允许 UDP 123端口..."
# 删除现有的 NTP 规则(如果有)
uci delete firewall.@rule[-1]
# 添加新的 NTP 规则
uci add firewall rule
uci set firewall.@rule[-1].name='Allow-NTP'
uci set firewall.@rule[-1].src='lan'
uci set firewall.@rule[-1].dest='wan'
uci set firewall.@rule[-1].dest_port='123'
uci set firewall.@rule[-1].proto='udp'
uci set firewall.@rule[-1].target='ACCEPT'
uci commit firewall
# 重新启动防火墙服务
/etc/init.d/firewall restart
# 5. 修改 /etc/ntp.conf 文件,确保 NTP 配置正确
echo "生成 /etc/ntp.conf 配置文件..."
cat <<EOL > /etc/ntp.conf
restrict default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
EOL
# 6. 启动 ntpd 服务
echo "启动 ntpd 服务..."
/etc/init.d/ntpd start
# 7. 检查 NTP 服务状态
/etc/init.d/ntpd status
echo "===== NTP 服务器配置完成,防火墙规则已启用 ====="
echo "添加ntp域名解析到hosts文件"
DHCP
作为vm的动态ip分配服务
nginx
如果发现openwrt后台无法访问,
或者反向代理不生效,即本该代理的端口总是指向openwrt后台
赶紧检查 80、443 端口是不是nginx应用
# 检查端口占用
netstat -tulnp
uhttpd会占用80,443,与nginx冲突
本地DNS
如果没有则需要自行安装 luci-app-nginx-manager
1.添加额外的hosts文件,方便管理
2.额外的hosts文件添加hosts解析
3.nginx添加一个新的配置文件,然后添加反向代理
每次添加hosts记录和反向代理建议重启应用
# 重启dnsmasq
/etc/init.d/dnsmasq restart
# 重启nginx
/etc/init.d/nginx restart
检查DNS解析是否正常
nslookup sh-repo.ialdagorth.com
以上步骤完成后,可以断开互联网连接,测试本地dns解析
现在试试为openWrt后台配置一个域名吧
静态IP
建议为最基础的设施 openWrt 和 pve 分配主机名和静态ip
acme.sh 获取CF证书
从 域名概要页面 获取CF_Zone_ID
# 获取acme.sh
curl https://get.acme.sh | sh -s [email protected]
# 配置 CF
export CF_Token="Y_jpG9AnfQmuX5Ss9M_qaNab6SQwme3HWXNDzRWs"
export CF_Zone_ID="763eac4f1bcebd8b5c95e9fc50d010b4"
# 颁发证书
./acme.sh --issue --dns dns_cf -d example.com -d '*.example.com'
为 openwrt 配置证书
nano /etc/nginx/nginx.conf
# 在 nginx._lan 配置
server { #see uci show 'nginx._lan'
......
ssl_certificate /root/.acme.sh/ialdagorth.com_ecc/ialdagorth.com.cer;
ssl_certificate_key /root/.acme.sh/ialdagorth.com_ecc/ialdagorth.com.key;
ssl_session_cache shared:SSL:32k;
ssl_session_timeout 64m;
为 pve 配置证书
将上面得到的证书粘贴到这里
aria2
1.创建下载目录
2.不要选择rpc加密,使用nginx配置证书即可,其他的默认
3.配置反代
# nginx 反代
server {
listen 443 ssl;
server_name aria2.ialdagorth.com;
include /etc/nginx/conf.d/ssl.conf;
location / {
proxy_pass http://127.0.0.1:6666;
}
}
# /etc/nginx/conf.d/ssl.conf
ssl_certificate /root/.acme.sh/ialdagorth.com_ecc/ialdagorth.com.cer;
ssl_certificate_key /root/.acme.sh/ialdagorth.com_ecc/ialdagorth.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:32k;
ssl_session_timeout 64m;
问题
我还不清楚 UPnP IGD 和 PCP/NAT-PMP 服务 的作用和配置方法,如果有佬友已经研究,希望可以讲解一下