在开始之前,请先理解我们要做什么:
目标让局域网内的用户通过一个自定义的域名(例如http://oa.company.local
或http://internal-app/
)来访问架设在局域网内部的网站,而无需记住复杂的IP地址。
原理DNS服务器的作用就是将域名翻译成IP地址,我们将在局域网内搭建一个DNS服务器,并告诉它:“当有人询问oa.company.local
时,你就回复192.168.1.100
”。
方案一:使用路由器自带的DNS功能(最简单)
大多数家用或企业级路由器都内置了简单的DNS主机名映射功能,这通常被称为“本地域名解析”、“DHCP静态DNS”、“主机映射” 等。
适用场景:小型办公室或家庭网络,主机数量不多。
设置步骤:
1、登录路由器管理界面:在浏览器输入路由器的IP地址(通常是192.168.1.1
或192.168.0.1
),输入用户名和密码登录。
2、寻找DNS设置选项:这个选项的位置因路由器品牌而异,常见路径有:
高级设置 > DHCP服务器 > 静态DNS
局域网设置 > DHCP服务器
网络设置 > 主机映射
* 你也可以直接使用管理界面内的搜索功能,搜索“DNS”或“主机名”。
3、添加映射记录:找到后,你会看到一个可以添加条目的表格,通常需要填写以下信息:
主机名你希望使用的自定义域名,例如oa
,wiki
,nas
。
IP地址内部网站所在服务器的固定局域网IP地址,例如192.168.1.100
。
域名(可选)有些路由器需要,你可以填写一个本地域名,例如company.local
,如果填写了,最终访问的地址就是主机名.域名
,例如http://oa.company.local
。
4、保存并重启:添加记录后,保存设置。强烈建议重启路由器以使更改生效。
5、客户端测试:
* 确保你的电脑是从这个路由器获取的DNS地址(通常是自动获取)。
* 打开命令提示符(CMD)或PowerShell,输入ping oa.company.local
。
* 如果能看到回复来自192.168.1.100
,说明DNS解析成功,现在你就可以在浏览器中用这个域名访问你的内部网站了。
方案二:搭建专业的本地DNS服务器(功能更强大)
如果路由器不支持,或者你需要更复杂的功能(如泛域名解析、多个子域名等),可以搭建一个专业的DNS服务器,这里以Windows Server 和Linux (dnsmasq) 为例。
选项A:在 Windows Server 上安装 DNS 服务器角色
适用场景:使用 Windows Server 作为服务器的中小型企业。
设置步骤:
1、安装DNS服务器角色:
* 打开“服务器管理器”。
* 点击“添加角色和功能”。
* 在“服务器角色”页面,勾选“DNS 服务器”,按照向导完成安装。
2、配置正向查找区域:
* 打开DNS 管理器(在“工具”菜单中)。
* 展开服务器节点,右键点击“正向查找区域”,选择“新建区域”。
* 选择“主要区域”,区域名称填写你的本地域名,例如company.local
。
* 按照默认设置完成向导。
3、添加主机记录:
* 在新建的company.local
区域上右键,选择“新建主机(A或AAAA记录)”。
名称填写主机名,例如oa
,如果要直接解析company.local
,则留空。
IP地址填写你的内部网站服务器IP,例如192.168.1.100
。
* 点击“添加主机”。
4、配置客户端DNS:
* 你需要将局域网内所有电脑的DNS服务器地址,手动设置成这台Windows Server 的IP地址。
* 或者,更好的是在路由器DHCP设置中,将“DNS服务器”选项指向这台Windows Server。
5、测试:在客户端电脑上执行nslookup oa.company.local
,查看是否能正确解析出IP地址。
选项B:在 Linux 上使用 dnsmasq(轻量级方案)
适用场景:熟悉Linux的用户,或在树莓派等低功耗设备上搭建。
设置步骤:
1、安装 dnsmasq:
在基于Debian/Ubuntu的系统上sudo apt update && sudo apt install dnsmasq
在基于RHEL/CentOS的系统上sudo yum install dnsmasq
2、配置 dnsmasq:
编辑主配置文件sudo nano /etc/dnsmasq.conf
找到或添加以下行
# 指定本地域名 domain=company.local # 添加自定义解析记录 address=/oa.company.local/192.168.1.100 address=/nas.company.local/192.168.1.101 # 或者使用更简洁的方式,解析所有 *.company.local 到一个IP(慎用) # address=/company.local/192.168.1.100
3、重启 dnsmasq 服务:
sudo systemctl restart dnsmasq
4、配置客户端DNS:
* 将客户端的DNS服务器指向这台Linux服务器的IP地址。
5、测试:使用nslookup
或dig
命令进行测试。
1、静态IP地址:你的内部网站服务器必须使用静态IP地址,否则IP变了DNS记录就失效了。
2、客户端DNS配置:确保客户端的DNS设置指向了你的DNS服务器,如果客户端仍然使用公共DNS(如8.8.8.8
),它将无法解析你的内部域名。
3、防火墙:确保DNS服务器(如果是方案二)的53/UDP 端口对局域网是开放的。
4、清除DNS缓存:在测试时,客户端电脑可能有旧的DNS缓存,可以在CMD中运行ipconfig /flushdns
(Windows)或sudo systemd-resolve --flush-caches
(Linux systemd)来清除。
5、使用nslookup
或dig
测试:这两个工具比ping
更可靠,能明确告诉你是从哪个DNS服务器得到的解析结果。
首选方案一检查你的路由器是否有这个功能,这是最快捷、最简单的办法。
如果需要高级功能或集中管理选择方案二,对于Windows环境,用Windows Server DNS;对于Linux环境或追求轻量,用dnsmasq。
按照以上步骤操作,你就能成功在局域网内设置DNS服务器,让用户通过友好的域名访问内部网页了。
文章摘自:https://idc.huochengrm.cn/dns/17747.html
评论