来自不同机器的“没有到主机的路由”

来自不同机器的“没有到主机的路由”

我有两台计算机在同一网络上,它们访问域名的行为不同。我正在尝试解决(无意双关)“无路由到主机”问题。如何让两台机器上的所有域名解析相同?

以下是正在发生的情况的一个例子:

机器 A:带有有线以太网的 Ubuntu 20.04 桌面

curl plex.tv
Moved Permanently%

连接正常并且重定向按预期返回。

机器 B:带有 wifi 连接的 Ubuntu 22.04 服务器

curl plex.tv
curl: (7) Failed to connect to plex.tv port 80 after 12287 ms: No route to host

奇怪的是,如果我用www.plex.tv它在两种情况下都运行良好。下面是针对不同测试域的行为表:

领域 机器 A 机器 B
plex.tv 作品 没有到主机的路由
www.plex.tv 作品 作品
美国国家公共电台 作品 没有到主机的路由
美国有线电视新闻网 作品 作品
youtube.tv 作品 作品

以下是每台机器的输出ip addressip route

机器 A

ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 00:2b:67:c1:fe:96 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether a8:7e:ea:71:a1:f6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.68/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp2s0
       valid_lft 75351sec preferred_lft 75351sec
    inet6 2600:1700:37a8:c210::42/128 scope global dynamic noprefixroute 
       valid_lft 3080sec preferred_lft 3080sec
    inet6 2600:1700:37a8:c210:a993:2446:f944:f1bb/64 scope global temporary dynamic 
       valid_lft 3141sec preferred_lft 3141sec
    inet6 2600:1700:37a8:c210:571d:2f99:79e0:7142/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 3141sec preferred_lft 3141sec
    inet6 fe80::1d11:11ad:dd77:72c0/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:94:ed:df:cc brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

...

ip route
default via 192.168.1.254 dev wlp2s0 proto dhcp metric 600 
169.254.0.0/16 dev wlp2s0 scope link metric 1000 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.1.0/24 dev wlp2s0 proto kernel scope link src 192.168.1.68 metric 600

机器 B

ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 7c:7a:91:27:7c:0c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.73/24 brd 192.168.1.255 scope global wlp2s0
       valid_lft forever preferred_lft forever
    inet6 2600:1700:37a8:c210::40/128 scope global dynamic noprefixroute 
       valid_lft 1973sec preferred_lft 1973sec
    inet6 2600:1700:37a8:c210:7e7a:91ff:fe27:7c0c/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 3589sec preferred_lft 3589sec
    inet6 fe80::7e7a:91ff:fe27:7c0c/64 scope link 
       valid_lft forever preferred_lft forever

...

ip route
default via 192.168.1.1 dev wlp2s0 proto static 
192.168.1.0/24 dev wlp2s0 proto kernel scope link src 192.168.1.73

我知道这里涉及很多配置细节,但我不确定哪些是有用的。我很乐意根据调试建议更新此帖子,请告诉我哪些是最有用的。

答案1

默认网关与您的计算机设置不同A如果它们都在同一个局域网和同一个广播域中,那肯定不是这样。

比较:

机器 A

ip route
default via 192.168.1.254 dev wlp2s0 proto dhcp metric 600

机器 B

ip route
default via 192.168.1.1 dev wlp2s0 proto static 

它也不同之处在于A有一个使用 DHCP 分配的网关,并且具有手动设置网关。

在我看来,B 能够通信简直是个奇迹。也许这是由于 192.168.1.1 节点向告知它使用了错误的网关。但这只是我的猜测。当您在 B 上打开 Wireshark 并探索通信时,您就会看到真相。

我的建议:

更正设置这样计算机的所有参数都已使用 DHCP 分配。

我不排除有其他原因。

相关内容