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

局域网内域名方案求解

  •  
  •   daijinming · 2019-02-27 10:48:00 +08:00 · 18027 次点击
    这是一个创建于 2099 天前的主题,其中的信息可能已经有所发展或是发生改变。

    局域网内使用域名进行测试或生产环境下使用,可以采用修改 PC 机的 hosts 文件,那手机端,pad 端怎么办,数量多,又不知道怎么改 hosts 文件。不想使用局域网内网 IP+端口号(非 80 端口)的方案,不知道大家有什么好思路吗

    69 条回复    2022-01-18 14:44:50 +08:00
    leo108
        1
    leo108  
       2019-02-27 10:48:59 +08:00
    用真域名指向内网 IP 不就行了
    NetworkManager
        2
    NetworkManager  
       2019-02-27 10:49:46 +08:00
    内网 DNS
    julyclyde
        3
    julyclyde  
       2019-02-27 10:51:35 +08:00   ❤️ 6
    主机名.local
    mDNS 机制的域名

    “现代”操作系统都支持的
    hackxing
        4
    hackxing  
       2019-02-27 10:51:59 +08:00
    移动端连接 WiFi,设置代理,应该可以吧!(没弄过,瞎说的~)
    daijinming
        5
    daijinming  
    OP
       2019-02-27 10:52:19 +08:00
    @leo108 内网使用,域名还需要备案吗
    qiaoyurensheng
        6
    qiaoyurensheng  
       2019-02-27 10:52:26 +08:00 via Android
    域名解析服务中 A 记录直接指向内网 ip
    anguiao
        7
    anguiao  
       2019-02-27 10:53:38 +08:00
    内网使用你甚至不用申请域名,只要在内网设一个 DNS,想怎么解析就怎么解析。
    leo108
        8
    leo108  
       2019-02-27 10:53:46 +08:00
    @daijinming 不需要
    ThirdFlame
        9
    ThirdFlame  
       2019-02-27 10:53:50 +08:00
    @daijinming 不需要备案。 随便申请个域名,做 A 记录解析即可。
    但是就算用域名 ,在使用非 80 /443 端口时,仍然需要使用端口号的
    Laynooor
        10
    Laynooor  
       2019-02-27 10:54:34 +08:00 via Android
    路由器直接设置 DNS 解析
    baojiweicn2
        11
    baojiweicn2  
       2019-02-27 10:55:04 +08:00 via Android
    去改路由器的 hosts
    daijinming
        12
    daijinming  
    OP
       2019-02-27 10:55:31 +08:00
    @julyclyde 朋友这个方式超赞
    ysc3839
        13
    ysc3839  
       2019-02-27 10:55:36 +08:00 via Android
    内网有 DNS 服务器的话可以直接配置
    augustpluscn
        14
    augustpluscn  
       2019-02-27 10:56:52 +08:00
    很多路由都能直接设定(或者装插件),我用过下面两个

    k2p 刷的官改
    华硕 1900p 刷了梅林
    Laynooor
        15
    Laynooor  
       2019-02-27 10:57:19 +08:00
    tuding
        16
    tuding  
       2019-02-27 10:57:21 +08:00
    改路由器 hosts 是最简单的, 其次是在内网搭个 DNS 服务器
    ZombieMisaka
        17
    ZombieMisaka  
       2019-02-27 11:01:28 +08:00   ❤️ 13
    xip.io 例如 1.1.1.1.xip.io 解析到 1.1.1.1
    daijinming
        18
    daijinming  
    OP
       2019-02-27 11:04:08 +08:00
    @ZombieMisaka 这个方案之前不知道在哪本书中介绍过,之前想不起来了,感谢
    Atukey
        19
    Atukey  
       2019-02-27 11:06:47 +08:00
    @ZombieMisaka
    这个厉害了
    phxsuns
        20
    phxsuns  
       2019-02-27 11:09:27 +08:00
    随便买个真域名即可。其他操作和生产环境都一样了。
    真域名也是能指向内网 IP 的。
    Michaelssss
        21
    Michaelssss  
       2019-02-27 11:10:32 +08:00
    ...随便搭个 DNS 服务器。。
    mytry
        22
    mytry  
       2019-02-27 11:11:13 +08:00
    @ZombieMisaka 还有 7f000001.c0a80001.rbndr.us ,可以解析到 127.0.0.1- 192.168.0.1。
    ZombieMisaka
        23
    ZombieMisaka  
       2019-02-27 11:20:16 +08:00
    @daijinming #18 其实我还是建议买个真域名的,证书什么的搞起来也更方便
    bwangel
        24
    bwangel  
       2019-02-27 11:25:43 +08:00
    https://www.bwangel.me/2017/03/27/%E6%B5%81%E6%B0%B4%E8%B4%A6%E5%88%A9%E7%94%A8%E9%97%B2%E7%BD%AE%E7%AC%94%E8%AE%B0%E6%9C%AC%E6%90%AD%E5%BB%BA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%BC%80%E5%8F%91%E6%9C%8D%E5%8A%A1%E5%99%A8/#%E9%85%8D%E7%BD%AEdns

    我之前做过类似的事情,利用一台闲置的的笔记本,Ubuntu + dnsmasq 搭建了一个 DNS 服务器,然后再设置路由器的 DHCP 下发这个 DNS 服务器就好。
    irainsoft
        25
    irainsoft  
       2019-02-27 11:26:17 +08:00   ❤️ 1
    局域网内建个 DNS 服务器或者解析直接设置为内网 IP,多简单的事情...
    nfroot
        26
    nfroot  
       2019-02-27 11:26:39 +08:00
    @ZombieMisaka
    @mytry

    那么问题出来了,既然域名部分已经有完整部分 IP,且这个域名的 A 记录是不会改变的。。。。。。
    那为什么不直接用 IP 呢?

    莫非是为了使用 ssl 证书?
    hjc4869
        27
    hjc4869  
       2019-02-27 11:31:43 +08:00 via iPhone
    建个 Active Directory
    Cbdy
        28
    Cbdy  
       2019-02-27 11:51:47 +08:00 via Android
    路由器支持的
    AngryPanda
        29
    AngryPanda  
       2019-02-27 11:58:12 +08:00 via Android
    内网 dns 服务器,路由器就可以;

    mDNS
    CodeWind
        30
    CodeWind  
       2019-02-27 12:04:32 +08:00 via Android
    dns-mapping
    dreamusername
        31
    dreamusername  
       2019-02-27 12:15:29 +08:00
    内网 DNS 服务器可以解决
    kaneg
        32
    kaneg  
       2019-02-27 12:45:36 +08:00 via iPhone
    买个便宜的真域名,比如.work 之类的,5 年才 60 多块
    guan123
        33
    guan123  
       2019-02-27 13:09:42 +08:00
    dnsmasq
    loading
        34
    loading  
       2019-02-27 13:14:29 +08:00 via Android
    求一个轻量级的 dns 服务软件,windows 用。
    loading
        35
    loading  
       2019-02-27 13:20:19 +08:00 via Android
    似乎找到了:Simple DNS Plus
    shede333
        36
    shede333  
       2019-02-27 14:18:40 +08:00
    动态域名解析,我也在用,可以看看这个教程: http://www.pubyun.com/wiki/%E5%B8%AE%E5%8A%A9:api
    ZombieMisaka
        37
    ZombieMisaka  
       2019-02-27 14:23:15 +08:00
    @nfroot #26 https,nginx 反代等等,只有 ip 和端口很麻烦
    dishuibaby
        38
    dishuibaby  
       2019-02-27 14:32:27 +08:00
    路由器绑定 host
    datou
        39
    datou  
       2019-02-27 14:34:10 +08:00
    路由器上跑 dnsmasq
    nfroot
        40
    nfroot  
       2019-02-27 14:49:12 +08:00
    @ZombieMisaka 你说的这句话我不明白,能具体一点么,谢谢,因为在我看来,用了你们俩推荐的域名,也只是相当于用 ip+别人的域名,那为啥不直接用 IP 呢,感觉没啥意义啊。。域名的话倒是有一个好处,可以上 ssl 证书。其他都一样吧。
    maojy1989
        41
    maojy1989  
       2019-02-27 14:58:03 +08:00
    https://github.com/AdguardTeam/AdGuardHome
    这个就挺好的,虽说主要用途是屏蔽广告域名,但是可以不使用这个功能,只用自定义规则列表,相当于一份 hosts,局域网里的机器 DNS 改成运行这个软件的服务器 IP 就可以了,这个软件支持 web 管理,很方便,解压即可运行,并且支持 DHCP 功能
    runntuu
        42
    runntuu  
       2019-02-27 15:03:37 +08:00
    内网没有 DNS 服务器吗?没有就搭一个 DNS 服务器,
    ZombieMisaka
        43
    ZombieMisaka  
       2019-02-27 15:11:03 +08:00
    @nfroot #40 如果你有一台对外的服务器,这台服务器上跑着 ABC 三个服务,你要怎么对外暴露这三个服务,只用 ip+端口就是 1.1.1.1:80,1.1.1.1:81,1.1.1.1:82,如果你有域名的话就可以分别用三个域名,共用 80 端口. 例如你可以在 nexus 上用 docker.1.1.1.1.xip.io 做 docker 的库,用 maven.1.1.1.1.xip.io 做 maven 的库.
    再例如有些服务比如 gitlab,本身自带了 nginx,如果你想用里面的 mattermost 等功能的时候,必须提供一个域名用于反代
    aver4vex
        44
    aver4vex  
       2019-02-27 15:13:47 +08:00
    dns
    nfroot
        45
    nfroot  
       2019-02-27 15:16:25 +08:00
    @ZombieMisaka 你这样说就明白了,因为看你的的回复是理解不出这一层意思的。。。。。而 mytry 推荐的则不能用,所以才一脸懵逼,谢谢了。
    nfroot
        46
    nfroot  
       2019-02-27 15:44:30 +08:00
    @julyclyde 这就郁闷了。。。我去年建了个域控,就是用的这个后缀,我晕了,不知道会不会有什么影响。。
    rootit
        47
    rootit  
       2019-02-27 15:46:51 +08:00
    路由器 dns 指向 dnsmasq 正解
    julyclyde
        48
    julyclyde  
       2019-02-27 15:56:15 +08:00   ❤️ 1
    @nfroot 还是建议参考一下 RFC 标准哦; local 是给 mDNS 预留的
    不过域控制器一旦建成,牵一发动全身啊,唉
    nfroot
        49
    nfroot  
       2019-02-27 16:13:11 +08:00
    @julyclyde 当时就是想了一下,好像这个后缀没被用到,也不太可能被用到,就算是用到了,估计也影响不了啥玩意(毕竟不可能用到同样域名的服务,已经足够偏了),结果没想到还是用在同一个广播域里的,这就有点蛋疼了。。。反正目前用着也没影响,目测没人恶作剧的话,应该是不会产生影响的。。。。目前 2016 的服务器也是有的,所以应该是没产生影响了。。。目前只是几个服务器用起来了域控,没在企业里推行,没事的。至于以后的人骂这个前辈傻逼,也是听不到了,反正没影响被骂的可能性应该很小。哈哈哈不想改了!用了域控就是要方便,麻烦的事情不想干了!
    flyingfz
        50
    flyingfz  
       2019-02-27 16:16:28 +08:00
    我给个 另类的方案

    部署一个 consul,consul 要做一些配置, 例如运行在 53 端口,具体要解析的域名等等 ,这些要去查看 consul 的文档。
    路由器上 ,在 dhcp 配置中,把 dns 服务器地址 配置成 部署 了 consul 的机器的 ip

    完事。

    之所以说另类, 因为 consul 的目的本身不是用做 dns 服务器, 而是用于微服务的服务发现,只是可以用 dns 来做服务发现。
    不仅解决了你的需求, 还为 将来做 微服务 做了准备。
    keventseng
        51
    keventseng  
       2019-02-27 16:49:16 +08:00
    改路由器的 hosts
    jadeity
        52
    jadeity  
       2019-02-27 17:06:53 +08:00
    自己内网用,路由器自己解析啊。
    jousca
        53
    jousca  
       2019-02-27 21:54:59 +08:00
    @loading windows server 自带的 DNS 服务器就很好用。
    zhaohanqing
        54
    zhaohanqing  
       2019-02-27 23:43:30 +08:00 via Android
    改路由器里的 Hosts 即可,很多路由器都会默认给自己设置一个内网域名,就是这样实现的
    mingl0280
        55
    mingl0280  
       2019-02-28 01:30:46 +08:00
    请自己加一台 DNS 服务器,然后配置一下 Forward Lookup Zone,域名劫持啥的都能搞,我在集成实验室里部署了一台这个玩意儿,用来做 AD 域解析,同时也把 ubuntu 和 debian 的更新源解析到内网了,这样内网的机器可以在不修改 sources.list 的情况下直接从内网源服务器更新……
    Arxz
        56
    Arxz  
       2019-02-28 07:42:04 +08:00
    路由器里 NAT 设置, 关键词: Hairpin NAT
    bdnet
        57
    bdnet  
       2019-02-28 08:16:53 +08:00
    综合起来还是 内建 DNS 靠谱

    另实现方式,买个域名,解析到内网 IP 也是可以的。但不建议这么做,域名和解析的 IP 地址会暴露(不安全
    RH
        58
    RH  
       2019-02-28 08:51:59 +08:00   ❤️ 1
    最近也在弄这个,自建的一些开源服务公司内部使用,之前都是自建 DNS,自定义服务内脏域名。
    但是有些服务需要走 https,否则比较折腾。所以 9 元买了个 top 域名签证书用,可以不用公网解析,继续使用内网解析,然后证书可以免费使用 let ’ s encrypt 的 dns01 签发。
    wanwaneryide
        59
    wanwaneryide  
       2019-02-28 09:12:34 +08:00
    路由器里面首选配置本地的 dns 就行了,自动分配 ip 的机器都可以访问内网域名了
    sm0king
        60
    sm0king  
       2019-02-28 09:20:22 +08:00
    公司级别内网 DNS 楼上已经说的很清楚了。作为一个公司要管理 DNS 比较麻烦,而且不能随随便便,想怎么改解析怎么改解析。
    还可以用 fiddler 来做,fiddle 设置里可以设置 DNS,随时改,想怎么改怎么改。
    wolfie
        61
    wolfie  
       2019-02-28 10:05:28 +08:00
    直接修改对应网关的 host 不行吗。
    huskar
        62
    huskar  
       2019-02-28 10:37:09 +08:00
    自己搭一个 DNS 服务,然后把 dhcp 的 dns 服务器设置成自设的服务器即可。
    需要自定义什么域名就改 DNS 服务器所在机器的 hosts 文件,或者直接改 DNS 配置。


    @ZombieMisaka 这个方案有啥用啊……
    ZombieMisaka
        63
    ZombieMisaka  
       2019-02-28 10:43:42 +08:00
    @huskar #62 要是公司给你分的几台机器呢,你没权限动 dns 啊,你也没法保证别人的机器没自定义 dns,总是有这种场景的
    abcfyk
        64
    abcfyk  
       2019-02-28 10:50:39 +08:00
    @ZombieMisaka 比如公司分了 test1,test2,test3 三台机器,在 test1 上用 dnsmasq 之类的搭个 dns,在 test1,test2,test3 的 dns 分别将 test1 的内网 IP 作为首选 dns 不就完事了。 不一样的吗
    ZombieMisaka
        65
    ZombieMisaka  
       2019-02-28 11:09:25 +08:00
    @abcfyk #64 注意审题
    huskar
        66
    huskar  
       2019-02-28 11:50:01 +08:00 via Android
    @ZombieMisaka 如果是你说的这种公司场景,那想用公司的服务就得用公司的 dns 啊。员工当然可以自定义,没人拦着,但是干不了活有什么意义啊?我司有自己的内网 dns,我非得不用,要自定义一个,那我不用干活了,公司内网全都访问不了。

    dns 本就是客户端愿意用才用的服务。
    yc8332
        67
    yc8332  
       2019-02-28 16:04:48 +08:00
    基本上不都是路由器上有自定义的 host 吗?或者是内网搭 DNS 服务器
    snokin
        68
    snokin  
       2019-07-29 22:48:03 +08:00
    其实局域网内已经有各域名可以使用的……那就是.lan ,比如你放网站的机器名字叫 dev,那你可以通过 dev.lan 来访问,还可以增加二级域名如:a.dev.lan,b.dev.lan 等。
    pC0oc4EbCSsJUy4W
        69
    pC0oc4EbCSsJUy4W  
       2022-01-18 14:44:50 +08:00
    dnsmasq
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5432 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 07:29 · PVG 15:29 · LAX 23:29 · JFK 02:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.