Ubuntu 不回复 ARP 请求

Ubuntu 不回复 ARP 请求

我在我的 Linux 机器上遇到了我无法解释的行为。我看到传入的 ARP 请求,但我的机器没有应答它们。当我将以太网电缆插入 Windows 10 计算机时,这些 ARP 请求就会得到应答。

我还注意到,当我尝试 nmap 目标时,我无法捕获该设备上的流量192.168.1.106。我看到传入的 ARP 请求,但根本看不到传出的数据包。当我切换目标(和接口)时,我确实看到来自 nmap 的传出流量。不知道这是否与ARP问题有关。我只是有这个想法,因为如果没有 ARP 响应,nmap 扫描应该如何工作......

我有一台 Ubuntu 16.04 机器,有几个接口。我自己为这些设置了 IP。发送 ARP 请求的设备连接到该enp0s25接口。该命令的输出结果ifconfig如下:

enp0s25   Link encap:Ethernet  HWaddr b0:5a:da:ee:38:cd  
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::3f90:bbf0:85e2:6423/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6314 errors:0 dropped:0 overruns:0 frame:0
          TX packets:603 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:404096 (404.0 KB)  TX bytes:50704 (50.7 KB)
          Interrupt:20 Memory:d2100000-d2120000 

enx00249b1963d4 Link encap:Ethernet  HWaddr 00:24:9b:19:63:d4  
          inet addr:192.168.1.99  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::5ecb:670e:5bd1:7ac1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:393532 errors:0 dropped:0 overruns:0 frame:0
          TX packets:393429 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:19874193 (19.8 MB)  TX bytes:30957637 (30.9 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:141121 errors:0 dropped:0 overruns:0 frame:0
          TX packets:141121 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7408865 (7.4 MB)  TX bytes:7408865 (7.4 MB)

wlp61s0   Link encap:Ethernet  HWaddr a4:c4:94:5c:a3:aa  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: 2600:1007:b000:743e:265b:1fb5:bb6c:2e5/64 Scope:Global
          inet6 addr: fe80::e5a4:4dcb:ed06:e981/64 Scope:Link
          inet6 addr: 2600:1007:b00e:643d:244c:2307:f4ac:1b16/64 Scope:Global
          inet6 addr: 2600:1007:b000:743e:244c:2307:f4ac:1b16/64 Scope:Global
          inet6 addr: 2600:1007:b00e:643d:c233:8501:765e:d4f6/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14764 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6658 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:13720070 (13.7 MB)  TX bytes:822384 (822.3 KB)

当我设置时,tcpdump这是输出的片段:

14:58:49.666404 ARP, Request who-has 192.168.1.100 (Broadcast) tell 192.168.1.106, length 42
14:58:50.676781 ARP, Request who-has 192.168.1.100 (Broadcast) tell 192.168.1.106, length 42
14:58:52.666512 ARP, Request who-has 192.168.1.100 (Broadcast) tell 192.168.1.106, length 42
14:58:54.666590 ARP, Request who-has 192.168.1.100 (Broadcast) tell 192.168.1.106, length 42
14:58:55.676786 ARP, Request who-has 192.168.1.100 (Broadcast) tell 192.168.1.106, length 42
14:58:57.666634 ARP, Request who-has 192.168.1.100 (Broadcast) tell 192.168.1.106, length 42
14:58:59.666768 ARP, Request who-has 192.168.1.100 (Broadcast) tell 192.168.1.106, length 42
14:59:00.676963 ARP, Request who-has 192.168.1.100 (Broadcast) tell 192.168.1.106, length 42
14:59:02.666846 ARP, Request who-has 192.168.1.100 (Broadcast) tell 192.168.1.106, length 42
14:59:04.666932 ARP, Request who-has 192.168.1.100 (Broadcast) tell 192.168.1.106, length 42
14:59:05.677240 ARP, Request who-has 192.168.1.100 (Broadcast) tell 192.168.1.106, length 42
14:59:07.667045 ARP, Request who-has 192.168.1.100 (Broadcast) tell 192.168.1.106, length 42
14:59:09.667172 ARP, Request who-has 192.168.1.100 (Broadcast) tell 192.168.1.106, length 42

我已经做了一些研究,但找不到(或理解)我需要什么来解决我的问题。如果有帮助的话,这是命令ip rule show和的输出ip route show table local。我在本网站的另一个问题上发现了这一点,但我无法使用此信息。

john@john:~$ ip rule show
0:  from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default 
john@john:~$
john@john:~$
john@john:~$ ip route show table local
broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1 
broadcast 192.168.1.0 dev wlp61s0  proto kernel  scope link  src 192.168.1.2 
broadcast 192.168.1.0 dev enx00249b1963d4  proto kernel  scope link  src 192.168.1.99 
broadcast 192.168.1.0 dev enp0s25  proto kernel  scope link  src 192.168.1.100 
local 192.168.1.2 dev wlp61s0  proto kernel  scope host  src 192.168.1.2 
local 192.168.1.99 dev enx00249b1963d4  proto kernel  scope host  src 192.168.1.99 
local 192.168.1.100 dev enp0s25  proto kernel  scope host  src 192.168.1.100 
broadcast 192.168.1.255 dev wlp61s0  proto kernel  scope link  src 192.168.1.2 
broadcast 192.168.1.255 dev enx00249b1963d4  proto kernel  scope link  src 192.168.1.99 
broadcast 192.168.1.255 dev enp0s25  proto kernel  scope link  src 192.168.1.100

答案1

因此,尝试解决您问题的几个技术方面。

最大的技术问题是在您的两个以太网和一个 wifi 网络接口上具有相同的网络块。这会弄乱你的路由。

我还发现您似乎在 wifi 接口中的 MAC 地址之间切换得太快。这会干扰您当前的连接(并关闭它们)。

由于 wifi 是经过身份验证的,一旦您欺骗了新的 MAC 地址,您就必须取下您的接口(欺骗之前),然后再次将其放上(欺骗之后),使用新的 MAC 地址再次执行所有身份验证过程。否则,AP 将停止与您打交道,因为它不知道您的接口已通过身份验证。

注意事项:在某些设备/设置/品牌上,需要等待一段时间或使用相同的新 MAC 重复该过程几次,以便旧的 MAC 不被使用(缓存、其他)。在一些更罕见的 wifi 驱动程序中,驱动程序可能不喜欢您更改识别 wifi 品牌的 MAC 地址的前三个字节,因此您只能欺骗较低的三个字节。

此外,您的 IPv6 地址正在泄漏到您的 MAC 地址之外。由于您的提供商提供 IPv6 并且您已经假设了多个 IPv6 地址,这会给您带来问题,就像在 Linux 中一样,默认情况下 IPv6 优先于 IPv4。此外,这种流血行为很快就会让任何网络管理员发现您不怀好意。一种可能的解决方法是在欺骗 MAC 地址时完全禁用 IPv6。

此外,您的接口名称表示您正在使用基于 Realtek 的芯片组。虽然价格便宜,但它们的质量较低,而且众所周知,它们会带来连接稳定性问题。雷凌或 atheros 的某些型号更适合此类活动。参见相关使用华硕 USB-N13 适配器的 Wi-Fi 问题

附言。显然,不存在水晶球。这是由于一组线索组合在一起,指出了您的系统正在执行的活动类型。我建议尝试更好地理解使用表现不佳的实用程序执行更模糊的操作会产生什么后果。

相关内容