为什么家庭互联网连接在一台计算机上可以工作,而在另一台计算机上却不工作?

为什么家庭互联网连接在一台计算机上可以工作,而在另一台计算机上却不工作?

我通过具有静态 IP 地址的路由器(AT&T U-Verse)建立了互联网连接。

在大多数情况下,它是有效的......但我昨天遇到了一些相当奇怪的事情。

我有一个本地网络。所有其他计算机的所有流量都通过我的主计算机,该计算机具有强大的防火墙。(防火墙不是罪魁祸首,不要在这里妄下结论。问题自行解决,从那时起我就没有改变防火墙。)

所以...我的网络看起来像这样:

+------------+    +------------+    +------------+    +------------+
|            |    |            |    |            |    |            |
|    LAN     |<-->|  Main PC   |<-->|  Router    |<-->|  Internet  |
|            |    |            |    |            |    |            |
+------------+    +------------+    +------------+    +------------+
 192.168.2.45      192.168.2.1                                [eth1]
                   192.168.1.1       192.168.1.254          [eth0:0]
                   x.x.x.120         162.220.130.126          [eth0]

因此,我的主计算机有一个静态 IP 地址,它使用网关 162.226.130.126 来访问互联网。我不确定网关在哪里指定,但我记得我把它放在路由器中,这样系统才能正常工作。

现在……昨天某个时候,我的主 PC 完全无法访问互联网。到目前为止……好吧……我想说,这种情况经常发生,所以没什么奇怪的。我无法连接任何东西,无法从名称中获取 IP 地址等。一切看起来都像是宕机了。

但是,我主 PC 旁边的 LAN 计算机(使用主 PC 连接到互联网)工作正常。不仅如此,它还会继续播放 Youtube.com 上的电影,只要我在 LAN 计算机上,我就可以访问任何网站,例如 Google 等。

对我来说这完全没有道理。主 PC 将 LAN 计算机数据包转发到 Internet... 那么当主 PC 停止工作时它怎么能继续工作呢?(即从外部看,IP 地址是相同的,因此如果我的 ISP 对我设置了防火墙,那么什么都行不通。)

我在两台计算机上都尝试了traceroute,得到了以下结果。

从局域网计算机进行跟踪让我摆脱困境,但它似乎跳过了网关:

traceroute 45.55.5.185
traceroute to 45.55.5.185 (45.55.5.185), 30 hops max, 60 byte packets
 1  halk (192.168.2.1)  0.368 ms  0.374 ms  0.367 ms
 2  192.168.1.254 (192.168.1.254)  0.813 ms  1.045 ms  1.048 ms
 3  162-201-40-3.lightspeed.frokca.sbcglobal.net (162.201.40.3)  20.271 ms  21.638 ms  23.065 ms
 4  75.29.64.148 (75.29.64.148)  28.758 ms  28.999 ms  29.520 ms
 5  12.83.77.141 (12.83.77.141)  27.213 ms 12.83.77.149 (12.83.77.149)  30.960 ms 12.83.77.141 (12.83.77.141)  31.212 ms
 6  12.122.149.133 (12.122.149.133)  36.060 ms  35.725 ms  35.960 ms
 7  192.205.32.222 (192.205.32.222)  36.200 ms  24.034 ms  24.786 ms
 8  digitalocean-ic-302451-sjo-b21.c.telia.net (62.115.34.18)  28.043 ms digitalocean-ic-306499-sjo-b21.c.telia.net (62.115.45.22)  29.201 ms digitalocean-ic-302451-sjo-b21.c.telia.net (62.115.34.18)  30.409 ms
 9  * * *

从主 PC 进行跟踪,我只得到一个条目,即网关:

traceroute 45.55.5.185
traceroute to 45.55.5.185 (45.55.5.185), 30 hops max, 60 byte packets
 1  x.x.x.126  0.556 ms  0.742 ms  1.029 ms
 2  * * *

我刚刚上床睡觉,早上一切都恢复正常,现在traceroute主电脑上的 可以像 LAN 电脑上一样工作,并按预期连接到 DigitalOcean 电脑。

所以我的问题并不是“发生了什么?”因为这个问题可能很难回答,而是“为什么同一个隧道对一台计算机有效,而对另一台计算机却无效呢?”

答案1

根据您问题中的信息,我将做出一些假设。

  1. 您说这是家庭互联网连接,这让我认为您的 WAN IP 地址和/或网关(来自您的 ISP)实际上是动态的。这意味着您的路由器应该在 DHCP 租约到期后偶尔续订,并可能在续订时收到新的 WAN IP 和/或网关。
  2. 您说您有一个静态 IP 地址,但我认为您这样说只是因为您手动为路由器分配了内部地址 192.168.1.254。
  3. 我看不到您的网络掩码,但似乎您有两个子网 - 192.168.1.0/24 和 192.168.2.0/24。我假设这两个子网的网络掩码都是 255.255.255.0。

基于这些假设,以下是发生以下情况的一种可能性:

从“主 PC”的角度来看,您使用的是默认网关 162.226.130.126,而此时您应该使用来自 ISP 的动态网关。从 LAN 的角度来看,成功的跟踪路由明显表明了这一点,其中跳跃发生在 192.168.1.254 和 162.201.40.3 之间。实际上没有到达 162.226.130.126。因此,它给我的印象是您的路由器正在定期更新 DHCP 租约,以至少获取默认 WAN 网关。由于 LAN 上的主机使用路由器 192.168.1.254 的实际地址作为网关,而不是已过期的 WAN 网关(参见假设 1),因此来自需要路由的 LAN 的出站数据包最终将通过路由器的路由表,此时路由器将具有通过 ISP 访问互联网所需的适当动态默认 WAN 网关。回到“主 PC”的角度,由于您使用的默认网关相当于过期的 WAN 网关,因此您正在绕过路由操作,而不依赖于实际路由器的动态网关更新。一个合理的解决方法可能是仅使用路由器的 IP 地址 192.168.1.254 作为“主 PC”的默认网关。

相关内容