局域网Web服务如何设置内网域名?内网DNS解析配置方法

在局域网里部署了一个 Web 服务后,如果每个用户都要记住类似 http://192.168.1.20:8080 这样的地址,使用和维护都会很麻烦。更好的方式是给这个服务设置一个内网域名,例如 http://app.lanhttp://intranet.localhttp://oa.company.lan,让内网用户访问域名时自动解析到对应的内网服务器。

实现这个目标的核心思路很简单:让内网终端查询某个域名时,DNS 返回 Web 服务器的内网 IP;然后 Web 服务器根据域名或端口提供对应服务。具体可以通过路由器 DNS、内网 DNS 服务器、客户端 hosts 文件、Nginx 反向代理等方式实现。

先明确整体访问链路

内网域名访问一般经过四步:用户在浏览器输入域名,终端向 DNS 查询域名对应的 IP,DNS 返回 Web 服务器内网地址,浏览器再向该 IP 发起 HTTP 或 HTTPS 请求。如果 Web 服务器上部署了多个服务,还可以用 Nginx 或 Apache 根据域名进行反向代理或虚拟主机分流。

局域网Web服务如何设置内网域名?内网DNS解析配置方法

第一步:固定Web服务器的内网IP

在配置域名解析前,最好先固定 Web 服务器的局域网 IP。比如服务器当前地址是 192.168.1.20,就要避免它因为 DHCP 自动分配变化成其他地址,否则域名解析会失效。

常见做法有两种:一种是在服务器上手动设置静态 IP;另一种是在路由器或 DHCP 服务器中做地址保留,把服务器网卡 MAC 地址固定绑定到 192.168.1.20。如果局域网由企业网关统一管理,更推荐在 DHCP 中做地址保留,后续维护更清晰。

第二步:选择内网域名

内网域名可以使用简短好记的名称,比如 app.lannas.lanoa.langit.lan。如果是公司内部服务,也可以使用更清晰的层级,例如 oa.company.lanwiki.company.lan

不建议随意使用真实公网域名的根域,除非你清楚 split DNS 的配置方式。也不建议使用可能和公共互联网冲突的域名。内网常见做法是使用 .lan.home.arpa 或企业自有域名的内部子域,例如 intranet.example.com,但如果使用自有域名,需要处理好公网解析和内网解析的差异。

方案一:在路由器或网关中添加本地域名解析

小型办公室或家庭局域网最简单的方式,是在路由器、软路由或网关里添加本地域名解析记录。很多路由器、OpenWrt、iKuai、RouterOS、企业网关都支持静态 DNS、主机名映射或本地域名解析。

配置示例可以理解为:添加一条 A 记录,域名为 app.lan,目标 IP 为 192.168.1.20。然后确认 DHCP 下发给客户端的 DNS 地址就是这台路由器或网关地址,例如 192.168.1.1。这样内网用户访问 app.lan 时,就能解析到 Web 服务器。

方案二:部署一台内网DNS服务器

如果局域网规模较大,或者需要管理多个内部系统,可以部署专门的内网 DNS 服务。常见选择包括 Windows Server DNS、dnsmasq、CoreDNS、BIND、AdGuard Home、Pi-hole 等。

以 dnsmasq 为例,可以配置类似 address=/app.lan/192.168.1.20 的规则;以 CoreDNS 为例,可以使用 hosts 插件或 zone 文件维护内网域名。配置完成后,再通过 DHCP 把这台 DNS 服务器地址下发给所有终端。

这种方式更适合公司网络,因为它可以统一管理多个域名,例如 oa.lanwiki.langit.lanmonitor.lan,也方便后续迁移服务器 IP。

方案三:修改客户端hosts文件

如果只是临时测试,或者只有少量电脑需要访问,可以直接修改客户端 hosts 文件。Windows 的 hosts 文件通常在 C:\Windows\System32\drivers\etc\hosts,macOS 和 Linux 通常在 /etc/hosts

添加内容示例:192.168.1.20 app.lan。保存后,客户端访问 app.lan 就会直接指向 192.168.1.20。这种方式简单直接,但缺点也明显:每台电脑都要单独维护,设备一多就不适合长期使用。

Web服务端也要配置虚拟主机

DNS 只负责把域名解析到 IP,并不负责告诉 Web 服务器应该展示哪个站点。如果服务器上只有一个服务,通常访问 IP 就能打开;但如果同一台服务器上有多个 Web 服务,就需要配置 Nginx、Apache 或 Caddy 的虚拟主机。

例如 Nginx 可以配置 server_name app.lan;,然后把请求反向代理到内部端口 127.0.0.1:8080。这样用户访问 http://app.lan 时,Nginx 会根据 Host 头识别域名,并转发到对应服务。

是否需要配置HTTPS

如果只是内网工具,HTTP 通常也能使用。但如果涉及账号、密码、后台管理、业务数据,建议考虑 HTTPS。内网 HTTPS 可以使用自签证书、企业内部 CA,或者使用自有公网域名的内部子域配合正式证书。

需要注意的是,.lan 这类内部域名通常无法直接申请公网受信证书。如果希望浏览器不提示证书风险,可以使用企业内部 CA 并把根证书安装到内网终端,或者使用真实域名的内部子域做 split DNS。

常见问题排查

如果域名无法访问,可以按顺序排查。第一,用 nslookup app.landig app.lan 查看是否解析到正确 IP。第二,检查客户端 DNS 是否指向内网 DNS 或路由器。第三,确认服务器 IP 是否变化。第四,检查 Web 服务端口是否开放,例如 804438080

如果能解析但打不开页面,通常不是 DNS 问题,而是 Web 服务、端口、防火墙或反向代理配置问题。可以先直接访问 http://192.168.1.20http://192.168.1.20:8080,确认服务本身是否正常,再检查 Nginx 的 server_name、代理目标和防火墙规则。

推荐落地方案

如果只是临时测试,用 hosts 文件最快;如果是家庭或小办公室,优先在路由器或软路由里添加本地域名解析;如果是公司内部系统,建议部署统一内网 DNS,并通过 DHCP 统一下发 DNS 地址;如果服务较多,再配合 Nginx 或 Caddy 做反向代理和虚拟主机管理。

比较稳的组合是:固定服务器 IP,内网 DNS 添加 A 记录,DHCP 下发 DNS,Nginx 负责域名转发。这样内网用户只需要访问一个好记的域名,后台迁移服务器或调整端口时,也只需要在 DNS 或代理层改配置,不需要通知每个用户改地址。

总结

在局域网中给 Web 服务设置内网域名,本质上就是解决“域名解析到内网 IP”和“Web 服务识别域名”两个问题。小规模场景可以用路由器解析或 hosts 文件,大规模场景应使用统一内网 DNS,并配合反向代理管理多个服务。

只要固定服务器 IP、配置好 A 记录、让客户端使用正确 DNS,并确认 Web 服务端口和虚拟主机正常,内网用户就可以通过 app.lan 这类域名稳定访问局域网中的 Web 服务。