现在的网络架构非常简单,只有两层,一层是外部宽带接入的主路由(主路由为 TP-Link ,自带 IPv4 和 IPv6 的 DNS 功能)。现在我局域网内有几十台桥接服务搭建的虚拟机和物联网设备。如果想要快速连接他们,我都有对应的主机名称,但是 IP 总是记不住。
有没有一种比较简单的方案,搭建一个内网的 DNS (同时支持 v4 和 v6 ),实现效果就是,只要接入家里网络的设备(路由器的 DHCP 服务器可以自定义指定到内网 DNS 服务器),设置 DNS ,那么就可以实现内网+外网 DNS 的同时解析,例如:nslookup ci-debian.mydomain
返回 192.168.10.24
,走 v6 查询的话也是同样的道理。
1
mons 2022-04-06 01:55:30 +08:00
可以,如果不想每台终端手动配置 DNS 的话至少有两种解决方案:
1. 主路由支持修改 DHCP DNS Server 列表的话,直接把你内网的 DNS Server IP 加进去,这样所有遵循规范的 DHCP Client 都会默认采用这个 list 。譬如我的解决方案是在 RPi 上架了个 AdGuard Home 后加到了 DHCP DNS Server list. 如果开了 DHCPv6 ,则需要同样加到 v6 的 DNS Server list: 2. 往主路由跑的 dnsmasq 里直接加静态 host-route ,例如: cat > /run/dnsmasq.conf.d/custom01.conf <<EOF host-record=ci-debian.mydomain,192.168.10.24 host-record=ci-debian2.mydomain,192.168.10.25 EOF 然后 reload dnsmasq 供参考。 |
2
oovveeaarr 2022-04-06 03:59:39 +08:00
一般路由器自带的主机名解析功能,搜索域也可以自定义。
|
3
RatioPattern 2022-04-06 07:04:49 +08:00
|
4
PolarBears 2022-04-06 08:22:01 +08:00
要不或者考虑几块钱买个域名,直接域名设置解析成内网 IP 。
|
5
villivateur 2022-04-06 09:20:34 +08:00
|
6
xxb 2022-04-06 09:26:44 +08:00 via iPhone
你们是不是答偏了?
楼主问的不是路由器配置吧。 使用 adguardHome 自建 dns 服务器即可。 |
7
cwcc OP @PolarBears 我域名很多,但是公网域名解析内网地址的话内网拓扑就会暴露,显然不符合数据安全措施。
|
9
Jinnyu 2022-04-06 17:19:54 +08:00
用 adguard 就解决了
1. 路由上指定 dns 解析地址为 adguard 2. adguard 里指定运营商 dns 就可以了 目前我就是这么搞的 家里服务器上监听个 adguard 软路由 dns 指向 adguard (只不过我的 adguard 没有 fallback dns, 剩下的交由软路由解析) 这样局域网解析出来的 IP 都是内网的 外网访问 继续用公共 dns 解析就可以了 (frp 穿透回来+nginx 反代) |
10
liuliangyz 2022-04-07 17:30:38 +08:00
ad 域能很好的解决你的问题!
|
11
FrankAdler 2022-04-07 20:21:04 +08:00 via iPhone
你可以看下一级路由的 dhcp 设置里是否有本地域名这个选项。
填个想要的域名比如 baidu.io ,那局域网内 hostname 为 work 的用 work.baidu.io 就可以访问了。 openwrt 是基于 dnsmasq 所以是有的,tp 我不确定,如果没有可以内网搭一个 dnsmasq 代替 tp 的 dhcp 。 |
12
FrankAdler 2022-04-07 20:22:01 +08:00 via iPhone
更改 dhcp 后需要重启这之前的服务网络,让他走新的 dhcp 服务器
|
13
FrankAdler 2022-04-07 20:25:29 +08:00 via iPhone
另外默认的 dhcp 过期是 12 小时,建议缩短到 1 小时,不然 dhcp 服务重启后会有短时间的解析失败
|
14
flynaj 2022-04-11 09:28:34 +08:00 via Android
主路由换成 openwrt 就可以,默认不用设置什么就可以用了,默认域 lan
|