我有一台电脑(Mac Mini M1 / Big Sur)拒绝连接到同一本地网络上的其他电脑。我的问题是 (1) 为什么会发生这种情况,(2) 如何修复它 (3) 如何防止这种情况发生?
详情如下↓↓↓
假设这台计算机的 IP 为192.168.2.6
,我们再考虑另一台没有问题的计算机,地址为192.168.2.26
。从.26
可以 ping .6
,但从.6
无法 ping .26
(或 LAN 上的任何其他设备);它表示:
[192.168.2.6] $> ping 192.168.2.26
PING 192.168.2.26 (192.168.2.26): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
.6 上的 ARP 命令显示:
[192.168.2.6] $> arp -a
? (192.168.2.1) at 90:6c:ac:2e:5f:51 on en1 ifscope [ethernet]
? (192.168.2.6) at 14:98:77:60:3d:15 on en1 ifscope permanent [ethernet]
? (224.0.0.251) at 1:0:5e:0:0:fb on en1 ifscope permanent [ethernet]
如您所见,192.168.2.26
并未添加到缓存中。
现在,如果我检查路由表(我隐藏了 Internet6 部分):
[192.168.2.6] $> netstat -rn
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 192.168.2.1 UGScg en1
127 127.0.0.1 UCS lo0
127.0.0.1 127.0.0.1 UH lo0
169.254 link#12 UCS en1 !
192.168.2.1/32 link#12 UCS en1 !
192.168.2.1 90:6c:ac:2e:5f:51 UHLWIir en1 1191
192.168.2.4/32 link#12 UCS en1 !
192.168.2.6/32 link#12 UCS en1 !
192.168.2.6 14:98:77:60:3d:15 UHLWI lo0
224.0.0/4 link#12 UmCS en1 !
224.0.0.251 1:0:5e:0:0:fb UHmLWI en1
255.255.255.255/32 link#12 UCS en1 !
[192.168.2.6] $> netstat -rni
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
lo0 16384 <Link#1> 324332 0 324332 0 0
lo0 16384 127 127.0.0.1 324332 - 324332 - -
lo0 16384 ::1/128 ::1 324332 - 324332 - -
lo0 16384 fe80::1%lo0 fe80:1::1 324332 - 324332 - -
gif0* 1280 <Link#2> 0 0 0 0 0
stf0* 1280 <Link#3> 0 0 0 0 0
anpi1 1500 <Link#4> 1e:00:d9:36:56:42 0 0 0 0 0
anpi1 1500 fe80::1c00: fe80:4::1c00:d9ff 0 - 0 - -
anpi0 1500 <Link#5> 1e:00:d9:36:56:41 0 0 0 0 0
anpi0 1500 fe80::1c00: fe80:5::1c00:d9ff 0 - 0 - -
en0 1500 <Link#6> 14:98:77:5f:54:8b 0 0 0 0 0
en4 1500 <Link#7> 1e:00:d9:36:56:21 0 0 0 0 0
en5 1500 <Link#8> 1e:00:d9:36:56:22 0 0 0 0 0
en5 1500 fe80::489:2 fe80:8::489:219d: 0 - 0 - -
en2 1500 <Link#9> 36:da:2b:5c:28:c0 0 0 0 0 0
en3 1500 <Link#10> 36:da:2b:5c:28:c4 0 0 0 0 0
ap1* 1500 <Link#11> 36:98:77:60:3d:15 0 0 0 0 0
en1 1500 <Link#12> 14:98:77:60:3d:15 406922 0 734702 43 0
en1 1500 fe80::cb8:8 fe80:c::cb8:8b8c: 406922 - 734702 - -
en1 1500 192.168.2 192.168.2.6 406922 - 734702 - -
bridg 1500 <Link#13> 36:da:2b:5c:28:c0 0 0 0 0 0
awdl0 1500 <Link#14> 46:42:be:eb:5d:08 0 0 6 0 0
awdl0 1500 fe80::4442: fe80:e::4442:beff 0 - 6 - -
llw0 1500 <Link#15> 46:42:be:eb:5d:08 0 0 0 0 0
llw0 1500 fe80::4442: fe80:f::4442:beff 0 - 0 - -
utun0 1380 <Link#16> 0 0 2 0 0
utun0 1380 fe80::8ef4: fe80:10::8ef4:c50 0 - 2 - -
utun1 2000 <Link#17> 0 0 2 0 0
utun1 2000 fe80::a9c3: fe80:11::a9c3:e01 0 - 2 - -
与具有相同配置的健康计算机进行比较时,我注意到缺少以下默认路由:
- 到子网
192.168.2
,例如(从健康的计算机复制)
192.168.2 link#18 UCS en5 !
192.168.2 link#12 UCSI en0 !
- 到网络中的其他计算机,例如(从健康的计算机复制)
192.168.2.19 50:32:37:ea:56:8 UHLWI en5 13
我曾尝试:
- 添加静态路由
.6
到其他计算机。路由出现,netstat -rn
但症状没有消失
[192.168.2.6] $> sudo route add -host 192.168.2.6/32 -interface en1
- 多次刷新路由表,但仍然没有成功
[192.168.2.6] $> sudo route -n flush
- 重新启动、断开并重新连接网络接口
笔记:
- 我可以从以下位置访问互联网
.6
:
[192.168.2.6] $> ping www.google.com
PING www.google.com (142.250.206.228): 56 data bytes
64 bytes from 142.250.206.228: icmp_seq=0 ttl=57 time=20.794 ms
64 bytes from 142.250.206.228: icmp_seq=1 ttl=57 time=28.699 ms
.6
可以 ping 自己
[192.168.2.6] $> ping 192.168.2.6
PING 192.168.2.6 (192.168.2.6): 56 data bytes
64 bytes from 192.168.2.6: icmp_seq=0 ttl=64 time=0.095 ms
64 bytes from 192.168.2.6: icmp_seq=1 ttl=64 time=0.140 ms
64 bytes from 192.168.2.6: icmp_seq=2 ttl=64 time=0.121 ms
- 我可以从 ssh
.26
到.6
,但不能从.6
ssh 到.26
。更糟糕的是,我注意到192.168.0.19
我网络上的某些机器(例如 )根本无法 ssh 到.6
(我无法从 ssh.6
到 LAN 上的任何机器,包括.26
和.19
。在 LAN 上的任何其他机器之间 ping 和 SSH 都可以正常工作)
[192.168.2.19] $> ssh -p 22 192.168.2.6
ssh: connect to host 192.168.2.6 port 22: Operation timed out