AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1028066
Accepted
Validator
Validator
Asked: 2018-04-26 03:28:33 +0800 CST2018-04-26 03:28:33 +0800 CST 2018-04-26 03:28:33 +0800 CST

解析器:LAN、VPN 和 WAN 名称解析

  • 772

我已阅读有关 resolv.conf 和 resolvconf 和 resolvconf.conf 的手册页,但并不了解所有内容,并且觉得我对如何(咳咳)解决这个问题有点迷茫:

设想:

我有一个带路由器的 LAN,它充当 DHCP 和名称服务器。名称服务器解析此 LAN 上没有 TLD 或 .lan TLD 的所有设备。例如,我可以使用 nslookup、ping 和任何其他工具名称(如“nas”和“nas.lan”)来解析我的 NAS 服务器(网络可访问存储服务器)。它将请求转发到我的 ISP 的 DNS 的任何其他名称。

因此,我的 resolv.conf 看起来像这样:

# Generated by resolvconf
domain lan
nameserver 192.168.0.1

我可以很好地解析所有 LAN 和 WAN 名称。

我现在在工作中连接到 Cisco VPN,resolvconf 将 resolv.conf 更新为:

# Generated by resolvconf
domain myworkplace.com
search myworkplace.com lan
nameserver 192.168.1.10
nameserver 192.168.1.11
nameserver 192.168.0.1

现在我无法在我的局域网上访问“nas”或“nas.lan”,但我可以在 VPN 上访问“nas”和“nas.myworkplace.com”。WAN 名称现在由 VPN 分配的名称 192.168.1.10 解析,并且我以这种方式到达的 NAS 在 VPN 上,而不是在我的 LAN(不同的服务器)上。

旁白:我实际上没有任何这样的名称冲突,但我在这里的杜撰示例中提供了它,因为解决方案显然需要满足它。

现在我想要实现的是这样的:

“nas.lan”解析为我的 LAN NAS “nas.myworkplace.com”解析为 VPN NAS “nas”基于配置解析为一个或另一个(此处提示 resolv.conf 的 ndots 设置,但不确定)。

我的问题:

  1. 这甚至可以通过 resolvconf 实现吗?
  2. 如果没有,是否有其他方法可以做到这一点(例如使用 dnsmaq 而不是 libc 作为我的盒子上的解析器?)。

我很欣赏这里的任何指示,因为我发现手册页不太容易消化和解密,并考虑到这样的特定需求。我已经在网上搜索了很长一段时间,奇怪的是只发现其他人在其他论坛上问同样的问题(没有答案)!

这不是我独有的问题,也不是我的发现。LAN 上的任何人都希望在此看到设备,通过 VPN 连接到另一个 LAN 似乎很可能恰好遇到这个问题,即在连接时只能解析 VPN 上的名称而不是 LAN,需要关闭 VPN 才能解决局域网名称再次。

vpn dns lan resolv.conf resolvconf
  • 2 2 个回答
  • 635 Views

2 个回答

  • Voted
  1. Best Answer
    FSchndr
    2018-04-26T04:02:15+08:002018-04-26T04:02:15+08:00

    我猜您在使用 VPN 时无法使用 LAN DNS 的原因是解析器默认只进行两次尝试:

    从 resolv.conf 手册:

    尝试:n 设置解析器在放弃并向调用应用程序返回错误之前向其名称服务器发送查询的次数。默认值为 RES_DFLRETRY(当前为 2,请参阅 参考资料)。此选项的值默认上限为 5。

    因此,它首先尝试您公司 VPN 提供的两个 DNS 服务器,然后返回错误。您可以将尝试设置为 3,以便您的 LAN DNS 也被考虑在内。

    这样做的缺点是,它通过等待最后一个服务器最终回答来减慢您的 DNS 请求。而且您正在向您的公司发送所有 DNS 请求 - 这也会影响性能和您的隐私。

    我建议使用 dnsmasq。

    您可以在具有指定域的 dnsmasq conf 中按域添加上游 DNS 服务器,如下所示:

    server=/lan/192.168.0.1
    

    默认情况下,dnsmasq 从 /etc/resolv.conf 轮询上游服务器。

    从dnsmasq手册页的注释部分:

    ...默认情况下,dnsmasq 读取 /etc/resolv.conf 以发现它应该使用的上游名称服务器的 IP 地址,因为信息通常存储在那里。除非使用 --no-poll ,否则 dnsmasq 会检查 /etc/resolv.conf 的修改时间(如果使用了 --resolv-file 则等效)并在它发生更改时重新读取它。这允许通过 PPP 或 DHCP 动态设置 DNS 服务器,因为这两种协议都提供信息。...

    因此,如果您的 VPN 客户端更改了 resolv.conf,如果您可以将 dnsmasq 保留在 resolv.conf 之上,您就可以同时使用两者。

    但我想这不是 VPN 编辑你 resolv.conf 的方式,所以我会尝试禁用 VPN 的 DNS 功能,并将你公司的 DNS 服务器手动添加到你的 dnsmasq 配置中:

    server=/myworkplace.com/192.168.1.10
    server=/myworkplace.com/192.168.1.11
    server=192.168.0.1
    

    在这种情况下,您对 Internet 和 LAN 的所有查询都将发送到 192.168.0.1,而对 myworkplace.com 的所有查询都将发送到您公司的 DNS。

    • 1
  2. Joe Pisco
    2018-04-29T00:40:06+08:002018-04-29T00:40:06+08:00
    git clone https://github.com/timebandit1969/resolvchange.git
    

    https://www.purebasic.com/download.php并下载 PureBasic x64 的 linux 演示版,别担心,我认为限制不会阻止你编译它,我检查了它。编译(使可执行)resolvchange.pb chmod +x resolvchange start vpn 如果运行一个并立即使用以下命令运行 resolvchange:./resolvchange

    • 0

相关问题

  • 如何无缝连接两个局域网?

  • 创建基于 NAT 的 VPN 工具的 hamachi

  • 更改DNS IP的正确方法是什么?

  • 如何清除 DNS 缓存?

  • 有没有办法将 VPN (tun0) 适配器链接到假物理 (ethX) 适配器?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve