场景:
192.168.1.1
-- 路由器192.168.1.2
-- 一台服务器,通过以太网连接到路由器192.168.1.3
-- 笔记本电脑 A,通过 WiFi 连接到路由器192.168.1.8
-- 笔记本电脑 B,通过 WiFi 连接到路由器
所有计算机(路由器除外)都运行 Ubuntu。所有计算机都可以访问互联网。
问题:
- 服务器可以访问路由器和笔记本电脑 A,但不能访问笔记本电脑 B
- 笔记本电脑 A 可以访问路由器和服务器,但无法访问笔记本电脑 B
- 笔记本电脑 B 只能访问路由器,无法访问服务器和笔记本电脑 A
这里的“到达”是指:ping
、arping
或ssh
任何其他通过 TCP/IPv4 的协议。路由器不支持 IPv6。
发生了什么事?我该如何解决这个问题?
附加信息
当我尝试
ping
从笔记本电脑 B 或向笔记本电脑 B 进行操作时,我得到了Destination Host Unreachable
。当尝试连接(例如通过 ssh)从笔记本电脑 B 或连接到笔记本电脑 B 时,我得到以下信息
No route to host
。在笔记本电脑 A 上,我尝试使用以下命令手动将笔记本电脑 B 的 MAC 地址添加到 ARP 缓存中:
$ arp -s 192.168.1.8 68:a3:c4:10:53:da
但没有运气。
tracepath
没有返回任何有用的信息:$ tracepath -n 192.168.1.8 # Run on laptop A 1?: [LOCALHOST] pmtu 1500 1: 192.168.1.3 2996.146ms !H Resume: pmtu 1500 $ tracepath -n 192.168.1.3 # Run on laptop B 1?: [LOCALHOST] pmtu 1500 1: 192.168.1.8 2997.463ms !H Resume: pmtu 1500
路由器的 DHCP 服务器在任何计算机上返回正确的地址(所有计算机都使用 Avahi)。
该路由器支持 2.4 GHz 和 5 GHz,但两台笔记本电脑都使用 2.4 GHz 频段
nm-tool
(目前,笔记本电脑 A 为 2462 MHz,笔记本电脑 B 为 2464 MHz)。iptables
连锁店都是空的,都有政策ACCEPT
。route
并ip route
在所有计算机上返回预期的输出:$ ip route # From laptop A default via 192.168.1.1 dev wlan0 proto static 192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.3 metric 9 $ ip route # From laptop B default via 192.168.1.1 dev wlan0 proto static 192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.8 metric 9
nmap -sP 192.168.1.1/24
返回:- 从笔记本电脑 A 或服务器运行时:LAN 中的所有地址,除了
192.168.1.8
- 从笔记本电脑 B 运行时:仅
192.168.1.1
和192.168.1.8
。
- 从笔记本电脑 A 或服务器运行时:LAN 中的所有地址,除了
这是
lspci
来自笔记本电脑 B 的数据:12:00.0 Network controller: Broadcom Corporation BCM4313 802.11bgn Wireless Network Adapter (rev 01) Subsystem: Dell Inspiron M5010 / XPS 8300 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 17 Region 0: Memory at fbb00000 (64-bit, non-prefetchable) [size=16K] Capabilities: <access denied> Kernel driver in use: bcma-pci-bridge
是的,我知道这是令人讨厌的 Broadcom。但我使用的是免费驱动程序 (
brcmsmac
)。相关的
dmesg
:[ 19.597541] brcmsmac bcma0:0: mfg 4bf core 812 rev 24 class 0 irq 17 [ 19.610379] ieee80211 phy0: registered radio enabled led device: brcmsmac-phy0:radio gpio: 243 [ 23.021922] brcmsmac bcma0:0: brcms_ops_bss_info_changed: qos enabled: false (implement) [ 23.022072] brcmsmac bcma0:0: brcms_ops_config: change power-save mode: false (implement) [ 24.920808] brcmsmac bcma0:0: brcmsmac: brcms_ops_bss_info_changed: associated [ 24.920828] brcmsmac bcma0:0: brcms_ops_bss_info_changed: qos enabled: true (implement) [ 24.977079] brcmsmac bcma0:0: brcmsmac: brcms_ops_bss_info_changed: disassociated [ 24.977091] brcmsmac bcma0:0: brcms_ops_bss_info_changed: qos enabled: false (implement) [ 24.985762] brcmsmac bcma0:0: brcmsmac: brcms_ops_bss_info_changed: associated [ 24.985769] brcmsmac bcma0:0: brcms_ops_bss_info_changed: qos enabled: true (implement) [ 25.135123] brcmsmac bcma0:0: brcms_ops_bss_info_changed: arp filtering: 1 addresses (implement)
答案1
你可以尝试一下驱动程序韓國从内核版本 3.18 反向移植。
将其下载到您的桌面:https://www.kernel.org/pub/linux/kernel/projects/backports/stable/v3.18.1/backports-3.18.1-1.tar.xz右键单击并选择“在此处提取”。然后:
sudo apt-get update
sudo apt-get install linux-headers-generic build-essential
cd ~/Desktop/backports-3.18-1
make defconfig-brcmsmac
make
sudo make install
重新启动并告诉我们它是否按预期运行。我们可能还需要执行一步。