我有一个正在运行的家庭网络,它使用 DNS 解析.lan
,例如我的路由器router.lan
。
这个网络很不幸192.168.1.0/24
。这意味着它通常与我所在的公共网络发生冲突。但是,当我通过 VPN 连接到我的网络时,我的路由器的隧道地址是192.168.2.1
。这使得 192.168.1.1 成为公共 WiFi 网关。一切正常。我可以通过 的隧道发送流量来路由到 VPN 的 192.168.1.0/24 192.168.2.1
。
我的问题是关于 DNS 解析。我在 Linux 工作站上使用 dnsmasq 作为解析器。
我需要,
hostname.lan.vpn
例如通过我的 VPN 代理解析到我的路由器192.168.2.1
,或者我需要hostname.lan
将请求代理到我的 VPN,但仅当连接到 VPN 时。
其他人有同样的担忧吗?他们是如何处理的?
答案1
假设这vpn0
是您的 VPN 隧道接口的名称,您可以配置dnsmasq
:
--server=/lan/192.168.2.1@vpn0
使用此配置行/选项,如果vpn0
接口存在,dnsmasq
将通过该接口将与域相关的任何查询转发lan
到 192.168.2.1 vpn0
。如果该接口不存在,dnsmasq
将记录警告并忽略该行 - 这正是 VPN 未激活时您想要的。
对于反向 DNS 解析,您还可以添加:
--rev-server=192.168.1.0/24,192.168.2.1@vpn0
这对于与 IP 段 192.168.1.0/24 相关的反向 DNS 查询具有相同的作用。