我在同一网络上有 2 台计算机,它们具有不同的访问域名的行为。我正在尝试解决(没有双关语)“没有主机路由”问题。如何让所有域在两台机器上均等解析?
这是正在发生的事情的一个例子:
机器 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 |
---|---|---|
丛电视 | 作品 | 没有到主机的路由 |
www.plex.tv | 作品 | 作品 |
npr.org | 作品 | 没有到主机的路由 |
美国有线电视新闻网 | 作品 | 作品 |
youtube.tv | 作品 | 作品 |
这是每台机器的ip address
和输出:ip 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
我知道这里涉及到很多配置细节,但我不确定什么是有用的。我很高兴根据调试建议更新这篇文章,请让我知道什么是最有用的。
您的计算机设置A和B的默认网关不同。如果它们都在同一个 LAN 和同一个广播域中,这绝对不应该。
相比:
机器A
机器 B
不同之处还在于A有一个使用 DHCP 分配的网关,而B有一个手动设置的网关。
在我看来,B 的交流完全是一个奇迹。这可能是由于 192.168.1.1 节点发送给B的 ICMP 重定向数据包通知它B使用了错误的网关。但这只是我的猜测。当您在 B 上打开 Wireshark 并探索通信时,您将看到现实。
我的建议:
更正B上的设置,使计算机具有使用 DHCP 分配的所有参数。
我不排除原因是其他原因。