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

关于把子域名分配给家里的电脑

  •  
  •   geeti · 2015-02-06 06:26:21 +08:00 · 6240 次点击
    这是一个创建于 3380 天前的主题,其中的信息可能已经有所发展或是发生改变。
    家里的IP貌似隔几天换一次,不知道有什么正规的办法?
    自己的办法是子域名解析转到自己搭设的nameserver,在这个server上开一个http服务,家里的电脑设置cronjob,发送http请求,server上记录ip。
    感觉这么做稍微山寨了点。
    第 1 条附言  ·  2015-03-09 22:34:41 +08:00
    后来用了dnspod,通过API每15分钟跟新一次。挺好用
    36 条回复    2015-02-07 02:44:08 +08:00
    uuair
        1
    uuair  
       2015-02-06 06:31:19 +08:00 via iPhone
    3322.org
    绑定动态域名
    ryd994
        2
    ryd994  
       2015-02-06 06:38:27 +08:00
    afraiddns
    sophymax
        3
    sophymax  
       2015-02-06 06:52:22 +08:00 via iPad
    解决动态域名的问题之后,还有端口的问题,家庭用户的80端口一般是被运营商封死的
    loading
        4
    loading  
       2015-02-06 06:53:07 +08:00 via Android
    花生壳
    luo362722353
        5
    luo362722353  
       2015-02-06 06:58:09 +08:00 via iPhone
    ddns呀,现成的…
    Slienc7
        6
    Slienc7  
       2015-02-06 07:45:35 +08:00 via Android
    一般的家用路由器都自带3322,花生壳之类的动态域名服务,注册个账号设置下就ok,再把自己的域名cname到花生壳或3322的域名上
    lifanxi
        7
    lifanxi  
       2015-02-06 07:55:00 +08:00 via Android
    我用DNSPod解析我的域名,然后通过它的API定期把当前的IP绑上去。也就是说把你的HTTP请求改成一个对DNSPod API的一个请求就可以了。
    Eleutherios
        8
    Eleutherios  
       2015-02-06 07:59:34 +08:00
    之前在国内设置DDNS, 只有DNSPod.cn能解析到我的真实IP, 其他花生壳什么的, 都返回一个外层的中继IP. 不过DNSPod.cn设置起来有些麻烦.

    国外的话, 目前用的HE.NET的DDNS.
    caixiexin
        9
    caixiexin  
       2015-02-06 08:24:22 +08:00
    动态域名服务,可以绑在路由器上什么的,我是运行在树莓派上。国内的花生壳还蛮好用的,免费送一个域名
    或者换种思路,写个脚本定时扫描家里的真实ip,发现变动后给你自己发邮件。
    ericliuhe
        10
    ericliuhe  
       2015-02-06 08:50:54 +08:00 via iPhone
    动态域名,有很多服务商啊,比如花生壳之类的,可以去了解一下。原理是把域名的解析交给服务商的DNS,再在你的局域网内装个服务商的Agent,这样每次IP变化都会自动上报改解析。
    leassy
        11
    leassy  
       2015-02-06 08:58:48 +08:00
    不用啊,自己写个程序上报IP,然后你用DNSPOD的API修改记录就可以了
    chenhaifeng
        12
    chenhaifeng  
       2015-02-06 09:09:06 +08:00
    果断买vps吧
    huzheyi
        13
    huzheyi  
       2015-02-06 09:10:58 +08:00 via Android
    一直都用he.net的免费dns服务,很方便,很稳定
    chinni
        14
    chinni  
       2015-02-06 09:11:09 +08:00   ❤️ 1
    如果你内网有支持curl的设备.直接用 dns4e的服务吧. 很方便 或者 用3322.org的 这里有一个脚本
    curl -s -L "http://user:[email protected]/dyndns/update?system=dyndns&hostname=abc.3322.org&wildcard=OFF&mx=&backmx=NO"
    就可以了
    ys0290
        15
    ys0290  
       2015-02-06 09:19:32 +08:00 via iPhone
    用dnspod API修改,我脚着思路都是那个思路,自己建的有效也就没什么山寨不山寨的
    lanceliao
        16
    lanceliao  
       2015-02-06 09:31:50 +08:00   ❤️ 1
    推荐一个神器叫ngrok,可以把局域网的服务映射到外网,只要访问ngrok给你的固定域名就可以访问局域网的服务: https://ngrok.com/
    shuax
        17
    shuax  
       2015-02-06 09:43:31 +08:00
    DNSPod Lite客户端 可以动态解析域名到你家里的IP上
    invite
        18
    invite  
       2015-02-06 09:57:49 +08:00
    @lanceliao 打不开, 这个要客户端么? 不需要配合路由器设置?所有流量都经过它转发?
    ryd994
        19
    ryd994  
       2015-02-06 09:58:36 +08:00 via Android
    @lanceliao 反向代理而已。有个VPS就能做。速度捉鸡
    lj0014
        20
    lj0014  
       2015-02-06 10:01:20 +08:00   ❤️ 1
    dnspod 就行,电脑上定时任务wget,路由器上跑更好
    wget "https://dnsapi.cn/Record.Ddns" --post-data="login_email=xxx&login_password=xxx&domain_id=xxx&record_id=xxx&sub_domain=xxx&record_line=默认"
    把上面的xxx替换成你自己的就行
    abscon
        21
    abscon  
       2015-02-06 10:25:12 +08:00
    无所谓山寨不山寨,能用就行。已经在公网上架设一个域名服务器了,没必要用第三方的服务。

    使用动态IP的话,当家里电脑IP变化时主动给server发消息就行了,至于协议用HTTP还是其他什么的无所谓,只要能用就行。如果作(zuo)一点,可以考虑加密通信。不过我猜你可能想得到类似下面这句话的回答:

    **如果用的是 BIND,那么使用 nsupdate 更新域名**

    --------------------------------------------------------
    我倒是想了解一下 @geeti 的原始需求。为何要分配一个子域名给家里的电脑?
    已经在公网上架设一个域名服务器了,为何不在互联网上再架设一个服务器,一定要用家里的电脑吗?如何保证可访问性?
    9hills
        22
    9hills  
       2015-02-06 10:27:25 +08:00 via iPhone
    你这个思路就是标准思路……只是实现问题
    mcone
        23
    mcone  
       2015-02-06 10:40:15 +08:00
    我之前发的 关于ddns 的/t/149780
    metalbug
        24
    metalbug  
       2015-02-06 11:05:25 +08:00
    一直用DNSPOD
    Agromania
        25
    Agromania  
       2015-02-06 11:08:51 +08:00
    如果有一天 电信不给你公网IP了呢?
    geeti
        26
    geeti  
    OP
       2015-02-06 12:11:23 +08:00
    @abscon 原因比较奇葩。在公司里时候忽然想下载个美剧回家看,就需要登到家里的电脑上。。
    abscon
        27
    abscon  
       2015-02-06 12:57:33 +08:00 via iPhone
    @geeti 我倒。一个 X-Y problem

    你需要的只是 Teamviewer之类的远程控制软件。或者name server上起一个VPN,用内网ip访问家里的电脑即可。不面向公众的话无需动态互联网ip
    alect
        28
    alect  
       2015-02-06 13:52:49 +08:00
    @geeti 还是装个teamviewer吧!
    shenng10
        29
    shenng10  
       2015-02-06 13:59:04 +08:00
    teamviewer 正解
    xenme
        30
    xenme  
       2015-02-06 14:11:50 +08:00
    CNAME+DDNS完全解决。
    lemontv
        31
    lemontv  
       2015-02-06 14:14:29 +08:00
    dnspod 有动态绑定域名的api
    lanceliao
        32
    lanceliao  
       2015-02-06 14:52:51 +08:00
    mark一下,大部分朋友第一想法就是直接提供解决方案,只有@abscon 朋友问了楼主的需求,思维独特
    mawenjian
        33
    mawenjian  
       2015-02-06 16:42:05 +08:00 via iPhone
    vpn+反向代理。买个带独立ip的vps,用vpn+反代,不管家里有没有公网ip,ip变不变,都没有问题。
    jkeylu
        34
    jkeylu  
       2015-02-06 18:20:03 +08:00
    家里没有公网ip,现在只能用 ssh 与外网的 vps 建立隧道,远程回家没什么问题
    konakona
        35
    konakona  
       2015-02-06 19:00:37 +08:00
    傻孩子,用路由器設啊!
    一般DMZ功能就可以滿足了。
    fuxkcsdn
        36
    fuxkcsdn  
       2015-02-07 02:44:08 +08:00
    其实如果你已经有服务器了,完全没必要再去设置什么NS
    你直接让家里电脑crontab定时访问
    http://yourdomain.com/ThisIsMyHomeIP
    然后你要知道家里的IP时,直接到服务器去查看http的log,这个URL只要不存在,肯定就是404了,一般的爬虫也不会去爬这样的URL,看log时搜索起来速度也快

    如果坚持要设置NS的话,那可以参考openwrt里的DDNS脚本,把访问的URL设置成类似这样的
    http://yourdomain.com/update?domains=[DOMAIN]&token=[PASSWORD]&ip=[IP]
    然后添加到openwrt里的 /usr/lib/ddns/services 配置文件里就可以了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3221 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 12:45 · PVG 20:45 · LAX 05:45 · JFK 08:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.