我想在本地网络上运行一个服务器。它是一台运行 NixOS 并使用静态 IP 192.168.0.16 的机器。所有其他设备都使用 DHCP。
该服务器称为M,我的笔记本电脑称为S(192.168.0.150)。
怎么了?
网络中的设备无法互相看到。使用 wireshark,我发现当我从笔记本电脑 ping 服务器时,笔记本电脑会以广播形式发送 ARP 请求“谁有 192.168.0.16?告诉 192.168.0.150”。此 ARP 请求从未到达我的服务器,笔记本电脑也没有得到任何答复。
从服务器来说也是一样,ARP请求不被广播。
什么有效?
ping localhost
可在两台机器上工作ping 192.168.0.1
(路由器/网关 IP)在两台机器上均可用- 两台机器都可以正常访问互联网
ip r
M 上的输出(S 上类似):
default via 192.168.0.1 dev wls1 proto static
192.168.0.0/24 dev wls1 proto kernel scope link src 192.168.0.16
ip a
M 上的输出:
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: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether c8:2a:14:0d:5d:d7 brd ff:ff:ff:ff:ff:ff
3: wls1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 44:2a:60:dd:a0:fd brd ff:ff:ff:ff:ff:ff
altname wlp3s0
inet 192.168.0.16/24 scope global wls1
valid_lft forever preferred_lft forever
inet6 fe80::462a:60ff:fedd:a0fd/64 scope link
valid_lft forever preferred_lft forever
问题很奇怪,有时 ping 和访问会按预期工作。我无法完美地记录下来,但“感觉”有时网络中的两个设备无法互相看到(而其他设备可以)。路由器型号是TL-WR481N v14
。
答案1
您可以通过分配静态 IP,然后断开 M 和 S 与路由器的连接并使用网线直接将它们相互连接来进行测试。
完成此操作后,假设问题已解决,请重新连接路由器,但继续使用静态 IP 地址。如果问题已解决,则意味着它与 DHCP 有关。
答案2
我设置路由器每天重启,这解决了问题(大部分)。如果再次出现这种情况,我会重启路由器。这可能不是一个好的解决方案,但它确实有效。