我的一块网卡有两个冲突的 IP。如何解决?

我的一块网卡有两个冲突的 IP。如何解决?

我搜索了我的问题,虽然有类似的问题,但没有一个能给我指明正确的方向。如果它看起来像是一个重复的问题,我很抱歉。

我的 ISP 调制解调器后面有一个 LAN,由 TP-Link TL-WR941ND 路由;DHCP 服务器已启动,但我保留了一些地址。我在这里列出这些:

  • Raspberry Pi(以太网)-> 192.168.0.100
  • Macbook Pro(WiFi)-> 192.168.0.101
  • 小米手机(wifi)->192.168.0.102
  • 第二台笔记本电脑(wifi)-> 192.168.0.111
  • 摩托罗拉手机(wifi)-> 192.168.0.112(如您所见,我跳转到 .111 以防我想添加更多自己的设备,.111 和 .112 是来自家庭其他成员的设备)。

现在的问题是,我在 DHCP 客户端列表中看到 Raspberry 被正确列为“永久”,而小米手机的租约倒计时地址为 192.168.0.103(应该是 .102)。我可以为手机保留 .103 然后就完事了,但我不想在 DHCP 列表中出现这种混乱,也不想避免将来在网络中发生冲突。我在这里提供了我能收集到的所有信息:

我从 Macbook 启动了 arp-scan:

$sudo arp-scan -I en0 -l

Interface: en0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9 with 256 hosts
192.168.0.1     [TP-Link MAC]       TP-LINK TECHNOLOGIES CO.,LTD.
192.168.0.100   [Pi MAC]            Raspberry Pi Foundation ####<<<<----?????
192.168.0.102   [Pi MAC]            Raspberry Pi Foundation ####<<<<----?????
192.168.0.104   [guest phone MAC]   (Unknown)
192.168.0.103   [Xiaomi phone MAC]   Airgo Networks, Inc.

621 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9: 256 hosts scanned in 1.862 seconds (137.49 hosts/sec). 5 responded

在 Pi 上,我运行 ip 地址:

$ip a show eth0

 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
 link/ether b8:27:eb:0a:ec:42 brd ff:ff:ff:ff:ff:ff
 inet 192.168.0.100/24 brd 192.168.0.255 scope global eth0        ####<<<<----????
valid_lft forever preferred_lft forever
 inet 192.168.0.102/24 brd 192.168.0.255 scope global secondary eth0  ####<<<<----????
valid_lft forever preferred_lft forever
 inet6 fe80::ba27:ebff:fe0a:ec42/64 scope link
valid_lft forever preferred_lft forever

在 Pi 上的 /etc/network/interfaces 中:

$cat /etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
# Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp       ####<<<----- seems ok, right?

allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

路由器上的 ARP 列表没有任何 MAC 绑定/链接。

说实话,我不知道发生了什么。我猜 Raspberry 正在做一些奇怪的事情,但说实话,我既不是 Linux 专家也不是系统管理员,我有点迷茫。

知道发生什么事了吗?

提前致谢。

答案1

尝试从 rPi 释放 DHCP 租约:
# dhclient -r eth0

然后请求另一个地址:
# dhclient eth0

答案2

Mark 为我指出了正确的方向,但问题并不在这里。解决方案如下:

RPi 中 /etc/ 中的 dhcpcd.conf 文件显示以下内容(除其他内容外):

# A hook script is provided to lookup the hostname if not set by the DHCP
# server, but it should not be run by default.
nohook lookup-hostname
::: interface eth0
static ip_address=192.168.0.102/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

当 DHCP 服务器未运行或出现故障时,此代码段会推送对地址 192.168.0.102 的请求作为首选 IP;在路由器重新启动之间,脚本启动并请求 192.168.0.102;只有当路由器完成启动时,DHCP 服务器才会唤醒并租用 192.168.0.100,但无法协商 192.168.0.102,因为 RPi 已将其作为首选 IP。RPi 最终有两个 IP,一个由路由器中的 DHCP 服务器租用,另一个由 Pi 本身上的 DHCP 客户端声明。

评论该片段并重新启动即可解决所有问题。

相关内容