Giter Site home page Giter Site logo

aliyun-ddns's Introduction

 .NET Core GitHub license
GitHub tag GitHub issues GitHub forks GitHub stars

功能

  • 通过在线API获取公网IPv4/v6地址,更新到域名A/AAAA记录。
  • 通过本地网卡获取公网或内网IPv4/v6地址,更新到域名A/AAAA记录。
  • 支持更新多个域名的记录。
  • 支持更新指定线路的记录。
  • 支持Docker容器,支持x64、ARMv7和ARMv8。
  • IP发生变化时,使用WebHook通知。

使用方法

Docker

docker run -d --restart=always --net=host \
    -e "AKID=[ALIYUN's AccessKey-ID]" \
    -e "AKSCT=[ALIYUN's AccessKey-Secret]" \
    -e "DOMAIN=ddns.aliyun.win" \
    -e "REDO=30" \
    -e "TTL=60" \
    -e "TIMEZONE=8.0" \
    -e "TYPE=A,AAAA" \
    sanjusss/aliyun-ddns
环境变量名称 注释 默认值
AKID 阿里云的Access Key ID。获取阿里云AccessToken access key id
AKSCT 阿里云的Access Key Secret。 access key secret
DOMAIN 需要更新的域名,可以用“,”隔开。
可以指定线路,用“:”分隔线路和域名(线路名说明)。
例如:“baidu.com,telecom:dianxin.baidu.com”。
my.domain.com
ROOT_DOMAIN 以参数DOMAIN为 a.www.example.com 为示例:
1.如果参数ROOT_DOMAIN为空,则查询域名为example.com、主机名为”a.www“的解析记录;
2.如果参数ROOT_DOMAIN为 www.example.com,则查询域名为www.example.com、主机名为 "a"的解析记录;
3.如果参数ROOT_DOMAIN为 a.www.example.com,则查询域名为a.www.example.com、主机名为 "@"的解析记录。
REDO 更新间隔,单位秒。建议大于等于TTL/2。 300
TTL 服务器缓存解析记录的时长,单位秒,普通用户最小为600。 600
TIMEZONE 输出日志时的时区,单位小时。 8
TYPE 需要更改的记录类型,可以用“,”隔开,只能是“A”、“AAAA”或“A,AAAA”。 A,AAAA
CNIPV4 检查IPv4地址时,仅使用**服务器。 false
WEBHOOK WEBHOOK推送地址。
CHECKLOCAL 是否检查本地网卡IP。此选项将禁用在线API的IP检查。
网络模式必须设置为host。
(Windows版docker无法读取本机IP)
false
IPV4NETS 本地网卡的IPv4网段。格式示例:“192.168.1.0/24”。多个网段用“,”隔开。
IPV6NETS 本地网卡的IPv6网段。格式示例:“240e::/16”。多个网段用“,”隔开。

以上环境变量均存在默认值,添加需要修改的环境变量即可。

命令行

查看帮助信息
dotnet aliyun-ddns.dll --help
查看版本信息
dotnet aliyun-ddns.dll --version
运行
dotnet aliyun-ddns.dll \
    -u "ALIYUN's AccessKey-ID" \
    -p "ALIYUN's AccessKey-Secret" \
    -d "ddns.aliyun.win,ddns2.aliyun2.win" \
    -i 300 \
    -t 600 \
    --timezone 8.0 \
    --type A \
    --cnipv4
参数名称 注释 默认值
u 阿里云的Access Key ID。获取阿里云AccessToken access key id
p 阿里云的Access Key Secret。 access key secret
d 需要更新的域名,可以用“,”隔开。
可以指定线路,用“:”分隔线路和域名(线路名说明)。
例如:“baidu.com,telecom:dianxin.baidu.com”。
my.domain.com
root-domain 以参数DOMAIN为 a.www.example.com 为示例:
1.如果参数ROOT_DOMAIN为空,则查询域名为example.com、主机名为”a.www“的解析记录;
2.如果参数ROOT_DOMAIN为 www.example.com,则查询域名为www.example.com、主机名为 "a"的解析记录;
3.如果参数ROOT_DOMAIN为 a.www.example.com,则查询域名为a.www.example.com、主机名为 "@"的解析记录。
i 更新间隔,单位秒。建议大于等于TTL/2。 300
t 服务器缓存解析记录的时长,单位秒,普通用户最小为600。 600
timezone 输出日志时的时区,单位小时。 8
type 需要更改的记录类型,可以用“,”隔开,只能是“A”、“AAAA”或“A,AAAA”。 A,AAAA
cnipv4 检查IPv4地址时,仅使用**服务器。 false
webhook WEBHOOK推送地址。
checklocal 是否检查本地网卡IP。此选项将禁用在线API的IP检查。 false
ipv4nets 本地网卡的IPv4网段。格式示例:“192.168.1.0/24”。多个网段用“,”隔开。
ipv6nets 本地网卡的IPv6网段。格式示例:“240e::/16”。多个网段用“,”隔开。

以上参数均存在默认值,添加需要修改的参数即可。

常见问题

无法获取DNS记录

日志提示

获取xxx.yyy.zzz的所有记录时出现异常:Aliyun.Acs.Core.Exceptions.ClientException: SDK.WebException : HttpWebRequest WebException occured, the request url is alidns.aliyuncs.com System.Net.WebException: Resource temporarily unavailable Resource temporarily unavailable

可能的原因

  • alidns.aliyuncs.com服务器宕机
  • 当地电信运营商网络故障
  • docker容器无法访问网络

可能的解决方法

我们自己可以解决的只有“docker容器无法访问网络”这个问题。
执行curl https://alidns.aliyuncs.com有返回内容(403之类的),说明是docker容器无法访问网络。
如果之前手动修改过防火墙设置和docker网桥,请先修改回去。
可以通过重启网络解决一部分问题。
以CentOS7为例:

systemctl restart network
systemctl restart docker

aliyun-ddns's People

Contributors

ice-black-tea avatar sanjusss avatar weihanli avatar winrey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

aliyun-ddns's Issues

“无法获取DNS记录”问题的解决方案

最近经常有同学反馈这个问题,我今天也遇到了,正好帮大家解决一下。
涉及issues:
#17
#20
#28
后续会在程序启动时增加联网检测,方便大家排查问题。(#29

日志提示

获取xxx.yyy.zzz的所有记录时出现异常:Aliyun.Acs.Core.Exceptions.ClientException: SDK.WebException : HttpWebRequest WebException occured, the request url is alidns.aliyuncs.com System.Net.WebException: Resource temporarily unavailable Resource temporarily unavailable

可能的原因

  • alidns.aliyuncs.com服务器宕机
  • 当地电信运营商网络故障
  • docker容器无法访问网络

可能的解决方法

我们自己可以解决的只有“docker容器无法访问网络”这个问题。
执行curl https://alidns.aliyuncs.com有返回内容(403之类的),说明是docker容器无法访问网络。
如果之前手动修改过防火墙设置和docker网桥,请先修改回去。
可以通过重启网络解决一部分问题。
以CentOS7为例:

systemctl restart network
systemctl restart docker

如果你是nas,可以尝试重启nas系统后,再重启一次容器程序(不是容器)。

老哥最近好像出问题了,求帮忙看看~

[09/30/2021 21:21:12]获取wb2004.top的所有记录时出现异常:Aliyun.Acs.Core.Exceptions.ClientException: SDK.WebException : HttpWebRequest WebException occured, the request url is alidns.aliyuncs.com System.Net.WebException: The operation has timed out.
at System.Net.HttpWebRequest.GetResponse()
at Aliyun.Acs.Core.Http.HttpResponse.GetResponse(HttpRequest request, Nullable1 timeout) at Aliyun.Acs.Core.DefaultAcsClient.DoAction[T](AcsRequest1 request, Boolean autoRetry, Int32 maxRetryNumber, String regionId, AlibabaCloudCredentials credentials, Signer signer, Nullable1 format, List1 endpoints)
at Aliyun.Acs.Core.DefaultAcsClient.DoAction[T](AcsRequest`1 request, Boolean autoRetry, Int32 maxRetryNumber, IClientProfile profile)
at aliyun_ddns.DomainUpdater.GetRecords(String domain)
[09/30/2021 21:21:12]跳过设置域名 wb2004.top

无法获取IP地址

日志如下:

检测公网IPv4时发生异常:The SSL connection could not be established, see inner exception. The remote certificate is invalid according to the validation procedure.

环境是群晖里的docker,试了下其他DDNS映像,好像也有问题,所以有可能是本地设置和权限的原因。。

能不能从网卡获取 IPv6?

  • 系统:Unraid
  • Docker 运行日志
[06/20/2020 14:08:31]成功获取***l的所有记录,共1条。
[06/20/2020 14:08:57]从 dyndns.com接口 获取公网IPv6失败。
[06/20/2020 14:08:57]从 ident.me接口 获取公网IPv6失败。
[06/20/2020 14:08:57]从 ip.sb接口 获取公网IPv6失败。
[06/20/2020 14:08:57]从 test-ipv6.com/接口 获取公网IPv6失败。
[06/20/2020 14:08:57]从 dyndns.com接口 获取公网IPv6失败。
[06/20/2020 14:08:57]从 ident.me接口 获取公网IPv6失败。
[06/20/2020 14:08:57]从 ip.sb接口 获取公网IPv6失败。
[06/20/2020 14:08:57]从 test-ipv6.com/接口 获取公网IPv6失败。
[06/20/2020 14:09:01]从 ipify.org接口 获取公网IPv6失败。
[06/20/2020 14:09:01]获取公网IPv6失败,所有API接口均无法返回IPv6地址。

不能解析ipv6

老铁你好,
在unraid(6.8.1)、docker下使用 sanjusss/aliyun-ddns,logs提示不能获取ipv6的地址。
而unraid是分配到ipv6地址的。

[02/26/2021 00:36:09]从 ident.me接口 获取公网IPv6失败。
[02/26/2021 00:36:09]从 dyndns.com接口 获取公网IPv6失败。
[02/26/2021 00:36:09]从 ip.sb接口 获取公网IPv6失败。
[02/26/2021 00:36:09]从 ipify.org接口 获取公网IPv6失败。
[02/26/2021 00:36:09]从 test-ipv6.com接口 获取公网IPv6失败。
[02/26/2021 00:36:09]获取公网IPv6失败,所有API接口均无法返回IPv6地址。
[02/26/2021 00:36:10]成功获取www.beanhc.cc的所有记录,共0条。
[02/26/2021 00:36:10]增加AAAA记录www.beanhc.cc时发生异常: Aliyun.Acs.Core.Exceptions.ClientException: MissingValue : Value is mandatory for this action. + [ RequestId : B4F0C02E-62BF-4C8E-A5FC-20B786055CF2 ]
at Aliyun.Acs.Core.DefaultAcsClient.ParseAcsResponse[T](AcsRequest1 request, HttpResponse httpResponse) at Aliyun.Acs.Core.DefaultAcsClient.GetAcsResponse[T](AcsRequest1 request)
at aliyun_ddns.DomainUpdater.AddRecord(IpType type, String domain, String ip)

只能获取到IIPV4,不能获取到IPV6

我是在威联通NAS中用的docker,然后用Host模式,只能获取到IIPV4,不能获取到IPV6

[12/06/2020 13:26:51]从 test-ipv6.com接口 获取公网IPv6失败。
[12/06/2020 13:26:51]从 dyndns.com接口 获取公网IPv6失败。
[12/06/2020 13:26:51]从 ip.sb接口 获取公网IPv6失败。
[12/06/2020 13:26:51]从 ident.me接口 获取公网IPv6失败。
[12/06/2020 13:26:51]从 ipify.org接口 获取公网IPv6失败。
[12/06/2020 13:26:51]获取公网IPv6失败,所有API接口均无法返回IPv6地

获取ipv6地址失败错误

大佬,我用您这个docker有一段时间了,主要是用来动态ipv6地址解析。
但最近获取ipv6地址失败的机率较大。
我看了一下,您主要是用https://ipv6.lookup.test-ipv6.com/ip/这个接口来获取本机ipv6地址的,而您代码里ipv4地址却有4个地址。
建议您增加几个ipv6接口,我看这几个还可以,不知可否:
http://checkipv6.dyndns.com/
https://api-ipv6.ip.sb/ip
http://v6.ident.me/
https://api6.ipify.org/
小小的个人建议而已,麻烦您了~~~

啊里云同步失败

所有记录时出现异常:Aliyun.Acs.Core.Exceptions.ClientException: SDK.WebException : HttpWebRequest WebException occured, the request url is alidns.aliyuncs.com System.Net.WebException: The operation has timed out.
at System.Net.HttpWebRequest.GetResponse()
at Aliyun.Acs.Core.Http.HttpResponse.GetResponse(HttpRequest request, Nullable1 timeout) at Aliyun.Acs.Core.DefaultAcsClient.DoAction[T](AcsRequest1 request, Boolean autoRetry, Int32 maxRetryNumber, String regionId, AlibabaCloudCredentials credentials, Signer signer, Nullable1 format, List1 endpoints)
at Aliyun.Acs.Core.DefaultAcsClient.DoAction[T](AcsRequest`1 request, Boolean autoRetry, Int32 maxRetryNumber, IClientProfile profile)
at aliyun_ddns.DomainUpdater.GetRecords(String domain)

运行报错

获取*******阿里云域名*****的所有记录时出现异常:Aliyun.Acs.Core.Exceptions.ClientException: SDK.WebException : HttpWebRequest WebException occured, the request url is alidns.aliyuncs.com System.Net.WebException: The operation has timed out.

基本上没获取一次ip地址就会报一次错,虽然不影响使用,望解决,版本尝试多个版本都是一样的错误

DDNS遇到的问题,突然就不能用了,不知道什么原因

[09/19/2021 00:48:36]当前公网IPv4为 183.7.15.(ipip.net接口)。
[09/19/2021 00:48:36]获取
.*.online的所有记录时出现异常:Aliyun.Acs.Core.Exceptions.ClientException: InvalidTimeStamp.Expired : Specified time stamp or date value is expired. + [ RequestId : D2B05C0B-8E52-5C1C-BD81-E71D2B3747B4 ]
at Aliyun.Acs.Core.DefaultAcsClient.ParseAcsResponse[T](AcsRequest`1 request, HttpResponse httpResponse)
at aliyun_ddns.DomainUpdater.GetRecords(String domain)
[09/19/2021 00:48:36]跳过设置域名 ..online

可以增加一个@类型的ipv6解析吗?

楼主好,刚刚在使用您的程序在解析ipv6地址,远程连接的过程中发现,无法打开container station,后来发现是缺少@类型的解析,所以想咨询一下能否增加一个@类型的ipv6解析。
再次感谢您的程序。

无法正常解析域名

已经从https://www.namesilo.com/购买域名nas.esir.xyz并转入阿里,但是无法正常解析域名。用的DOCKER版本0.2.7
[03/24/2021 11:54:27]获取nas.esir.xyz的所有记录时出现异常:Aliyun.Acs.Core.Exceptions.ClientException: InvalidAccessKeyId : Specified access key is not found or invalid. + [ RequestId : 425C0079-8EBB-4416-B69F-F1C36D371682 ]
at Aliyun.Acs.Core.DefaultAcsClient.ParseAcsResponse[T](AcsRequest`1 request, HttpResponse httpResponse)
at aliyun_ddns.DomainUpdater.GetRecords(String domain)
[03/24/2021 11:54:27]跳过设置域名 nas.esir.xyz

增加阿里云RAM精确的权限定义

我在公司账号上用这个工具,账号上有多个域名,我并不想给这个账号FullAccess权限,因此写了一个使用此工具的最小权限策略。可以加到文档里,如果有类似需求可以直接用。

阿里云策略内容:

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "alidns:DescribeSubDomainRecords",
                "alidns:DeleteDomainRecord",
                "alidns:AddDomainRecord",
                "alidns:UpdateDomainRecord"
            ],
            "Resource": "acs:alidns:*:*:domain/yourdomain.com",
            "Effect": "Allow"
        }
    ]
}

更新IP地址时会连带删除域名邮箱的MX记录

最近发现域名邮箱频繁通知域名解析失效,导致邮件无法正常收发,后来排查发现,MX记录添加后没过几分钟就被莫名删除。

经测试,停止DDNS容器后的一整天,问题消失,重启DDNS容器,问题复现。

阿里云的后台操作记录如下:

  • 这个过程中实际上我的外网IP地址并没有发生变化,删除又添加的A记录的IP地址是一样的
  • DDNS程序首先删除了A记录,两个MX记录,一个TXT记录 ,然后又将A记录添加回了解析中
  • 域名邮箱所需的其中一个CNAME记录没有受到影响,只有MX和TXT记录会被删除
操作时间 (UTC+8) 操作行为 操作者IP
2019-11-07 10:04:24 新增解析记录A记录 @ 默认 183.5.xx.xx ( TTL: 600) 183.5.xx.xx
2019-11-07 10:04:23 删除解析记录MX记录 @ 默认 mxbiz2.qq.com ( TTL: 600) --
2019-11-07 10:04:23 删除解析记录MX记录 @ 默认 mxbiz1.qq.com ( TTL: 600) --
2019-11-07 10:04:23 删除解析记录TXT记录 @ 默认 v=spf1 include:spf.mail.qq.com ~all ( TTL: 600) --
2019-11-07 10:04:23 删除解析记录A记录 @ 默认 183.5.xx.xx ( TTL: 600) --

到阿里云的网络连接故障时程序停止运行

薛峰在邮件中提到:

 先说一下我的使用环境,移动网络,无ipv4公网,有ipv6公网ip,威联通453bmini,x64机型,在docker下使用,用的linux-amd64版本,REDO设置的30(因为在这台机器上,检测公网ipv6地址会经常出错,表现如下:

[07/27/2019 18:19:02]检测公网IPv6时发生异常:The operation was canceled.
[07/27/2019 18:19:02]成功获取xxxx.xxxx.top的所有记录,共1条。
[07/27/2019 18:24:02]检测公网IPv6时发生异常:The operation was canceled.
[07/27/2019 18:24:02]成功获取xxxx.xxxx.top的所有记录,共1条。
[07/27/2019 18:29:02]检测公网IPv6时发生异常:The operation was canceled.
[07/27/2019 18:29:02]成功获取xxxx.xxxx.top的所有记录,共1条。
[07/27/2019 18:34:01]检测公网IPv6时发生异常:The operation was canceled.
10次能正确获取4、5次,不得不改小点。另一台机器上每次都能正常获取。这个应该是我这里自己的问题),安装使用很方便。
我的路由器设置了每天4点断网,4:02再拨号,方便在凌晨更新ip后这一天的ip都不会变。但我发现,nas的ip没有更新,打开容器一看,处于停止运行状态。看了一下原因,由于断网,直接就停止了。日志如下:
[07/27/2019 18:55:45]检测公网IPv6时发生异常:Resource temporarily unavailable Resource temporarily unavailable
[07/27/2019 18:56:26]获取xxxx.xxxx.top的所有记录时出现异常:System.NullReferenceException: Object reference not set to an instance of an object.
at Aliyun.Acs.Core.Http.HttpResponse.ReadContent(HttpResponse response, HttpWebResponse rsp)
at Aliyun.Acs.Core.Http.HttpResponse.PasrseHttpResponse(HttpResponse httpResponse, HttpWebResponse httpWebResponse)
at Aliyun.Acs.Core.Http.HttpResponse.GetResponse(HttpRequest request, Nullable1 timeout) at Aliyun.Acs.Core.DefaultAcsClient.DoAction[T](AcsRequest1 request, Boolean autoRetry, Int32 maxRetryNumber, String regionId, Credential credential, ISig
ner signer, Nullable1 format, List1 endpoints)
at Aliyun.Acs.Core.DefaultAcsClient.DoAction[T](AcsRequest`1 request, Boolean autoRetry, Int32 maxRetryNumber, IClientProfile profile)
at aliyun_ddns.DomainUpdater.GetRecords(String domain) in /src/aliyun-ddns/DomainUpdater.cs:line 295

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
at aliyun_ddns.DomainUpdater.Run() in /src/aliyun-ddns/DomainUpdater.cs:line 87

功能建议: 更新dns时有一个调起其他流程的方案

目前我这里公网ip发生变更,在修改dns解析后,还有一些其他流程,比如要修改路由器的配置,做一下运维的信息推送

建议增加一个hook,更新dns时可以调用一个url触发其他流程,比如调用钉钉机器人、自有的ci系统等等

运行出错

the request url is alidns.aliyuncs.com System.Net.WebException: The operation has timed out.
at System.Net.HttpWebRequest.GetResponse()
at Aliyun.Acs.Core.Http.HttpResponse.GetResponse(HttpRequest request, Nullable1 timeout) at Aliyun.Acs.Core.DefaultAcsClient.DoAction[T](AcsRequest1 request, Boolean autoRetry, Int32 maxRetryNumber, String regionId, AlibabaCloudCredentials credentials, Signer signer, Nullable1 format, List1 endpoints)
at Aliyun.Acs.Core.DefaultAcsClient.DoAction[T](AcsRequest`1 request, Boolean autoRetry, Int32 maxRetryNumber, IClientProfile profile)
at aliyun_ddns.DomainUpdater.GetRecords(String domain) in /src/aliyun-ddns/DomainUpdater.cs:line 251

刚开始运行看logs解析记录正常的,运行几天后就会出现以上的错误信息。

https://i.loli.net/2020/06/17/JpdWKqyRilDx5rf.jpg

纯AAAA解析时用本地网卡获取不到ip

[06/21/2021 17:48:50]从 读取网卡IPv6设置 获取公网IPv6失败。
[06/21/2021 17:48:50]获取公网IPv6失败,所有API接口均无法返回IPv6地址。
[06/21/2021 17:48:51]成功获取raspberrypi.curious.host的所有记录,共0条。
[06/21/2021 17:48:51]增加AAAA记录raspberrypi.curious.host时发生异常: Aliyun.Acs.Core.Exceptions.ClientException: MissingValue : Value is mandatory for this action. + [ RequestId : 57C05E56-B074-4FC5-A81A-8AED3D0CED40 ]
   at Aliyun.Acs.Core.DefaultAcsClient.ParseAcsResponse[T](AcsRequest`1 request, HttpResponse httpResponse)
   at Aliyun.Acs.Core.DefaultAcsClient.GetAcsResponse[T](AcsRequest`1 request)
   at aliyun_ddns.DomainUpdater.AddRecord(IpType type, String domain, String ip)

设备是树莓派,有v6地址的

无法正常工作

开启后日志一直写成功获取xxx.xxx.top的所有记录,共0条。然后就没有然后了。
这是我的docker-compose.yml

version: '3.8'

services:
    aliyun-ddns:
        image: sanjusss/aliyun-ddns:0.2.7
        container_name: aliyun-ddns
        environment:
          - AKID=xxx
          - AKSCT=xxx
          - DOMAIN=xxx.xxx.top
          - TYPE=AAAA
          - REDO=30
          - TTL=60

这个工具是从哪个IP或者域名获取公网地址的?

因为我在ROS路由器上连接了Google云VPN,并设置了VPN选路(非大陆IP地址均走谷歌云),但是我突然发现,容器内的DDNS获取的公网地址变成Google云的IP地址了。

我想有可能该工具是用国外的某些服务或者网站用于判断公网地址的,导致走Google云出去了,识别到了错误的IP地址。

想问一下这个工具是从哪个IP或者域名获取公网地址的?我想将它添加到非路由名单内,防止这个情况出现。

谢谢!

ARM64v8 0.2.2 无参数d

反馈:

ARM64v8 0.2.2-0.2.4 传不进去参数d,--help里面也没看到参数d。
0.2.1版目前正常使用中,没这个问题。

搜狗截图20200624184242

获取域名的所有记录时出现异常

大神好:

我遇到问题情况如下:

  • 设备:qnap 453b mini
  • 网络: 移动ipv6
  • 问题:之前可以正常使用,今天发现dns解析没有被修改,问题是获取域名所有记录时出现异常。尝试使用最新版本的镜像,问题仍然存在。似乎和 #20 遇到的问题一样,但是没有看到下文。

目前采用的的设置如下:

version: "3"

services:
    aliyun_ddns:
        image: sanjusss/aliyun-ddns:latest
        container_name: aliyun-ddns
        restart: unless-stopped
        network_mode: host
        environment:
            - AKID=XXXXXXXXXX
            - AKSCT=XXXXXXXXXXX
            - DOMAIN=XXX.XXX.fun
            - TYPE=AAAA

容器的版本和环境变量:

[~] # docker exec -it aliyun-ddns /bin/bash
root@NASXXXXX:/app# dotnet aliyun-ddns.dll --version
aliyun-ddns 0.2.5
root@ NASXXXXX:/app# env
AKID= XXXXXXXXXX
HOSTNAME= NASXXXXX
TYPE=AAAA
ASPNETCORE_URLS=http://+:80
PWD=/app
DOMAIN=XXX.XXX.fun
HOME=/root
AKSCT= XXXXXXXXXX
TERM=xterm
SHLVL=1
DOTNET_RUNNING_IN_CONTAINER=true
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
_=/usr/bin/env
root@ NASXXXXX:/app#

报错:

[07/01/2020 15:23:53]当前公网IPv6为 XXXX: XXXX: XXXX: XXXX: XXXX: XXXX: XXXX: XXXX(ipify.org接口)。
[07/01/2020 15:23:58]获取 XXX.XXX.fun的所有记录时出现异常:Aliyun.Acs.Core.Exceptions.ClientException: SDK.WebException : HttpWebRequest WebException occured, the request url is alidns.aliyuncs.com System.Net.WebException: The operation has timed out.
   at System.Net.HttpWebRequest.GetResponse()
   at Aliyun.Acs.Core.Http.HttpResponse.GetResponse(HttpRequest request, Nullable`1 timeout)
   at Aliyun.Acs.Core.DefaultAcsClient.DoAction[T](AcsRequest`1 request, Boolean autoRetry, Int32 maxRetryNumber, String regionId, AlibabaCloudCredentials credentials, Signer signer, Nullable`1 format, List`1 endpoints)
   at Aliyun.Acs.Core.DefaultAcsClient.DoAction[T](AcsRequest`1 request, Boolean autoRetry, Int32 maxRetryNumber, IClientProfile profile)
   at aliyun_ddns.DomainUpdater.GetRecords(String domain)
[07/01/2020 15:23:58]跳过设置域名 XXX.XXX.fun

目前我的域名dns解析记录可以在阿里云手动修改,accesskey 和secret 应该也没有问题,尝试更换别的子用户也不行。。(之前第一次配置的时候,子用户没有开通dns解析权限,似乎会报没有权限的错。。但是现在用新的没有权限的用户的accesskey,报错还是和上文一样)

麻烦大神帮忙看看。

今天貌似不行了

[05/17/2021 14:12:08]从 ipip.net接口 获取公网IPv4失败。

[05/17/2021 14:12:08]从 test-ipv6.com接口 获取公网IPv4失败。

[05/17/2021 14:12:08]从 ip-api.com接口 获取公网IPv4失败。

[05/17/2021 14:12:08]从 淘宝接口 获取公网IPv4失败。

[05/17/2021 14:12:08]从 3322接口 获取公网IPv4失败。

[05/17/2021 14:12:08]获取公网IPv4失败,所有API接口均无法返回IPv4地址。

[05/17/2021 14:12:14]获取home.sojpt.com的所有记录时出现异常:Aliyun.Acs.Core.Exceptions.ClientException: SDK.WebException : HttpWebRequest WebException occured, the request url is alidns.aliyuncs.com System.Net.WebException: The operation has timed out.

at System.Net.HttpWebRequest.GetResponse()

at Aliyun.Acs.Core.Http.HttpResponse.GetResponse(HttpRequest request, Nullable`1 timeout)

at Aliyun.Acs.Core.DefaultAcsClient.DoAction[T](AcsRequest1 request, Boolean autoRetry, Int32 maxRetryNumber, String regionId, AlibabaCloudCredentials credentials, Signer signer, Nullable1 format, List`1 endpoints)

at Aliyun.Acs.Core.DefaultAcsClient.DoAction[T](AcsRequest`1 request, Boolean autoRetry, Int32 maxRetryNumber, IClientProfile profile)

at aliyun_ddns.DomainUpdater.GetRecords(String domain)

运行时出现错误提示,获取xxx的所有记录时出现异常...跳过设置域名

本人使用的qnap,QTS版本为4.4.2.1270.CHN,阿里云里静态输入ipv6地址用网页能进入nas管理页面。使用ContainerStation创建的aliyun-ddns,反复确认设置与要求一致。不明白反馈信息含义,求教大神!
设置:
aliyun-ddns设置1
![aliyun-ddns设置2]https://data.hao4k.cn/forum/202005/20/095239qc59ql7cvvrqxxll.jpg)

问题描述:
aliyun-ddns错误1
一次例外:
5月5日中午突然收到阿里云通知ip地址修改成功的通知,惊奇的登录nas查看,仅有这一次成功获取并更新的记录,期间并没有对nas做任何设置和改变。
5月5日成功的例外

查看日志发现调用ipip接口会出现ip地址为127.0.0.1

以下为日志文件:
[04/22/2022 06:37:16]当前公网IPv4为 127.0.0.1(ipip.net接口)。

我在浏览器里 访问http://myip.ipip.net 时,在一分钟内刷新多次,也出现了本机IP地址为:127.0.0.1的情况

当前 IP:127.0.0.1 来自于:本机地址 本机地址

是否是ipip.net插件问题。
不管是windows浏览器,还是linux的脚本,使用ipip.net 都出现了本机IP地址为127.0.0.1问题。

更新ipv6地址的问题

请问现在可以成功更新ipv6地址了吗 是通过外部接口还是本地网卡 本地网卡的话docker需要做什么设置吗?

获取test.furry.top的所有记录时出现异常

OS:UNRAID - Docker

获取test.furry.top的所有记录时出现异常:System.Xml.XPath.XPathException: Expression must evaluate to a node-set.
   at MS.Internal.Xml.XPath.XPathParser.ParseNodeTest(AstNode qyInput, AxisType axisType, XPathNodeType nodeType)
   at MS.Internal.Xml.XPath.XPathParser.ParseStep(AstNode qyInput)
   at MS.Internal.Xml.XPath.XPathParser.ParseRelativeLocationPath(AstNode qyInput)
   at MS.Internal.Xml.XPath.XPathParser.ParseLocationPath(AstNode qyInput)
   at MS.Internal.Xml.XPath.XPathParser.ParsePathExpr(AstNode qyInput)
   at MS.Internal.Xml.XPath.XPathParser.ParseUnionExpr(AstNode qyInput)
   at MS.Internal.Xml.XPath.XPathParser.ParseMultiplicativeExpr(AstNode qyInput)
   at MS.Internal.Xml.XPath.XPathParser.ParseAdditiveExpr(AstNode qyInput)
   at MS.Internal.Xml.XPath.XPathParser.ParseRelationalExpr(AstNode qyInput)
   at MS.Internal.Xml.XPath.XPathParser.ParseEqualityExpr(AstNode qyInput)
   at MS.Internal.Xml.XPath.XPathParser.ParseAndExpr(AstNode qyInput)
   at MS.Internal.Xml.XPath.XPathParser.ParseOrExpr(AstNode qyInput)
   at MS.Internal.Xml.XPath.XPathParser.ParseExpression(AstNode qyInput)
   at MS.Internal.Xml.XPath.XPathParser.ParseXPathExpression(String xpathExpression)
   at MS.Internal.Xml.XPath.QueryBuilder.Build(String query, Boolean allowVar, Boolean allowKey)
   at MS.Internal.Xml.XPath.QueryBuilder.Build(String query, Boolean& needContext)
   at System.Xml.XPath.XPathExpression.Compile(String xpath, IXmlNamespaceResolver nsResolver)
   at System.Xml.XPath.XPathExpression.Compile(String xpath)
   at System.Xml.XPath.XPathNavigator.Select(String xpath)
   at System.Xml.XmlDocumentXPathExtensions.SelectNodes(XmlNode node, String xpath)
   at Aliyun.Acs.Core.Reader.XmlReader.Read(XmlNode element, String path, Boolean appendPath)
   at Aliyun.Acs.Core.Reader.XmlReader.Read(XmlNode element, String path, Boolean appendPath)
   at Aliyun.Acs.Core.Reader.XmlReader.Read(String xml, String endpoint)
   at Aliyun.Acs.Core.DefaultAcsClient.ReadError[T](AcsRequest`1 request, HttpResponse httpResponse, Nullable`1 format)
   at Aliyun.Acs.Core.DefaultAcsClient.ParseAcsResponse[T](AcsRequest`1 request, HttpResponse httpResponse)
   at aliyun_ddns.DomainUpdater.GetRecords(String domain) in /src/aliyun-ddns/DomainUpdater.cs:line 294

请问这是什么原因?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.