通过物理 USB 端口分配 IP 地址

通过物理 USB 端口分配 IP 地址

我有一台 Raspberry Pi,上面连接了两个 HUAWEI 4G Wingle E8372 加密狗。

当我使用检查他们的 MAC 地址时,ifconfig发现他们都有相同的 MAC 地址。

我为每个加密狗分配了一个静态IP:

eth1 - 192.168.100.100
eth2 - 192.168.200.100

我遇到的问题是,有时重启后,它们的 IP 似乎已经切换了:

eth1 - 192.168.200.100
eth2 - 192.168.100.100

由于我的设置性质,这会导致互联网无法在每个加密狗上运行。

有没有什么方法可以通过 Raspberry Pi 中的 USB 端口分配 IP 地址,以便确保每个加密狗每次都有相同的 IP?

答案1

我认为我已经通过创建来解决这个问题/etc/systemd/network/01-huawei-e8372.link

[Match]
MACAddress=xx:xx:xx:xx:xx:xx
Driver=cdc_ether

[Link]
Description=Huawei E3872
NamePolicy=path
MACAddressPolicy=random

它会为每个匹配的设备生成一个随机的 mac 地址[Match],然后它会根据 udev 路径命名接口。

因此,如果我将加密狗插入其中,usb-1.1它将命名接口enp1s0u1u1。如果我将第二个设备插入usb-1.2端口,它将命名接口enp1s0u1u2

dmesg -w我可以通过运行并重新插入设备来检查设备插入的路径。

答案2

这里有一个混淆。eth1 和 eth2 是接口名称,而不是 MAC。192.168.200.100 和 192.168.100.100 是 Internet 地址。

我忽略了华为 4G Wingle E8372 适配器是什么。请输入

lsusb-v

查看有关 USB 上这些设备的详细信息。IP 地址的分配在此处以热插拔级别进行。然后输入

nmcli 设备显示

并查看 GENERAL.HWADDR。这可以作为使用 NetworkManager 配置每个加密狗的基础。

相关内容