![居住网络和路由器的 DNS 问题](https://linux22.com/image/1360491/%E5%B1%85%E4%BD%8F%E7%BD%91%E7%BB%9C%E5%92%8C%E8%B7%AF%E7%94%B1%E5%99%A8%E7%9A%84%20DNS%20%E9%97%AE%E9%A2%98.png)
我通过学生宿舍网络(通过墙上的插孔)访问互联网。我想将其连接到路由器,以便能够连接笔记本电脑和手机(我的宿舍只允许每个房间使用一个 MAC 地址)。我可以使用 Connectify,但我想避免打开电脑来连接我的手机。
我可以连接路由器,克隆我的 MAC 地址,它几乎可以正常工作:两台计算机都可以访问互联网。但是,大学的网站(我将称之为www.example.com从现在开始)在这种情况下变得无法访问:我无法通过名称访问它(nslookup
返回“找不到 www.example.com:没有答案”),如果我尝试通过 IP 访问它(nslookup
在不使用路由器时通过 IP 获取,在本地网络中定义为 10.fgh),我会收到 TYPO3 页面报告的错误:Page Not Found. Reason: RealURL error: unable to determine rootpage_id for the current domain.
我想同时理解:(1)TYPO3 在这种情况下做什么,例如,是否有一个 URL 可以用来将我带到“标准”www.example.com网站;(2)是否有办法让我的路由器获取 DNS 结果,就像我的电脑直接连接到墙上时一样。我相信这应该是可能的,因为使用 Connectify 可以让我做到这一点:我的手机可以访问 www.example.com,即使它的 DNS 服务器被报告为笔记本电脑。
我已经尝试了 DD-WRT 上的大多数(如果不是全部)DNS设置。例如,启用本地DNS并将其设置为我的计算机获取的值。我尝试使用OpenDNS,但它在我的本地网络中被阻止。Google的公共DNS没有被阻止,但我也无法使其工作。
这个问题已经清理并重新表述。下面可以找到一些额外的(可能有用的)信息。
使用 isitup.org,我可以看到报告的 www.example.com 的外部 IP 与我在住宅网络内部获得的 IP 不同,并且该外部 IP 无法从住宅访问。
使用以下方法进行的一些测试的完整结果nslookup
:
不使用路由器连接时:
% nslookup www.example.com
Server: 10.4.a.b
Address: 10.4.a.b#53
www.example.com canonical name = restypo01.example.com
Name: restypo01.example.com
Address: 10.5.x.y
当连接路由器时(路由器的IP为192.168.1.1):
% nslookup www.example.com
Server: 192.168.1.1
Address: 192.168.1.1#53
*** Can't find www.example.com: No answer
% nslookup restypo01.example.com
Server: 192.168.1.1
Address: 192.168.1.1#53
*** Can't find restypo01.example.com: No answer
我的路由器的DNS服务器和不通过路由器连接时获得的一样:10.4.ab
编辑:部分解决方案
我设法在我的路由器上添加了一条特殊的 DNSMasq 规则,该规则似乎有效,至少对于特定的子域有效:
address=/example.com/10.5.a.b
address=/intra.example.com/10.5.c.d
为了获得准确的 IP 地址,我必须连接不带路由器的计算机,检索这些域的 IP 地址(从内部网络看到),然后我将这些规则添加到路由器,现在至少对于这些网站,它可以起作用。
但是,这些域有多个子域,因此手动添加每个子域会变得很繁琐。我希望它们能够被自动找到,就像我的电脑和墙上插座之间没有路由器一样。有什么想法吗?
答案1
也许你的大学网络是本地网络,外界无法访问?也许你的路由器使用的 DNS 服务器不在本地网络内?它与你的笔记本电脑使用的 DNS 服务器不同吗?
我在配备 wifi 的火车上看到过类似的事情。我使用 dnscrypt 和 Opendns 作为 dns 服务器。在火车上时,我无法连接到火车网络的登录页面。当我禁用 dnscrypt 时,我可以登录。这意味着 opendns 不了解火车网络及其 dns。因此,我连接到火车路由器,但 dnscrypt 尝试连接到 opendns,但 opendns 不可用。然后我无法连接到火车主页以登录网络并连接到互联网。
这可能是一种不同的情况,但我希望能解释一些事情,以帮助您进一步了解。
答案2
嗯...网络上的一个 MAC 地址...也许让你的路由器成为那个设备。克隆路由器中注册的 MAC 地址,并让它成为 example.com 网络看到的设备。按照你正在做的那样在你的路由器上运行 NAT。让路由器处理对 example.com DNS 服务器的 DNS 请求,并配置你的设备以查询路由器(而不是 example.com DNS 服务器)的 DNS 请求。只要你的路由器可以充当 DNS 缓存和转发器,这应该可以工作,因为我猜他们的 DNS 服务器配置为仅响应来自 example.com 子网上的 IP 地址的查询,因此请求不能来自你的 NAT 地址(192.168 等)。这样两个设备(以及更多设备)就可以同时处于活动状态。
我几乎愿意打赌,正如我在评论中提到的那样,他们正在搞砸 TTL。
答案3
如果您可以访问“正常”网站,则表示您的 NAT 和 DNS 转发运行正常。
您可能没有将路由器上的本地网络名称设置为 example.com?在您的计算机上,在命令提示符下执行 ipconfig,并检查“连接特定的 DNS 后缀”的内容。如果是 example.com,则会导致您的计算机在您的本地网络中查找 www.example.com,但找不到它。