本地hosts自动更新Cloudflare解析记录

当本地有DDNS服务的时候,有时候IP一变,我们本地没那么及时获取到DNS记录,就会导致很长时间局域网无法通过域名访问本地局域网的服务。 而Cloudflare有API可以读取某个域名的解析记录,是不是可以利用这一点将Cloudflare的域名-IP对应关系拉取到本地,作为hosts文件,帮助我们加速解析呢? 首先你的CloudFlare要创建一个API令牌,权限只允许读取需要的域名。 然后SSH登录OpenWRT主路由,创建一个脚本文件: /etc/hotplug.d/iface/99-cloudflare-hosts #!/bin/sh # ---------------- 配置 ---------------- CF_API_TOKEN="{CF只读权限TOKEN}" ZONE_ID="{ZONE_ID}" # 文件路径 HOST_FILE="/etc/cloudflare_hosts" TMP_FILE="/tmp/cloudflare_hosts.tmp" LOG_FILE="/var/log/cloudflare_hosts.log" LAST_IPV6_FILE="/tmp/last_ipv6" # 接口与延迟配置 DEFAULT_WAN="pppoe-wan" #接口名称需要根据你实际的网络配置来修改 DELAY_SECONDS=60 # 延迟执行时间(秒) # ---------------- 函数:执行主更新逻辑 ---------------- update_hosts() { IPV6=$(ip -6 addr show dev $DEVICE scope global | grep inet6 | awk '{print $2}' | cut -d/ -f1 | head -n1) [ -z "$IPV6" ] && echo "[$(date)] 未获取到IPv6地址" >> $LOG_FILE && exit 1 LAST_IPV6="" [ -f $LAST_IPV6_FILE ] && LAST_IPV6=$(cat $LAST_IPV6_FILE) if [ "$IPV6" != "$LAST_IPV6" ] || [ "$ACTION" = "manual" ]; then echo "[$(date)] 更新 Cloudflare Hosts,当前IPv6: $IPV6" echo "$IPV6" > $LAST_IPV6_FILE # 获取Cloudflare解析记录 wget -qO- --header="Authorization: Bearer $CF_API_TOKEN" \ --header="Content-Type: application/json" \ "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \ | jq -r '.result[] | select((.type=="A" or .type=="AAAA") and (.name|startswith("*")|not)) | "\(.content) \(.name)"' > $TMP_FILE mv $TMP_FILE $HOST_FILE /etc/init.d/dnsmasq reload LOG_ENTRY="[$(date)] 更新完成 IPv6=$IPV6" echo "$LOG_ENTRY" >> $LOG_FILE tail -n 50 $LOG_FILE > ${LOG_FILE}.tmp && mv ${LOG_FILE}.tmp $LOG_FILE else echo "[$(date)] ⚙️ IPv6未变化,跳过更新" >> $LOG_FILE fi } # ---------------- 初始化变量 ---------------- [ -z "$INTERFACE" ] && INTERFACE="wan" [ -z "$DEVICE" ] && DEVICE="$DEFAULT_WAN" [ -z "$ACTION" ] && ACTION="manual" # ---------------- 执行逻辑 ---------------- if [ "$ACTION" = "manual" ]; then # 手动执行立即运行 update_hosts else # 自动执行(接口事件触发) echo "[$(date)] 接口事件触发:$INTERFACE ($ACTION),立即执行并将在${DELAY_SECONDS}s后再次执行" >> $LOG_FILE # 立即执行一次 update_hosts # 延迟执行一次(后台执行) ( sleep $DELAY_SECONDS update_hosts ) & fi 赋予执行权限: ...

2025-11-02 · 2 min · Duke Yin

Oracle甲骨文Ubuntu无法远程SSH登录

手里还有两个永久免费的甲骨文云VPS,装的Ubuntu系统,开服的时候还教过大家Oracle Cloud SSH使用密码登录,前不久发现SSH突然登不上了,还以为甲骨文给回收了。后来一番探究,终于解决了。 得到的结论是,永久免费的东西,或者说甲骨文家的东西真的挺糟心的。 排查过程太曲折就不说了,直接说最后的解决方法: 用Cloud Shell或者Web上带的终端登录到服务器上,首先核对sshd和ssh服务有没有在运行。 sudo systemctl status ssh sudo systemctl status sshd 如果这俩没在运行,就先安装 sudo apt update sudo apt install openssh-server 设置开机启动 sudo systemctl start sshd sudo systemctl enable sshd 用你的编辑器编辑sshd配置文件 nano /etc/ssh/sshd_config 确保以下行没有被注释,并且端口设置正确: Port 22 PermitRootLogin yes PasswordAuthentication yes 保存配置文件后重启服务 ...

2025-10-21 · 1 min · Duke Yin

天钡 WTR PRO AMD R7 5825U PVE安装传感器驱动

1. 安装相关依赖 apt update && apt install -y pve-headers proxmox-headers-$(uname -r) dkms flex bison 2. 安装it87 下载驱动 it87-dkms_1.0.63-1_all.deb ,然后上传到opt目录,然后安装 dpkg -i /opt/it87-dkms_1.0.63-1_all.deb 重启pve

2025-10-07 · 1 min · Duke Yin

PVE网卡直通

注意:一定要保留一个网口作为PVE管理口,如果全部网口都直通了,就无法打开PVE,需要用PVE安装U盘做救援模式。 传统Boot方式: 修改gurp Intel CPU 编辑 /etc/default/grub 找到 GRUB_CMDLINE_LINUX_DEFAULT="quiet" 修改为 GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" 更新grup update-grub 重启服务器 reboot AMD CPU 依然编辑 /etc/default/grub 找到 GRUB_CMDLINE_LINUX_DEFAULT="quiet" 替换为 GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"" UEF Isystemd-boot boot 文件位于 /etc/kernel/cmdline 创建用于systemd-boot的文件(格式为带有选项的单行) 更新命令为 pve-efiboot-tool refresh 运行命令验证是否成功: dmesg | grep -e DMAR -e IOMMU 如果没有输出,则说明有问题。如果有,则成功。 ...

2025-10-06 · 1 min · Duke Yin

PVE USB移动硬盘直通

插入USB设备后,在PVE主机执行: lsblk 查看USB硬盘是否已经被正确识别 在PVE选中需要直通的虚拟机先关机,选择硬件,添加,USB设备,使用USB供应商/设备ID,选择硬盘。 添加。 启动虚拟机

2025-10-06 · 1 min · Duke Yin

PVE虚拟机配置Guest Agent 安装VirtIO驱动

Windows虚拟机的VirtIO驱动 页面地址:https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers 稳定版:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso 最新版:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso 通过虚拟机CDROM载入后在虚拟机安装即可。 Linux Guest Agent Linux系统安装Guest Agent后,可以在PVE管理界面看到虚拟机的IP地址。 Debian 安装 qemu-guest-agent apt install qemu-guest-agent -y 如果报错说找不到这个包,就 apt update && apt install qemu-guest-agent -y centos把apt换成yum即可 然后开启并启动 systemctl enable qemu-guest-agent systemctl start qemu-guest-agent OpenWRT/iStoreOS 安装 qemu-guest-agent # 安装 opkg update opkg install qemu-ga 设置脚本权限 chmod +x /etc/init.d/qemu-ga ...

2025-10-06 · 1 min · Duke Yin

PVE配置UPS不间断电源

仅讨论USB接口UPS的接入,核心是安装NUT,理论上EXSI与PVE都可以使用此方法。 列出USB lsusb 在列表中找到UPS,确认已经接入系统 安装NUT apt update apt install nut nut-client nut-server nut-cgi 扫描UPS nut-scanner -U 如果NUT安装成功,会在最后列出发现的UPS: [nutdev1] driver = "usbhid-ups" port = "auto" vendorid = "0463" productid = "FFFF" product = "SANTAK TG-BOX" serial = "Blank" vendor = "EATON" bus = "001" 然后就要在PVE所在服务器配置UPS的信息,所有配置文件位于 /etc/nut 目录之下 ...

2025-10-06 · 2 min · Duke Yin

PVE开启xterm.js控制台

默认的PVE web界面虚拟机控制台无法复制粘贴,开启内置的xterm.js控制台虚拟机才能复制粘贴。 方法如下 1关闭虚拟机 2添加一个串行接口 进入虚拟机的硬件设置,添加一个串行端口。 做完这一步,你会发现PVE面板里多了一个 xterm.js控制台选项。但是目前还不能接收控制台的信号。 3修改grub配置 进入虚拟机系统,编辑grub 配置文件: nano /etc/default/grub 找到如下的行: GRUB_CMDLINE_LINUX="" 在引号里加入参数: GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200" 保存退出 4更新 grub 配置 debain / ubuntu update-grub 5重启虚拟机 然后打开控制台就能OK了

2025-10-06 · 1 min · Duke Yin

解决飞牛系统中 SMB 速度慢的问题

转载于:52COVER 方案 1:修改现有配置文件(推荐) 步骤 1:备份原始配置文件 sudo cp /etc/samba/smb.custom.conf /etc/samba/smb.custom.conf.bak 步骤 2:修改配置文件 将 aio read size = 1 修改为 aio read size = 0(禁用异步 I/O 以提高速度): sudo sed -i 's/aio read size = 1/aio read size = 0/g' /etc/samba/smb.custom.conf 步骤 3:创建重启后自动恢复配置的脚本 ...

2025-10-01 · 1 min · Duke Yin

Linux 一键换源脚本

Linux 默认的软件源有时候在国内访问比较慢,导致更新、安装软件耗时过长,所以更换软件源会提高效率。 有一个好用的换源脚本如下: bash <(curl -sSL https://linuxmirrors.cn/main.sh) 适用于几乎所有常见的linux发行版本。 官网:https://linuxmirrors.cn/

2025-09-20 · 1 min · Duke Yin