内网里跑着的东西——内部工单、测试站、NAS、监控面板,随便哪一个——总会有人提一句:能不能给它配个域名,别老让我们记那串IP。这念头一动,域名绑定内网IP这事就摆到桌面上了。听上去一句话的事,真动手你会发现至少有三条路,每条路的代价不一样,选错了后面排查能把人磨掉半条命。先把这三条路的账摊开说。

域名绑定内网IP,先分清是给谁访问
这一步不问清楚,后面全是白忙。只有内网那几台机器要用,和外面客户也要打开,这是两套完全不同的方案。见过不少例子,一开始只想让同办公室的人访问,随手在公网解析里加了条记录,隔几天出差在外打不开,回头查了半天,最后发现是拿到的地址本来就不可达。方向错了,工具再好使也白搭。所以先坐下来问三句:访问的人坐在哪、机器有多少台、以后要不要给外部用。
第一条路:改 hosts,最快也最不省心
最土的办法,改本机 hosts。Linux 和 macOS 是 /etc/hosts,Windows 在 C:\Windows\System32\drivers\etc\hosts,加一行就行,比如 192.168.1.20 nas.local,保存退出,浏览器立刻认。好处是快,不用动任何服务端配置,测试联调的时候特别顺手。
代价在后面。hosts 只对改过的那一台机器生效,第二台电脑要再改一遍,第三台也是。IP 一换,所有改过的地方都得跟着改一遍;同事换台笔记本、重装个系统,全忘了。还有个小坑,改完不一定立刻生效,Linux 上 systemd-resolved 或者 nscd 之类会缓存,重连一下网络或者重启服务才稳。所以这东西我一般只当临时方案,两三个人、几天内用,行;当成长期方案,早晚要被它折腾。
第二条路:自己搭内网 DNS,一次配好全员生效
机器一多,就得上正经一点的做法——在内网架一台 DNS 服务器,dnsmasq、bind、Windows Server 自带的 DNS 都能干这活,有些路由、NAS 里也内置了。把某个子域,比如 dev.internal 或者 office.lan,解析到内网地址,然后让 DHCP 把 DNS 服务器地址直接下发下去,新机器连上网络自动就认了,不用一台台手动改。
代价是多伺候一台服务。这台机器一挂,整个内网的域名解析跟着瘫,所以有条件就做主备,或者至少把它的配置跟备份一起管起来。移动办公、VPN 拨进来的设备,也得能访问到这台 DNS,不然人一出门解析就失效。再进一步是内外网分离解析,也就是 split-horizon:同一个域名,内网查出来是内网 IP,外网查出来是公网 IP。这个做法最正规,但两套解析记录得同步维护,TTL 最好压短一点,切换的时候才不至于等太久。改记录忘了改另一边的,是国内运维最常见的一类事故。
第三条路最坑:公网解析里直接填内网地址
这条必须单拎出来说,因为踩的人太多。在域名管理后台加一条 A 记录,值填 192.168.0.x,点保存,等几分钟查询生效,看着挺美。问题在于公网 DNS 返回的是一个私有地址,任何外网的机器拿到这个答案都不知道往哪送,浏览器转圈转到超时。192.168.0.0/16、10.0.0.0/8、172.16.0.0/12 这三段本来就是内网专用,公网路由压根不认它们。
最终的局面很滑稽:内网某几个人改了 hosts,能打开;外网全体打不开;搜索引擎也抓不到内容;你还在怀疑是不是自己网络有问题。这等于把这个域名对外废掉了,白瞎了注册和备案的功夫。有人这么干是想“先绑上再说”,可解析记录不像配置文件,它是对全网广播的,写错了全世界都看得见。这条路唯一说得过去的用法,是在纯内网、跟公网完全隔离的环境里自建解析,那也不叫公网解析了。
真要对外,就用穿透、映射或者反代
如果外网确实要访问,正确的路子只有几种:路由器上做端口映射、用 frp 这类内网穿透工具、拉 VPN、或者在前置的 Nginx 上做反向代理。每种都有代价。端口映射要看宽带这边有没有固定公网 IP,很多线路没有,运营商还可能把 80、443 封掉,具体以运营商或服务商说明为准。穿透工具依赖中间那台服务器,带宽和延迟都受它限制,节点一抖访问就断,钱也得按月掏。
安全上更得留心。数据库的 3306、SSH 的 22、Redis 的 6379,这些端口千万别直接怼到公网上去,扫描器一天能找上门几十次。至少做三件事:加一层认证、限制来源 IP、配上失败次数限制,反代出口记得把 HTTPS 配齐。图省事把端口全开,后面被人洗库的时候哭都来不及。
还有证书和备案这两件小事
纯内网用 HTTP 就够,别折腾证书。要让外网访问,HTTPS 就在反代或者穿透的出口做终结,别把自签证书丢给访客,浏览器那一片红警告足够把人劝退。域名对外提供服务要备案,流程、材料这类细节以服务商或官方页面说明为准,别照着过时的帖子抄。
怎么选,按这个顺序走就行
先定访问范围。只有内网两三台机器临时用,改 hosts,别嫌土。内网几十台、长期用,架内网 DNS,顺手把 DHCP 一起改掉。内外都要,就公网解析指到公网出口,内网那侧用分离解析或者另一台 DNS 指内网地址,中间用反代或穿透把流量接进来。三种做法不是互相替代的关系,很多时候是组合着用,关键是别把内网地址塞进公网解析里。
最后留三句提醒:改完解析别立刻当生效,老记录的 TTL 可能还在别处缓存着,等一会儿或者换个网络再试;hosts 只当临时拐杖,别当承重墙;对外的口子一律加认证,不开裸奔的端口。方向对了,剩下的都是耐心活。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!