请教大佬们一个局域网自定义 DNS 的问题

2024-04-10 09:31:18 +08:00
 felix0012

== 背景

在家用玩客云刷了 armbian 搭了些服务,比如 Gitea 、Wordpress 、Homeassistant 这些。平时会用台式机、手机访问自己搭的服务。 另外还有个电视盒子,也刷成 armbian 做一些小实验。

用得久了,不想每次输入 ip 、端口号这些来访问 web ,就有了自己搭 DNS 的想法,把自己的服务都映射到自定义域名上,再用 nginx 做反向代理。 自己有一台主路由,无线网络是 802.11AC ,配置不算高但刷了官方 openwrt 。就用 openwrt 的 DNS 服务实现宏域名到 IP 的映射,比如*.onecloud.lan 映射到 192.168.1.2 这样。

== 版本 0.1

主路由挂在光猫下面,其他节点挂在主路由下面。拓扑大概是这样

---------
|  光猫  |
---------
      |
---------
| 主路由 |
---------
  |  |  |
  |  |  --------
  |  ---       |
  |    |       |
节点 1  节点 2  节点 3 ...

主路由通过 LAN 连结各节点,通过 WAN 口连接光猫,开启 DHCP 和 DNS 。 这时候 DNS 按预期工作。一切都很好,唯一的问题是主路由要跟光猫一起放在弱电箱里(因为弱电箱是全家网线汇集点)

== 版本 0.2

为了发挥主路由的 5GHz 无线网功能,把主路由挪到一个房间里。现在主路由跟其他节点一起挂在光猫下面,光猫连结主路由的 LAN 口。拓扑如下

 -----------
|   光猫    |
 -----------
 |  |  |  |
 |  |  |  ------------
 |  |  --------      |
 |  -----     |      |
 |      |     |      |
主路由  节点 1  节点 2  节点 3 ...

关闭光猫的 DHCP ,主路由开启 DHCP 和 DNS ,DHCP 中把网关指定为光猫地址,把 DNS 指定为自己。这时候本应正常工作的。 但实际使用时,台式机访问本地域名上的服务,本地域名无法被主路由 DNS 解析。抓包调试半天发现,台式机存在两个 DNS: 一个是主路由通过 DHCP 配置的主路由 IPv4 地址, 另一个是光猫通过 IPv6 的 RA 分配的光猫 IPv6 地址. 域名解析时默认询问了光猫,光猫自然不知道本地域名所以返回了错误结果。

== 问题

这时候如果禁用台式机的 ipv6 是可以解决本地域名解析的,但代价比较大。 彻底解决需要禁止光猫在 ipv6 上的 DHCP 行为,但光猫配置界面比较简单,没有这项设置。

这种情况下有没有办法设置主路由 openwrt 来强制覆盖光猫的 ipv6 设置呢?

8407 次点击
所在节点    宽带症候群
91 条回复
yyysuo
2024-04-10 09:34:48 +08:00
用收藏夹就行啊,搞域名,除非像 Bitwarden 那种需要证书的才值得搞一下。
zyq2280539
2024-04-10 09:36:47 +08:00
自己配置个 bind9 也没那么困难啊
cr3bit
2024-04-10 09:38:36 +08:00
v4 dns 会返回 v4+v6 。dhcp v6 就下发地址,option 全关
kenneth104
2024-04-10 09:41:05 +08:00
关掉 Client 的 V6
felix0012
2024-04-10 09:44:09 +08:00
@yyysuo
只能说我比较菜吧

有时候会调整各项服务的端口。Gitea 、Hass 这些有特定端口的还好,80 端口起初我分给了 aria2ng ,后来分给了 Wordpress ,再后来发现 80 还有别的用处。
感觉这样调整来调整去有点麻烦,另外浏览器记录用户名密码也是匹配地址和端口的。就想用更优雅的办法,把每个服务都指配一个本地域名,比如 hass.onecloud.lan 这样。

还有一点,最初固定 IP 功能没搞好,玩客云的 ip 时不时会变动。本地 git 仓库中远端 gitea 地址就要时不时的调整。仓库少了还好,多了每个都要更改就有点烦。所以也想通过域名映射到 ip ,这话后面不管 ip 怎么变,只要把 DNS 配置好就行了
felix0012
2024-04-10 09:44:43 +08:00
@zyq2280539
感谢点亮了我的知识盲区。这就去了解一下 bind9
felix0012
2024-04-10 09:46:05 +08:00
@kenneth104 台式机可以这么搞,安卓手机怎么设置呢?平时也希望用手机访问 hass 、portainer 这些服务,就只能用 ip 地址加端口号了吗…
bigfei
2024-04-10 09:46:21 +08:00
@yyysuo
felix0012
2024-04-10 09:49:02 +08:00
@cr3bit 有点没看明白

v4 dns 会返回 v4+v6 。
是不是说 client 通过 ipv4 的 dns 解析域名,会返回域名的 v4 和 v6 地址

dhcp v6 就下发地址
是说让我配置 openwrt 的 dhcp v6 吗?

option 全关
这个没看懂……
felix0012
2024-04-10 09:54:13 +08:00
@zyq2280539
查了一下,bind9 好像是个 dns 服务程序?

目前的问题不是没有 dns ,主路由 dns 是正常的。
问题在于光猫强制向局域网内节点广播了 ipv6 的 dns 地址是光猫自己,而且这个 ipv6 dns 优先级更高,导致主路由 dhcp 中指派的主路由地址作为 dns 没有被各个节点用到
deorth
2024-04-10 09:57:46 +08:00
改桥接
qxdo1234
2024-04-10 10:07:25 +08:00
配置一个 Nginx ,可以做反向代理,这个 Nginx 的电脑再用内网穿透出来,就可以访问所有的东西了,用最多 2 个端口就可以解决。
felix0012
2024-04-10 10:10:18 +08:00
@deorth 是说把光猫改桥接吗?现在是光猫在路由模式。
改成桥接后就需要本地有个路由器了,我的主路由(版本 0.2 里实际是作为 WiFi AP 在用,顺便客串一下 dhcp 和 DNS server )就又要回到弱电箱了吧…
felix0012
2024-04-10 10:11:14 +08:00
@qxdo1234 这个 nginx 配置在哪呢,是不是还要买个公网云主机…
lovelylain
2024-04-10 10:11:56 +08:00
牵扯到 ipv6 建议光猫改桥接,不然基本很难解决,我换 600M 宽带后最开始是想光猫拨号+旁路由分配 ip 地址,但是 ipv6 有些问题搞不定,还是改桥接了。
goodryb
2024-04-10 10:15:56 +08:00
感觉 1 楼才是正解,当然你要是想折腾的话另说,自建 dns bind9 、AdGuard Home 、dnsmasq

然后局域网都用你自建的 dns ,自建 dns 除了解析你本地的域名,剩下的都 forward 到运营商或者公共 dns

要是你不想带端口访问,那还是得有个 nginx 代理做转发
godall
2024-04-10 10:16:55 +08:00
楼主你的问题是路由器承担了路由功能,然后上级光猫还要带其他机器,造成了网络不互通。解决方案有 2 种:

1 、让光猫做 DHCP/DNS ,主路由降级为 AP 。
配置很简单,就是光猫网口直接连接主路由 LAN 口,让 WAN 口空关,关闭主路由 dhcp/dns 服务即可。相当于一个无线 HUB 。
弊端:openwrt 做 AP 情况下很多插件不能正常使用。

2. 配置不变,主路由端口映射。
假如光猫地址 192.168.1.1 , 主路由 WAN:192.168.1.2 , 下面机器是 192.168.2.x ; 客厅电脑:192.168.1.3
把机器 192.168.2.x 所需要暴露的服务都做端口映射, 这样,客厅电脑需要访问主路由服务时,直接访问 192.168.1.2:端口进行访问。
rainbowhu
2024-04-10 10:21:35 +08:00
如果只是简单记录下多个应用的地址的话,可以用 Heimdall 。点进去再点应用,也就两步。
felix0012
2024-04-10 10:22:21 +08:00
@goodryb
局域网都用你自建的 dns ,自建 dns 除了解析你本地的域名,剩下的都 forward 到运营商或者公共 dns

现在就是这么做的,在路由上用 openwrt 的 dnsmasq 自建 dns

要是你不想带端口访问,那还是得有个 nginx 代理做转发

现在也是这么做的,在玩客云上配置了 nginx 反向代理

现在的问题是光猫广播的 ipv6 dns 覆盖了主路由 dhcp 分发的 dns
felix0012
2024-04-10 10:23:01 +08:00
@rainbowhu git 本地仓库中 remote 地址还是需要批量改呀

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1031174

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX