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

弄个 dns 服务器,把域名实时解析到家里的电脑 ip

  •  1
     
  •   zjsxwc ·
    zjsxwc · 2018-05-24 15:42:40 +08:00 · 6298 次点击
    这是一个创建于 2135 天前的主题,其中的信息可能已经有所发展或是发生改变。

    由于家里路由器公网 ip 老是变动,于是有了这个想法,通过公网 dns 服务器,把域名解析到家里的电脑 ip

    https://github.com/zjsxwc/pddns

    29 条回复    2018-05-30 01:19:55 +08:00
    exocell
        1
    exocell  
       2018-05-24 15:46:28 +08:00
    为什么不用花生壳或者 3322?
    qistchan
        2
    qistchan  
       2018-05-24 15:50:26 +08:00
    为啥不考虑 ddns。。。
    Tianao
        3
    Tianao  
       2018-05-24 15:50:54 +08:00 via iPhone
    同 #1 问,已经有现成的轮子:DDNS 了。
    花生壳和 3322 这些成熟的解决方案还有内网穿透。
    logOo
        4
    logOo  
       2018-05-24 15:52:09 +08:00   ❤️ 1
    造轮子需要理由么,要的就是造轮子的快乐。
    zjsxwc
        5
    zjsxwc  
    OP
       2018-05-24 15:52:09 +08:00
    自己写更灵活点吧,php 代码也没几行,半小时搞定的事情
    taobibi
        6
    taobibi  
       2018-05-24 15:57:05 +08:00
    过去成功过,openwrt 固件的路由器+ddns+域名实现的。具体过程我记不太清了,好久之前的事情了。
    大概过程是 namecheap 申请一个域名,你看那个便宜买那个,只要别太小众的后缀就行,我买的是.net 域名。namecheap 提供一个动态域名的 API,你设置好哪里,会生成一个 DDNS 动态解析用的 KEY,把这个 KEY 填写到 openwrt 的 DDNS 程序里面(手动添加 nameserver 地址),然后就好了。路由器每次自动重启变 ip 的时候,会自动注册到动态域名上面,而且动态域名在自己手里不怕被收回。直到后来我们这边运营商不在给公网地址,就 OVER 了
    scofieldpeng
        7
    scofieldpeng  
       2018-05-24 15:59:22 +08:00
    你需要的是 ddns,比如我写的这个 https://github.com/scofieldpeng/dnspod-ddns
    Blazings
        8
    Blazings  
       2018-05-24 19:24:06 +08:00 via Android
    这轮子也是造的太重复了吧
    cwek
        9
    cwek  
       2018-05-24 20:26:15 +08:00
    DDNS,了解一下。
    如果自己弄的话,其实就是用注册商的 API,定时探测自己的外网 IP,然后自己更新上去?
    ahu
        10
    ahu  
       2018-05-24 21:21:08 +08:00
    @zjsxwc 大概看了下代码,也实验了下,没玩转...

    metaData.php 的内容始终是不变的
    <?php
    $fakeDnsIpMap = array (
    '' => '127.0.0.1',
    );

    ?>
    zjsxwc
        11
    zjsxwc  
    OP
       2018-05-24 21:39:41 +08:00 via Android
    @ahu


    你排查下吧,


    在 index.php 里打下 log 看看 query 参数你为什么都是空
    ahu
        12
    ahu  
       2018-05-24 21:49:03 +08:00
    忍不住翻回来回复第二条:

    虽然暂时我还没玩转,但我恰恰觉得楼主的这个轮子造得好!
    给了我一个全新的启发,因为涉及到 dns 这块的确大部分人都会想到是去借助第三方的服务
    然而楼主竟然用了一个四两拨千斤的方式给办了,妙哉!
    zjsxwc
        13
    zjsxwc  
    OP
       2018-05-24 21:52:35 +08:00 via Android
    @taobibi

    我就是穷的没钱买域名,自己 fake 域名 yy 下,只能搞个免费的能跑 php 的公网环境,才有了这个项目
    zro
        14
    zro  
       2018-05-24 22:00:45 +08:00
    shuizhengqi
        15
    shuizhengqi  
       2018-05-24 22:16:14 +08:00
    missdeer
        16
    missdeer  
       2018-05-24 22:29:31 +08:00
    我也来安利一波自己写的 https://github.com/dfordsoft/ddnsclient
    支持 dnspod,cloudflare,cloudxns
    580a388da131
        17
    580a388da131  
       2018-05-24 22:41:11 +08:00
    你为啥不干脆用 API 改域名解析,还要改 DNS 服务器地址,感觉越弄越麻烦。
    580a388da131
        18
    580a388da131  
       2018-05-24 22:44:04 +08:00
    路由器支持刷梅林的话,可以装个 Server 酱,IP 变动也可以自动推送。
    codeyou
        19
    codeyou  
       2018-05-24 22:53:40 +08:00
    请问有免费的内网穿透工具吗?适合没有公网 IP 那种,想用公司的电脑当服务器。。。
    zjsxwc
        20
    zjsxwc  
    OP
       2018-05-24 22:58:50 +08:00 via Android
    @codeyou

    zerotier 了解下
    gengfire
        21
    gengfire  
       2018-05-24 23:25:01 +08:00 via iPhone
    localtunnel
    Acoffice
        22
    Acoffice  
       2018-05-24 23:29:45 +08:00 via Android
    路由器老毛子固件你可以了解下,集成了 ddns,花生壳啊,应有尽有,总有一款适合你,稳定好用。
    bclerdx
        23
    bclerdx  
       2018-05-24 23:37:09 +08:00
    @scofieldpeng 确实是个很好的思路。
    Sanko
        24
    Sanko  
       2018-05-24 23:43:55 +08:00 via Android
    https://github.com/ghosx/qcloud_ddns
    造轮子不需要理由哈哈哈
    Tink
        25
    Tink  
       2018-05-25 01:37:46 +08:00 via iPhone
    这个思路有点意思,但是用来解决的这个问题实在是复杂了
    biabia123456
        26
    biabia123456  
       2018-05-25 09:01:59 +08:00 via iPhone
    造轮子真的不需要理由之 nodejs 版 https://github.com/mrabit/alidns-nodejs
    beijiaoff
        27
    beijiaoff  
       2018-05-25 09:21:56 +08:00
    请问一下,“ 3、手机等想访问家里电脑的设备的 dns 地址添加这个 dns 服务器”,这个 dns 地址是什么呢?你家里的 ip 不是一直在变吗?
    turingmachine
        28
    turingmachine  
       2018-05-25 09:29:55 +08:00 via iPhone
    直接用 ddns,noip 的。这个项目介绍的非常清楚,可以直接部署使用,稳定性不错,不收费。https://github.com/LaoLuMian/DDNS
    johnnie502
        29
    johnnie502  
       2018-05-30 01:19:55 +08:00
    为啥不用 dns.he.net 呢,直接 curl 就能更新 dns,写个一行的 sh 放到 crontab 里面 @reboot 或者每小时更新一次就行了,不用装什么 python 或者 php 或者 nodejs,(doge)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   949 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:25 · PVG 05:25 · LAX 14:25 · JFK 17:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.