解决 LAN 网络问题

解决 LAN 网络问题

编辑:现在根本不起作用,我仍然没有解决方案。症状如下:我可以从同一 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

相关内容