路由表坏了?

路由表坏了?

我有一台带有热点(接口 wlp1s0)的 Linux 机器,并设置了到该热点的 WiFi 连接(接口 wlxe84e063ea32c)。我知道这很疯狂,用户可以自己设置。我知道解决方案是不要设置这样的东西。我仍然很惊讶它不起作用。为什么它不起作用,路由表应该是什么样子?症状是 Flask 服务器无法从这台机器提供 http 页面,而我ssh 到它。也许 sshd 和 Flask 以不同的方式绑定到端口?

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.42.0.1       0.0.0.0         UG    600    0        0 wlxe84e063ea32c
10.42.0.0       0.0.0.0         255.255.255.0   U     600    0        0 wlp1s0
10.42.0.0       0.0.0.0         255.255.255.0   U     601    0        0 wlxe84e063ea32c
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlp1s0

有趣的是,插入以太网电缆就可以解决这个问题。路由表看起来像这样

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.1    0.0.0.0         UG    100    0        0 eno1
0.0.0.0         10.42.0.1       0.0.0.0         UG    600    0        0 wlxe84e063ea32c
10.42.0.0       0.0.0.0         255.255.255.0   U     600    0        0 wlp1s0
10.42.0.0       0.0.0.0         255.255.255.0   U     601    0        0 wlxe84e063ea32c
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlp1s0
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 eno1

我正在从名为“Silvia”的机器进行连接,我们将有问题的机器称为“foobar”。以下连接场景是WiFi连接热点时不工作的情况。

西尔维娅 -> 热点 -> foobar

答案1

从表面上看,你有两个问题:

  • 如果没有以太网电缆,您的默认路由是通过热点接口,因为您没有其他默认路由设置 - 您应该能够从同一广播域中的其他主机(即从 10.42.0.0/ 中的其他主机)到达您的节点24 网络),但您无法从其他任何地方访问它
  • 使用以太网电缆,您就有了一个有效的默认路由/网关,实际上它确实可以工作,因为您的主机现在可以到达 10.42.0.0/24 网络之外的其他节点。

基本上,在没有以太网电缆的情况下,这是尽其所能地工作,但这不是很好 - 如果没有默认路由,您可以到达 10.42.0.0/24,但没有其他。

所以,是的,让你的主机成为一个热点并成为自己热点的无线客户端并没有多大意义,而且如果没有地方供流量使用,你的热点就没有多大用处。

更新以回复以下评论:

对于连接到自己的热点的情况,它可能有助于快速解析路由表:

下面的一行表示与下面任何其他路由不匹配的流量应该使用 10.42.0.1 作为网关。

0.0.0.0         10.42.0.1       0.0.0.0         UG    600    0        0 wlxe84e063ea32c

下面的条目表示要访问 10.42.0.0/24,wlp1s0 是首选设备

10.42.0.0       0.0.0.0         255.255.255.0   U     600    0        0 wlp1s0

下面的条目表示要访问 10.42.0.0/24,wlxe84e063ea32c 是备份设备

10.42.0.0       0.0.0.0         255.255.255.0   U     601    0        0 wlxe84e063ea32c

此条目与讨论无关

169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlp1s0

或者,简单地说:wlp1s0 没有默认网关,但 wlxe84e063ea32c 被告知 10.42.0.1 是默认网关。由于 wlp1s0 被分配为 10.42.0.1,这意味着实际上仍然无处可让非本地流量流向。

或者,如果我会画画,就会有这样的图画client NIC -> hostpot NIC -> hostpot NIC (because hotspot NIC is the default gateway)

当您插入以太网电缆时,wlp1s0 确实有一个默认路由,即通过有线网卡发送流量。

如果我会画画,就会有这样的图画client NIC -> hotspot NIC -> wired interface -> internetz

问题在于,从物理上来说,您期望“物理”信号如何在热点和foobar节点之间传输。

这些信号要么以电脉冲的形式在电线上传播(我们知道这是有效的),要么是您的热点并foobar通过无线电信号进行通信,这需要foobar连接到热点。

相关内容