关于 ddns 的疑问

2020-02-13 09:36:17 +08:00
 herozzm

正常域名的 dns 执行会被缓存到运营商每级的服务器内,更新域名的 ip 指向,都有一个生效时间,短则几分钟,长的几天,而 ddns ip 发生变化的时候,怎么保证立即生效的?因为家庭宽带一旦发生改变,需要里面体现出来的!

9036 次点击
所在节点    DNS
35 条回复
blogfeng
2020-02-13 09:44:52 +08:00
没有什么好办法。一般就是搞个定时器不停查最新的,发生变化就改。
chenluo0429
2020-02-13 09:48:20 +08:00
跟 TTL 有关的吧,TTL 越短,生效越快。
elfive
2020-02-13 09:54:01 +08:00
1. 能不用域名的时候不用域名

2. 本地或路由器能用 host 的时候用 host
herozzm
2020-02-13 09:57:32 +08:00
@blogfeng 改了之后也不能立马生效啊,这是头大的问题
blueboyggh
2020-02-13 10:00:34 +08:00
没啥好办法,你告诉 dns 服务商更改后的 ip 以后,只能等待各个 dns 去刷新,几秒钟,几分钟甚至几十分钟都有可能,dns 刷新也不是你能控制的
RainyH2O
2020-02-13 10:03:04 +08:00
TTL 设置短一点不就得了么,缓存服务器记录超时失效了,这个时候你再一改不就得直接请求权威服务器了
herozzm
2020-02-13 10:06:16 +08:00
@RainyH2O 运营商都遵守 TTL 超时时间吗? 就怕你这儿设置了很短,运营商那变老不刷新啊,用户开网站就是 404
afpro
2020-02-13 10:35:55 +08:00
@herozzm 假设网站还对可用性有要求还是不要用 ddns 的好 实在不行搞一台机器在外网做反代?
herozzm
2020-02-13 10:44:37 +08:00
@afpro #8 恩 目前就是这样做的 只是外部 vps 带宽和流量有限
JamesR
2020-02-13 10:49:49 +08:00
我是每天四点半自动重拨下,如果获得新 IP,早上起来已经全球服务器广播好了。
geekvcn
2020-02-13 10:57:59 +08:00
@herozzm 可用性要求高,又舍不得花钱的小厂小作坊或者个人用户,建议还是加钱,加钱最少的就是买高级版域名解析服务,最短可以 1 分钟 TTL,然后配合每天早上 5 点低谷期自动重新获取 ip 比如重启路由器,通过解析服务商 api 主动刷新 dns 解析,别无他法。另外建议想好好跑业务,就老老实实租服务器,你把时间花在这种无聊的事情上和因此带来的一系列问题上,你同样的时间多挣点钱不香吗
geekvcn
2020-02-13 11:01:47 +08:00
@herozzm 另外主流运营商 DNS 和 114 之类的第三方 DNS 解析没必要给你的域名解析提高 ttl,这样变相降低自己服务的可靠性,你用户半年不刷新缓存是因为他们本地的缓存策略,比如 dnsmasq 之类的
geekvcn
2020-02-13 11:03:25 +08:00
你无法控制用户的 dns 缓存,所以老老实实加钱,你的问题无解,只能缓解,最佳方案就是我上面给你的
LU35
2020-02-13 11:12:49 +08:00
@geekvcn 现在使用的 cloudflare 管理域名,并使用脚本做 ddns 更新,为何切换 ip 记录后用其他不同网络设备测试大概也就 1 分钟不到记录就切换了。
locoz
2020-02-13 11:15:32 +08:00
缓存问题基本无解,你可以用 DNS over HTTP 或 HTTP DNS 来变相解决自己客户端这边的缓存问题,但对别人就没办法了。

还有一个对别人有效的办法就是自建 DNS,但是首先你要有一台能开端口的服务器。

或者如果你对域名经常变动无感的话,可以选择每次更换 IP 都随机换一个域名去更新,这样也能避开下级 DNS 的缓存。
locoz
2020-02-13 11:17:45 +08:00
@RainyH2O #6 以阿里云为例,TTL 即使设置到 1,它也不会真的按 1 来。之前提工单,人家说如果设置太低的话,后台会默认提高一些 TTL。(也不知道给个这个选项是干嘛…
locoz
2020-02-13 11:19:29 +08:00
@locoz #16 补充:单位是秒,1 秒。
Debuger94
2020-02-13 11:22:14 +08:00
既然用家庭宽带来做域名解析就要承担相应的风险,用户量大或者做实时在线服务的话用家庭宽带肯定不行的
LU35
2020-02-13 11:22:26 +08:00
@locoz 一般云服务器的 ttl 设置 1 表示自动
gqbre
2020-02-13 11:26:00 +08:00
很快的,不放心的话建议半夜更换

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/644207

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX