在局域网中搭建了一个网站之后,最直接的访问方式是输入服务器的内网IP地址,例如 http://192.168.1.100。但IP地址不仅难记,一旦服务器更换IP或者网站变多,管理起来就非常混乱。给局域网内的网站配置一个专属域名,比如 mysite.local 或者 oa.company.internal,可以让同事直接在浏览器里输入域名访问,体验和访问公网网站几乎没有区别。本文将系统讲解局域网域名设置的几种主流方法、配置细节以及常见的踩坑点。

方法一:修改客户端 hosts 文件实现域名映射
hosts 文件是操作系统自带的一个本地域名解析配置文件,它的优先级高于DNS服务器。浏览器在解析域名时,会先查询hosts文件,如果里面已经有对应的IP记录,就直接使用该IP,不再向DNS服务器发起请求。利用这个特性,我们可以在局域网中每一台需要访问网站的电脑上,把域名手动指向内网服务器IP。
不同操作系统的hosts文件位置如下:
- Windows:C:\Windows\System32\drivers\etc\hosts
- Linux / macOS:/etc/hosts
以Windows为例,编辑hosts文件需要管理员权限。建议右键点击记事本,选择以管理员身份运行,然后通过记事本的打开功能定位到上述路径。文件末尾添加一行记录,格式为 IP地址加空格加域名:
192.168.1.100 mysite.local 192.168.1.101 gitlab.mysite.local
保存之后,打开命令行执行 ping mysite.local,如果返回的是 192.168.1.100,说明解析已经生效,浏览器里就可以直接用域名访问了。
这种方式的优点是零成本、见效快,不需要任何额外的服务端组件,特别适合只有几台电脑的小团队或者家庭网络环境。但缺点也很明显:每一台客户端都要手动修改一次,服务器IP一旦变更,所有电脑都得重新改一遍。如果局域网中有几十上百台设备,这种方式维护成本会非常高,此时就应该考虑下面的DNS方案。
方法二:部署内网DNS服务器统一管理域名
当局域网设备较多时,最专业的做法是搭建一台内网DNS服务器,所有设备只需要把DNS地址指向它,域名解析就统一由这台服务器负责,后续增删域名只需在DNS服务器上操作一次,全网立即生效。
常见的DNS服务软件有 Windows Server 自带的DNS服务、开源的Bind9、轻量级的dnsmasq等。其中dnsmasq配置简单、资源占用极低,非常适合部署在NAS或者一台小型Linux服务器上。下面以dnsmasq为例给出核心配置:
# 安装dnsmasq apt install dnsmasq -y # 编辑配置文件 /etc/dnsmasq.conf # 指定上游DNS,用于解析真正的公网域名 server=223.5.5.5 server=119.29.29.29 # 定义内网域名的解析记录 address=/mysite.local/192.168.1.100 address=/gitlab.mysite.local/192.168.1.101 # 监听内网网卡 listen-address=192.168.1.2,127.0.0.1 # 重启服务 systemctl restart dnsmasq
配置完成后,还需要在路由器的DHCP设置中,把下发给客户端的DNS服务器地址改为这台dnsmasq所在机器的IP(本例中是192.168.1.2)。这样局域网内所有设备通过DHCP获取地址后,就会自动使用内网DNS,域名解析对用户完全透明。
dnsmasq有一个非常实用的特性:address=/mysite.local/192.168.1.100 这种写法是泛解析,也就是说 www.mysite.local、api.mysite.local 等所有以 mysite.local 结尾的子域名都会指向同一个IP。如果需要不同子域名指向不同服务器,可以逐条单独添加记录,或者结合 host-record 指令使用。
Windows Server的DNS服务方案则更适合已经使用域环境的企业,在DNS管理器中新建正向查找区域,然后添加A记录即可,操作是图形化的,这里不再赘述。Bind9功能最强大,支持复杂的区域文件管理和主从同步,适合大型内网,但学习曲线相对陡峭。
方法三:使用 mDNS 或路由器自带功能
除了上面两种方案,还有一类更轻量的做法。许多路由器的管理后台自带域名映射或者本地DNS功能,例如某些企业级路由器支持添加自定义域名记录,效果等同于一个小型DNS服务器,配置入口通常在DHCP或DNS设置页面,开启后全网设备无需任何改动。
另一类是mDNS(组播DNS)机制,苹果的Bonjour、Linux的Avahi、Windows 10之后的原生支持都属于这一类。设备会自动在局域网内广播自己的主机名,其他设备可以直接通过 主机名.local 的形式访问,例如服务器主机名叫 webserver,那么局域网内任何电脑访问 webserver.local 都能解析到它。Avahi的配置示例:
# 安装avahi-daemon apt install avahi-daemon -y # 修改主机名(重启后生效) hostnamectl set-hostname webserver systemctl enable --now avahi-daemon
mDNS的优点是完全零配置,特别适合家庭和小型办公网络中访问NAS、打印机、开发机等场景。缺点是它只支持主机级别的解析,无法为同一台主机上的多个虚拟主机分别配置不同的子域名,也不适合大规模网络,因此更多作为辅助手段使用。
常见误区与避坑指南
第一,域名后缀不要随意选。强烈不建议使用 .com、.cn 等真实存在的公网顶级域名作为内网域名后缀,比如把内网域名定为 mysite.com。因为一旦这个公网域名真的被注册并投入使用,内网用户就永远无法访问真正的公网站点,DNS冲突排查起来非常痛苦。RFC 6762 专门保留了 .local 给本地网络使用,此外 .internal、.lan、.home.arpa 也是常见的安全选择。
第二,hosts修改后不生效。Windows系统对hosts文件有DNS缓存,修改之后需要执行 ipconfig /flushdns 清除缓存;Linux和macOS可以执行 systemd-resolve --flush-caches 或 killall -HUP mDNSResponder。另外要确认浏览器没有开启自己的安全DNS(DoH)功能,部分浏览器会绕过系统hosts直接走加密DNS查询,导致hosts配置形同虚设。
第三,网站绑定了域名但无法访问。域名解析成功不代表网站一定能打开,还需要在Web服务器(如Nginx、Apache、IIS)中为该域名配置对应的站点绑定。以Nginx为例:
server {
listen 80;
server_name mysite.local www.mysite.local;
root /var/www/mysite;
index index.html index.php;
}第四,HTTPS证书问题。局域网域名无法申请受信任的公共CA证书,浏览器会提示不安全。可选的方案有:内部使用自签名证书并在客户端导入信任、搭建企业内部CA、或者使用支持IP和内网域名的免费证书服务。不要为了省事直接全程使用HTTP明文传输,尤其是涉及登录密码的场景。
安全注意事项与故障排查
安全方面,DNS服务器一旦被篡改,攻击者可以把银行、办公系统的域名指向钓鱼服务器,因此内网DNS所在机器要加强防护:修改默认管理密码、限制只有内网网卡可以查询、不要把dnsmasq的53端口暴露到公网。如果DNS服务器还承担公网域名转发,建议配置可信的上游DNS并开启域名过滤。
排查域名问题时,建议按以下顺序定位:先用 ping 确认域名能否解析出IP;如果ping的IP不对,用 nslookup 域名 查看当前实际使用的DNS服务器是哪一台,确认客户端的DNS设置是否正确;如果解析正确但浏览器打不开,再检查Web服务器的站点绑定和防火墙端口。这套排查思路能覆盖绝大多数内网域名故障场景。
总的来说,小规模环境优先用hosts或路由器自带功能,设备较多的网络推荐部署dnsmasq统一管理,追求零配置的场景可以借助mDNS。选择合适的域名后缀、及时清理DNS缓存、为站点做好域名绑定,是保证内网域名稳定可用的三个关键点。