收起左侧

系统升级到 0.9.21后无法打开Webdav

4
回复
225
查看
[ 复制链接 ]

1

主题

5

回帖

0

牛值

江湖小虾

2025-8-18 20:31:44 显示全部楼层 阅读模式

设备环境: ESXI 7.0 U3 里装的虚拟机,外网访问是frp将外网的访问指向另一台虚拟机上的nginx然后 反代到飞牛。 系统 0.9.21

BUG现象: 这两天突然发现外网无法访问了,因为原来在证书设置的服务设置里将远程访问备用改成了自己的证书(自己的证书未过期是到25年11月到期的),后来改回的fnos的证书,外网可以访问了,但今天发现Webdav无法访问了,测试发现无法打开,我把所有的证书都改为了fnos,仍然无法打开Webdav。

出现频率:必现

联系方式: 手机号 137 0351 4583

收藏
送赞
分享

1

主题

5

回帖

0

牛值

江湖小虾

2025-8-18 20:48:01 楼主 显示全部楼层

昨天还是可以通过Webdav备份其他机器上的数据到飞牛的。只是昨天晚上的时候,我弄了一个脚本,就是把飞牛的IPv6地址更新到cloudflare的一个域名上了。但这个脚本是只在每天晚上才执行一次,用的是service.time的机制。原来这个timer上也是有一个定时执行的脚本是定时将其他机器备份过来的文件压缩成一个包,然后会从飞牛备份到阿里云,这个脚本已经运行了很长时间,只是昨天晚上加了一个同时将IPV6地址解析到cloudflare域名的动作。脚本我贴在下面:


#!/usr/bin/env bash
# -------------------------------------------
# Cloudflare DDNS over IPv6 for Debian
# usage: cf-ddns-ipv6.sh <完整域名>
# -------------------------------------------

set -euo pipefail

# ====== 用户配置 ======
TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"  # Cloudflare API Token
TTL=60
PROXY=false                                          # 是否走 CF 代理
# =====================

DOMAIN="${1:-}"                                     # 脚本参数:完整域名
[[ -z "$DOMAIN" ]] && { echo "用法: $0 <完整域名>"; exit 1; }

BASE_DOMAIN="${DOMAIN#*.}"                          # 例如 home.example.com -> example.com

# ---------- 获取本机全局 IPv6 ----------
get_ipv6() {
    ip -6 addr show scope global \
    | awk '/inet6/ {print $2}' \
    | awk -F'/' '!($1 ~ /^(fe80|::1|fc00|fd00)/) {print $1; exit}'
}

IPV6="$(get_ipv6)"
[[ -z "$IPV6" ]] && { echo "未找到全局 IPv6"; exit 2; }
echo "当前 IPv6: $IPV6"

# ---------- Cloudflare API 通用函数 ----------
cf_api() {
    local method="$1" path="$2" data="${3:-}"
    curl -sS -X "$method" \
        "https://api.cloudflare.com/client/v4$path" \
        -H "Authorization: Bearer $TOKEN" \
        -H "Content-Type: application/json" \
        ${data:+-d "$data"}
}

# ---------- 获取 zone_id ----------
ZONE_ID=$(cf_api GET "/zones" \
    | jq -r --arg d "$BASE_DOMAIN" '.result[] | select(.name==$d) | .id')
[[ "$ZONE_ID" == "null" || -z "$ZONE_ID" ]] && { echo "找不到域名对应的 zone_id"; exit 3; }

# ---------- 查询已有记录 ----------
RECORD=$(cf_api GET "/zones/$ZONE_ID/dns_records?type=AAAA&name=$DOMAIN" \
    | jq -r '.result[0] // empty')

# ---------- 构建 payload ----------
PAYLOAD=$(jq -n --arg ip "$IPV6" --arg ttl "$TTL" --arg proxied "$PROXY" \
    '{
        type: "AAAA",
        name: "'"$DOMAIN"'",
        content: $ip,
        ttl: ($ttl | tonumber),
        proxied: ($proxied | test("true"))
    }')

# ---------- 创建或更新 ----------
if [[ -z "$RECORD" ]]; then
    echo "首次创建 AAAA 记录 ..."
    cf_api POST "/zones/$ZONE_ID/dns_records" "$PAYLOAD" | jq .
else
    RECORD_ID=$(echo "$RECORD" | jq -r '.id')
    echo "更新已有记录 ..."
    cf_api PUT "/zones/$ZONE_ID/dns_records/$RECORD_ID" "$PAYLOAD" | jq .
fi

1

主题

5

回帖

0

牛值

江湖小虾

2025-8-18 20:55:34 楼主 显示全部楼层

image.png

即使启动的状态显示一下成功,实际也没有成功。

wl@fnos2m920x:~$ systemctl status webdav.service
● webdav.service - WebDAV Service
Loaded: loaded (/etc/systemd/system/webdav.service; enabled; preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Mon 2025-08-18 20:54:49 CST; 3s ago
Process: 7617 ExecStart=/usr/trim/bin/webdav (code=exited, status=1/FAILURE)
Main PID: 7617 (code=exited, status=1/FAILURE)
CPU: 6ms

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

1

主题

5

回帖

0

牛值

江湖小虾

2025-8-18 20:56:49 楼主 显示全部楼层

root@fnos2m920x:~# /usr/trim/bin/webdav
FATA[2025-08-18 20:56:15] ListenAndServe error(0.0.0.0:5006): tls: private key does not match public key
r

这个提示看来还是证书的问题。

1

主题

5

回帖

0

牛值

江湖小虾

2025-8-18 21:09:38 楼主 显示全部楼层

把自己安装的全部证书都删除后,可以启用Webdav了。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则