我想,像大多数技术人员一样,我是家人的主要技术支持来源。我的职业是开发人员,而不是系统管理员,今晚我遇到了一些我从未见过的事情。我希望这里有人遇到过。
为了更好地帮助我妈妈,我让她在 Linksys 路由器 (WRT54G) 后面的家庭网络上进行设置。她有一台 Mac,所以我将她的路由器设置为将 SSH 请求转发到她的笔记本电脑的内部 IP。我还让她的路由器通过 DynDns 运行 DDNS。今晚她打电话告诉我她无法访问互联网。
假设这是我们大多数人遇到的与父母相处时遇到的许多简单而愚蠢的问题之一,我远程登录路由器管理员并查看了一下。一切看起来都很正常。然后我通过 SSH 连接到她的机器来检查她的 IP、DNS 等设置。一切看起来都很好。然后我注意到一些奇怪的事情。当我通过 SSH 连接到她的机器时,我无法 ping 她的路由器。
换句话说,我似乎可以访问她的电脑通过她的路由器,但无法访问她的路由器从她的电脑。Atraceroute
也立即死机了。有什么想法我下一步可以尝试什么吗?我重启了她的电脑,甚至拔掉了她的路由器(当然,它又插回去了)。
谢谢。
更新:
奇怪的是,这可能是 ISP 层面的问题。我指导她完全绕过路由器(将她的电脑直接插入电缆调制解调器),但她仍然无法退出(“退出”的意思是“使用 Safari 访问网页”)。让我感到困惑的是,我能够进入。这对我来说似乎很奇怪。
答案1
显然,内部流量正在顺利穿越网络,NAT 路由器部分在您进入时工作正常,返回流量也正在返回。您的错误是将 ping 和 tracert 误认为是告诉您某些东西是否可用 - 它们只告诉您有关目标如何响应 ICMP 流量的信息。
Ping\tracert 使用 ICMP,而她的路由器很可能只是丢弃了 ICMP,所以如果它们没有响应,并不表示有任何东西损坏。这完全取决于路由器的配置方式。我的(家用)路由器丢弃针对其外部接口的外部 ICMP 流量,因此我可以(通常)ping 内部(私有)地址,但不能 ping 外部(公共)地址。我也可以完全禁用它的 ICMP,并且两边都没有响应,但它在所有情况下仍然正常工作,我可以通过它的正常 Web 管理界面进行管理,并且它可以正确路由。
答案2
在命令提示符中执行路线打印以查看是否存在任何奇怪的路线:
route print
发表输出。
编辑:抱歉,Mac。打开终端并输入“route”。
答案3
看起来你母电脑(我们的路由器)上的防火墙正在过滤流量。你应该在母电脑上运行:
arp -d <IP_router>
ping -c1 <IP_router>
arp -n <IP_router>
如果您看到带有路由器的 IP 和 MAC 地址的 arp 条目,则说明她的计算机或路由器上的防火墙存在问题。
如果 traceroute 立即“死亡”,则意味着它收到了 ICMP 错误消息(而不是超时)。这证实了防火墙问题。