jeessy2 / ddns-go

Simple and easy to use DDNS. Support Aliyun, Tencent Cloud, Dnspod, Cloudflare, Callback, Huawei Cloud, Baidu Cloud, Porkbun, GoDaddy, Namecheap, NameSilo...
MIT License
11.53k stars 1.32k forks source link

CF请求缺失参数 #1248

Open dakezuo opened 2 weeks ago

dakezuo commented 2 weeks ago

Description

CF请求日志:2024/09/11 19:55:43 请求接口https://api.cloudflare.com/client/v4/zones?name=(我的域名)&status=active&per_page=50失败! ERROR: Get "https://api.cloudflare.com/client/v4/zones?name=(我的域名)&status=active&per_page=50": net/http: TLS handshake timeout

CF请求返回失败: { "success": false, "errors": [ { "code": 9106, "message": "Missing X-Auth-Email header" }, { "code": 9107, "message": "Missing X-Auth-Key header" } ], "messages": [], "result": null }

DNS Provider

Cloudflare

Did you search for similar issues before submitting this one?

No, I didn't

Operating System

Linux

Architecture

x86_64

Version

3.7.1

How are you running ddns-go?

Docker

Any other information

看日志是握手失败了,请求参数没带进去,我要怎么手动加这俩参数呢?

Emtier commented 2 weeks ago

现在都6.7了 你还在用3.7.1版本?

blueveryday commented 1 week ago

是的,我也遇到相同的问题了。 6.7.0的版本,arm64的r2s机子,报楼主相同的错误。 网络中另外一个mt7621的机子没有这个问题。 反复检查了设置没有发现问题,相同的设置在之前的某个版本(不确定 哪个版本)正常使用。

blueveryday commented 1 week ago

楼主,问题解决了。 目的是启动命令为:ddns-go -c /etc/ddns-go/config.yaml -dns 1.1.1.1 来解决问题。

你把/etc/init.d/ddns-go文件中添加-dns启动参数就可以解决TLS 握手超时的问题。

!/bin/sh /etc/rc.common

Copyright (C) 2023 ImmortalWrt.org

START=99 USE_PROCD=1

CONF="ddns-go" YAML="/etc/$CONF/config.yaml" PROG="/usr/bin/$CONF"

start_service() { config_load "$CONF"

local enabled
config_get_bool enabled "config" "enabled" "0"
[ "$enabled" -eq "1" ] || return 1

local listen ttl dns noweb insecure
config_get listen "config" "listen" "[::]:9876"
config_get ttl "config" "ttl" "300"
config_get dns "config" "dns"
config_get_bool noweb "config" "noweb" "0"
config_get_bool insecure "config" "insecure" "0"

[ -d "${YAML%/*}" ] || mkdir -p "${YAML%/*}"
touch "$YAML"
chown ddns-go "$YAML"

procd_open_instance "$CONF"
procd_set_param command "$PROG"
procd_append_param command -c "$YAML"
procd_append_param command -l "$listen"
procd_append_param command -f "$ttl"
[ -z "$dns" ] || procd_append_param command -dns "$dns"
[ "$noweb" -eq "0" ] || procd_append_param command -noweb
[ "$insecure" -eq "0" ] || procd_append_param command -skipVerify

procd_set_param respawn
procd_set_param stderr 1
procd_set_param user ddns-go

procd_close_instance

}

service_triggers() { procd_add_reload_trigger "$CONF" }

======================================================

然后把/etc/config/ddns-go文件修改成:

======================================================

config ddns-go 'config' option enabled '1' option listen '[::]:9876' option ttl '3600' option dns '1.1.1.1'

======================================================

然后再luci页面启动ddns-go服务就可以了。