weixin_39621185
weixin_39621185
2020-12-09 05:58

“无法获取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为例:

shell
systemctl restart network
systemctl restart docker

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

该提问来源于开源项目:sanjusss/aliyun-ddns

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答

  • weixin_39638048 weixin_39638048 5月前

    大神您好,我docker进入ddns容器后 curl https://alidns.aliyuncs.com 有返回内容,但仍然出现了issue #28 一模一样的错误(设置也一样)。与此同时,我使用路由器padavan固件中的Aliddns更新阿里云域名却没有问题,不知问题出在了哪儿。

    贴上curl的结果: <?xml version='1.0' encoding='UTF-8'?><Error><RequestId>7D581B86-5697-48E1-B205-191F4547D469</RequestId><HostId>alidns.aliyuncs.com</HostId><Code>InvalidVersion</Code><Message>Specified parameter Version is not valid.</Message><Recommend><![CDATA[https://error-center.aliyun.com/status/search?Keyword=InvalidVersion&source=PopGw]]></Recommend></Error>

    点赞 评论 复制链接分享
  • weixin_39621185 weixin_39621185 5月前

    大神您好,我docker进入ddns容器后 curl https://alidns.aliyuncs.com 有返回内容,但仍然出现了issue #28 一模一样的错误(设置也一样)。与此同时,我使用路由器padavan固件中的Aliddns更新阿里云域名却没有问题,不知问题出在了哪儿。

    贴上curl的结果: <?xml version='1.0' encoding='UTF-8'?><Error><RequestId>7D581B86-5697-48E1-B205-191F4547D469</RequestId><HostId>alidns.aliyuncs.com</HostId><Code>InvalidVersion</Code><Message>Specified parameter Version is not valid.</Message><Recommend><![CDATA[https://error-center.aliyun.com/status/search?Keyword=InvalidVersion&source=PopGw]]></Recommend></Error>

    错误内容是这个吗?

    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()

    点赞 评论 复制链接分享
  • weixin_39638048 weixin_39638048 5月前

    大神您好,我docker进入ddns容器后 curl https://alidns.aliyuncs.com 有返回内容,但仍然出现了issue #28 一模一样的错误(设置也一样)。与此同时,我使用路由器padavan固件中的Aliddns更新阿里云域名却没有问题,不知问题出在了哪儿。 贴上curl的结果: <?xml version='1.0' encoding='UTF-8'?><Error><RequestId>7D581B86-5697-48E1-B205-191F4547D469</RequestId><HostId>alidns.aliyuncs.com</HostId><Code>InvalidVersion</Code><Message>Specified parameter Version is not valid.</Message><Recommend><![CDATA[https://error-center.aliyun.com/status/search?Keyword=InvalidVersion&source=PopGw]]></Recommend></Error>

    错误内容是这个吗?

    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()

    是的,日志如下:

    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.DefaultAcsClient.DoActionT, at Aliyun.Acs.Core.DefaultAcsClient.DoActionT, at aliyun_ddns.DomainUpdater.GetRecords(String domain)

    点赞 评论 复制链接分享
  • weixin_39621185 weixin_39621185 5月前

    你用的是什么版本的镜像? 有试过重启NAS吗?

    点赞 评论 复制链接分享
  • weixin_39638048 weixin_39638048 5月前

    试过重启,最近几天出现的问题,尝试pull了最新的docker镜像,也还是这样。实在没想明白到底是哪出了问题

    点赞 评论 复制链接分享
  • weixin_39621185 weixin_39621185 5月前

    试过重启,最近几天出现的问题,尝试pull了最新的docker镜像,也还是这样。实在没想明白到底是哪出了问题

    System.Net.WebException: The operation has timed out.这个异常只和容器没有联网有关系。但你已经测过容器内可以访问网络,确实很奇怪。你是怎么进入容器的?

    点赞 评论 复制链接分享
  • weixin_39638048 weixin_39638048 5月前

    试过重启,最近几天出现的问题,尝试pull了最新的docker镜像,也还是这样。实在没想明白到底是哪出了问题

    System.Net.WebException: The operation has timed out.这个异常只和容器没有联网有关系。但你已经测过容器内可以访问网络,确实很奇怪。你是怎么进入容器的?

    问题解决了,应该是本地运营商的DNS问题,换成谷歌的DNS就好了~

    点赞 评论 复制链接分享

相关推荐