V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
herozzm
V2EX  ›  DNS

关于 ddns 的疑问

  •  
  •   herozzm · 2020-02-13 09:36:17 +08:00 · 9036 次点击
    这是一个创建于 1729 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  2020-02-13 11:32:31 +08:00
    解决方案:租用了一个 vps,在上面弄了接收路由器上报 ip,然后用 nginx 做反向代理实现
    35 条回复    2020-02-15 22:38:47 +08:00
    blogfeng
        1
    blogfeng  
       2020-02-13 09:44:52 +08:00 via Android
    没有什么好办法。一般就是搞个定时器不停查最新的,发生变化就改。
    chenluo0429
        2
    chenluo0429  
       2020-02-13 09:48:20 +08:00
    跟 TTL 有关的吧,TTL 越短,生效越快。
    elfive
        3
    elfive  
       2020-02-13 09:54:01 +08:00 via iPhone
    1. 能不用域名的时候不用域名

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

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

    或者如果你对域名经常变动无感的话,可以选择每次更换 IP 都随机换一个域名去更新,这样也能避开下级 DNS 的缓存。
    locoz
        16
    locoz  
       2020-02-13 11:17:45 +08:00 via Android
    @RainyH2O #6 以阿里云为例,TTL 即使设置到 1,它也不会真的按 1 来。之前提工单,人家说如果设置太低的话,后台会默认提高一些 TTL。(也不知道给个这个选项是干嘛…
    locoz
        17
    locoz  
       2020-02-13 11:19:29 +08:00 via Android
    @locoz #16 补充:单位是秒,1 秒。
    Debuger94
        18
    Debuger94  
       2020-02-13 11:22:14 +08:00
    既然用家庭宽带来做域名解析就要承担相应的风险,用户量大或者做实时在线服务的话用家庭宽带肯定不行的
    LU35
        19
    LU35  
       2020-02-13 11:22:26 +08:00 via Android
    @locoz 一般云服务器的 ttl 设置 1 表示自动
    gqbre
        20
    gqbre  
       2020-02-13 11:26:00 +08:00
    很快的,不放心的话建议半夜更换
    tankren
        21
    tankren  
       2020-02-13 11:27:49 +08:00
    家宽哪来的用户?????
    herozzm
        22
    herozzm  
    OP
       2020-02-13 11:31:44 +08:00
    @gqbre
    @JamesR
    经过我测试,公网 ip 并不能完全自己控制切换,有个时候,公网 ip 突然就不能外部访问了,重启才行,并不是自己控制重播
    geekvcn
        23
    geekvcn  
       2020-02-13 11:39:20 +08:00 via iPhone
    你自己设备
    geekvcn
        24
    geekvcn  
       2020-02-13 11:40:46 +08:00 via iPhone
    @LU35 你自己测试的设备都没设置 dns 缓存罢了
    geekvcn
        25
    geekvcn  
       2020-02-13 11:41:49 +08:00 via iPhone
    @herozzm 一般运营商 48 小时断线重连,你在 48 小时内主动重拨不就行了
    CEBBCAT
        26
    CEBBCAT  
       2020-02-13 11:59:49 +08:00 via Android
    家宽不是查得很严吗?架网站有被掐网线的案例
    mattx
        27
    mattx  
       2020-02-13 12:03:52 +08:00 via iPhone
    自己小打小闹可以,上正常的业务会有很多问题。
    locoz
        28
    locoz  
       2020-02-13 15:37:10 +08:00
    @LU35 #19 阿里云那个 DNS 解析设置里写的是“1 秒”,而不是“自动”。
    liukanshan
        29
    liukanshan  
       2020-02-13 16:12:32 +08:00
    你这个转发方案带宽跑不满不说 成本也上去了 我使用 ddns 有好几年了 真正在使用而 dns 更新延迟 很少遇到 你要先确认下这个需求是不是伪需求 ddns 到目前为止 针对家庭私有云 是最完美的方案 其次是 p2p 再其次是转发。
    txydhr
        30
    txydhr  
       2020-02-13 17:11:24 +08:00 via iPhone
    10 分钟检查一次,ttl 设置成 10 分钟,够用了。
    newmlp
        31
    newmlp  
       2020-02-13 17:21:20 +08:00
    hook 掉 dns 查询,然后自己实现
    LU35
        32
    LU35  
       2020-02-13 19:45:41 +08:00 via Android
    @locoz 恩,仔细看了阿里云 dns 的网站帮助,企业旗舰版可以设置 1 秒、但是和你说的并不一样 ,他的确生效时间为 1 秒。
    locoz
        33
    locoz  
       2020-02-13 19:57:30 +08:00
    @LU35 #32 没啊,我即使去请求阿里云自己的 DNS,也还是会有缓存问题,需要等待 1-10 分钟不等。之前工单那人也是跟我说建议设成分钟级的。难道说现在改了?
    kljsandjb
        34
    kljsandjb  
       2020-02-14 04:56:23 +08:00 via iPhone
    INTEL2333
        35
    INTEL2333  
       2020-02-15 22:38:47 +08:00 via Android
    没办法,没生效但是网络变化了只能靠路由本身回报,你试试弄个通过邮件或者 WeChat 给你发变化信息咯,像梅林的 server 酱插件一样
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1330 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 23:32 · PVG 07:32 · LAX 15:32 · JFK 18:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.