编辑:现在根本不起作用,我仍然没有解决方案。症状如下:我可以从同一 LAN 上的所有非 Ubuntu 设备访问打印机,但不能从我的 Ubuntu 16.04 盒子访问。有什么想法吗?谢谢。
======
我正在尝试排除运行 Ubuntu 16.04 的 ThinkPad E460 与联网的 HP LaserJet Pro M402dw 打印机之间的连接故障:
- 笔记本电脑和打印机通过 wifi 连接到网络。
- 经常在几分钟内从工作变为损坏并再次恢复,而无需我特意更改任何设置。
- 笔记本电脑与互联网的连接正常。
- 局域网上的其他设备与打印机的连接正常。
当打印机正常工作时,我可以从我的笔记本电脑(192.168.1.yyy)上 ping 打印机(其 IP 地址为 192.168.1.xxx)。在 Wireshark 上,ping 如下所示:
Time Source Destination Protocol Length Info
[time] 192.168.1.yyy 192.168.1.xxx ICMP 98 Echo (ping) request...
[time] 192.168.1.xxx 192.168.1.yyy ICMP 98 Echo (ping) reply...
当它不工作时,我无法 ping 打印机,arp -a 报告其 MAC 地址为“不完整”。在 Wireshark 上,很明显 ping 本身从未真正传输过。相反,我的笔记本电脑在“IntelCor_[MAC]”处发送了一个未答复的 ARP 请求,如下所示:
Time Source Destination Protocol Length Info
[time] IntelCor_[MAC] Broadcast ARP 42 Who has 192.168.1.xxx? Tell 192.168.1.yyy
按照建议这里,我尝试使用 /etc/network/if-up.d/ 中的脚本为打印机设置静态 ARP 条目,如下所示:
#!/bin/sh
arp -i wlp1s0 -s 192.168.1.xxx [MAC address] # HP printer
有时它仍然有效,但并非总是如此。网络启动后连接可能会断开,重新启动网络不一定能解决问题。有了这个静态 ARP 条目,失败的 ping 请求如下所示:
Time Source Destination Protocol Length Info
[time] 192.168.1.yyy 192.168.1.xxx ICMP 98 Echo (ping) request...(no response found!)
请注意,这看起来与描述的网络问题表面上相似这里,但我认为我已经排除了该线程中描述的可能软件原因。我唯一没有做的事情是更换物理网络硬件。
对于可能的原因或如何进一步排除故障有什么建议吗?
======
附加信息:
当它不工作时:
- 我无法从笔记本电脑访问打印机的网络界面。
- 当我尝试打印时,Ubuntu 打印机属性窗口报告“过滤失败”。
- snmp、dnssd、lpinfo 和 avahi-browse 没有显示有关打印机的信息。
- 我仍然可以通过同一个 Wi-Fi 网络从我的 iPhone 和 Windows 计算机可靠地访问打印机。
补充笔记:
- 打印机睡眠模式已关闭以进行测试。
- 笔记本电脑的 iptables 防火墙已关闭,以供测试。
- 打印机的防火墙已关闭。
- 打印机的访问控制列表设置为允许本地网络中的所有连接(192.168.xxx.0,子网掩码 255.255.255.0)。
- wifi 网络是 Unifi 系统,有两个无线接入点以一个网络名称运行。DHCP 服务器已开启,网络上没有重复的 IP 地址。
======
先前请求的输出:
$ nmcli device
DEVICE TYPE STATE CONNECTION
wlp1s0 wifi connected [Network Name]
enp0s31f6 ethernet unavailable --
lo loopback unmanaged --
$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
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
2: enp0s31f6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether [MAC address of laptop's ethernet card] brd ff:ff:ff:ff:ff:ff
3: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether [MAC address of laptop's wifi card] brd ff:ff:ff:ff:ff:ff
inet 192.168.1.99/24 brd 192.168.1.255 scope global dynamic wlp1s0
valid_lft 83676sec preferred_lft 83676sec
inet6 [IPv6 address]/64 scope link
valid_lft forever preferred_lft forever
$ sudo lshw -short -class network
H/W path Device Class Description
====================================================
/0/100/1c/0 wlp1s0 network Dual Band Wireless-AC 3165 Plus Bluetoo
/0/100/1f.6 enp0s31f6 network Ethernet Connection I219-V
$ rfkill list
0: tpacpi_bluetooth_sw: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
4: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
$ ls -l /etc/resolv.conf
lrwxrwxrwx 1 root root 29 Jan 10 2017 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
$ ls -l /run/resolvconf/resolv.conf
-rw-r--r-- 1 root root 196 Apr 17 10:56 /run/resolvconf/resolv.conf
额外要求的输出:
$ nmcli device show wlp1s0 | grep IP4.DNS
IP4.DNS[1]: 192.168.1.1
IP4.DNS[2]: 1.1.1.1
IP4.DNS[3]: 1.0.0.1
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
search [domain.tld]
请注意,[domain.tld] 是附加在 LAN 上所有主机名上的不可解析域名。另外,恕我直言,我总是通过 IP 地址而不是主机名来 ping 和访问 Web 界面。每当我无法打印时,我甚至无法从我的笔记本电脑通过 IP 地址访问打印机。
其他所需信息:
sudo grep -r -n "192.168.1.1" /run/resolvconf/* 未返回任何内容。
/run/resolvconf 中只有三个文件:
/run/resolvconf/enable-updates:这是一个空文件。
/run/resolvconf/resolv.conf:参见上文。
/运行/resolvconf/接口/网络管理器:
search [domain.tld]
nameserver 127.0.1.1