
在局域网里部署了一个 Web 服务后,如果每个用户都要记住类似 http://192.168.1.20:8080 这样的地址,使用和维护都会很麻烦。更好的方式是给这个服务设置一个内网域名,例如 http://app.lan、http://intranet.local 或 http://oa.company.lan,让内网用户访问域名时自动解析到对应的内网服务器。
实现这个目标的核心思路很简单:让内网终端查询某个域名时,DNS 返回 Web 服务器的内网 IP;然后 Web 服务器根据域名或端口提供对应服务。具体可以通过路由器 DNS、内网 DNS 服务器、客户端 hosts 文件、Nginx 反向代理等方式实现。
先明确整体访问链路
内网域名访问一般经过四步:用户在浏览器输入域名,终端向 DNS 查询域名对应的 IP,DNS 返回 Web 服务器内网地址,浏览器再向该 IP 发起 HTTP 或 HTTPS 请求。如果 Web 服务器上部署了多个服务,还可以用 Nginx 或 Apache 根据域名进行反向代理或虚拟主机分流。

第一步:固定Web服务器的内网IP
在配置域名解析前,最好先固定 Web 服务器的局域网 IP。比如服务器当前地址是 192.168.1.20,就要避免它因为 DHCP 自动分配变化成其他地址,否则域名解析会失效。
常见做法有两种:一种是在服务器上手动设置静态 IP;另一种是在路由器或 DHCP 服务器中做地址保留,把服务器网卡 MAC 地址固定绑定到 192.168.1.20。如果局域网由企业网关统一管理,更推荐在 DHCP 中做地址保留,后续维护更清晰。
第二步:选择内网域名
内网域名可以使用简短好记的名称,比如 app.lan、nas.lan、oa.lan、git.lan。如果是公司内部服务,也可以使用更清晰的层级,例如 oa.company.lan、wiki.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.lan、wiki.lan、git.lan、monitor.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.lan 或 dig app.lan 查看是否解析到正确 IP。第二,检查客户端 DNS 是否指向内网 DNS 或路由器。第三,确认服务器 IP 是否变化。第四,检查 Web 服务端口是否开放,例如 80、443 或 8080。
如果能解析但打不开页面,通常不是 DNS 问题,而是 Web 服务、端口、防火墙或反向代理配置问题。可以先直接访问 http://192.168.1.20 或 http://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 服务。