问题
我的局域网上有一台 Brother MFC-2700DW,我正尝试从各种设备进行访问。我在 OpenWRT 路由器中为其分配了一个静态主机名 (ohbrother) 和 IP (192.168.2.135)。
奇怪的是,有些设备能够毫无问题地访问它,而其他设备却根本无法访问它。
例如,通过 WiFi 连接的 Windows 桌面可以进行打印、访问其 Web UI 以及对其进行 ping 操作:
C:\Users\hulettbh>ping ohbrother
Pinging ohbrother.lan [192.168.2.135] with 32 bytes of data:
Reply from 192.168.2.135: bytes=32 time=2ms TTL=255
Reply from 192.168.2.135: bytes=32 time=6ms TTL=255
Reply from 192.168.2.135: bytes=32 time=5ms TTL=255
Reply from 192.168.2.135: bytes=32 time=3ms TTL=255
Ping statistics for 192.168.2.135:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 6ms, Average = 4ms
我还可以通过有线连接从我的 archlinux 服务器 ping ohbrother。
我尝试过的所有其他设备都无法访问打印机。我的 Android 手机、我伴侣的 chromebook 和我的 archlinux 笔记本电脑(均采用无线连接)都无法访问 Web UI。从我的 arch 笔记本电脑 (gemini) ping ohbrother 时,出现“目标主机无法访问”:
❯ ping ohbrother.lan
PING ohbrother.lan (192.168.2.135) 56(84) bytes of data.
From gemini (192.168.2.211) icmp_seq=1 Destination Host Unreachable
From gemini (192.168.2.211) icmp_seq=2 Destination Host Unreachable
迄今为止的调查
我尽我所能做了一些研究,发现“目标主机无法访问”表示设备没有目标的 ARP 条目,并且找不到该条目(来源)我在路由器上运行了 tcpdump 来查看网络流量,同时我的笔记本电脑正在尝试 ping 服务器:
root@OpenWrt:~# tcpdump host 192.168.2.135
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br-lan, link-type EN10MB (Ethernet), capture size 262144 bytes
09:06:59.857646 ARP, Request who-has printer tell gemini.lan, length 28
09:07:00.873536 ARP, Request who-has printer tell gemini.lan, length 28
09:07:01.886904 ARP, Request who-has printer tell gemini.lan, length 28
09:07:02.903066 ARP, Request who-has printer tell gemini.lan, length 28
09:07:03.916218 ARP, Request who-has printer tell gemini.lan, length 28
09:07:04.927342 ARP, Request who-has printer tell gemini.lan, length 28
如您所见,笔记本电脑正在发出 ARP 请求,但没有人响应。我在 Windows 桌面上重复了这个实验(首先删除 ohbrother 的 ARP 表条目),我可以看到is-at
对其who-has
请求的响应。
我不确定如何进一步调试。有人知道是什么原因造成的吗?
更新:问题出在电力线网络
打印机通过电力线网络套件(两对 Extollo LANPlug 2000)连接到网络。我最初没有怀疑这一点,但现在决定尝试将其从系统中移除。
当我通过直接有线连接将打印机连接到路由器(中间没有电力线网络)时,问题就消失了!这不是一个可行的长期解决方案,所以我需要看看我是否可以隔离 LANPlug 的问题。看起来它有一个配置用户界面我可以戳一下。
答案1
我在安装了 OpenWRT 的旧 TPLink 路由器上也遇到了类似的问题。OpenWRT 中有一个错误,导致某些 LAN 端口无法看到其他 LAN 端口。目前尚不清楚哪些端口受到影响,但这是 OpenWRT 中已知的错误。已经过去了几年,但也许你也遇到了同样的问题?
我不记得这是否是我遇到的完全相同的问题,但也许这篇文章可以帮助您指明正确的方向: https://serverfault.com/questions/384613/cant-communicate-between-lan-ports-on-openwrt-router
就我而言,它只影响了某些端口。显然,对于某些人来说,它会影响所有端口。无论如何,祝你好运!
。
答案2
发现问题出在我的电力线网络设置 (Extollo LANPlug 2000s) 上后,我尝试进行固件升级。固件升级失败 (设备无法重新启动),因此我进行了恢复出厂设置并重新配对。
这样做之后问题就解决了,现在我测试的每个设备都能够通过电力线网络设置 ping 打印机。
所以最后“关机再开机”还是赢了。诀窍是找到正确的电源循环方法。