我已查看了关于此问题的几篇文章,但似乎没有一篇解决我所看到的问题。
首先,我对这篇文章的详细内容有疑问: Raspberry Pi 3 - eth0 错误地命名为“enx…”
显然,有一种新方法可以命名 eth0,与“一致的网络设备命名”保持一致。这很好,只是它根本不允许我连接到以太网。
因此,我按照上面的帖子,添加了一条规则:/etc/udev/rules.d/70-persistent-net.rules
根据我的估计,这会迫使 pi 再次将我的以太网卡命名为 eth0。
这有效!实际上我有两个 PI 遇到了同样的问题。
好吧,那为什么要发这个帖子呢?嗯,现在一个 pi 没有遇到任何困难,启动时连接没有任何问题。但是,另一个不会自动连接到以太网。运行时列出的 IP:
ifconfig -a
不在我的子网中?不确定我是否理解我的用语,但... 例如,它的 IP 是 192.168.0.1,但应该是 192.168.127.X
由于这些问题,我对网络的了解不断增长,但我并不是专家。我很好奇上述问题是怎么回事,想知道是否有人遇到过类似的问题。
我遇到问题的 pi 最终会连接到以太网,但我必须断开连接然后重新连接才能获得有效的 IP。如果可能的话,我想避免这种无稽之谈。
我见过建议编辑
/etc/network/interfaces
这里的问题是,当我编辑 eth0 时,它根本无法连接。我发现这很奇怪,事实上,当我编辑接口文件时,根本没有提到 eth0,但在一台机器上,它连接得很好。另一台机器和我发这篇文章的那台机器似乎存在间歇性的连接问题,有时它可以毫无问题地获取 IP,但有时却不行。这是我的接口文件现在的样子,今天,在启动时,它们都很好地连接到以太网并毫无问题地获取了它们的 IP。
# The loopback network interface
auto lo
iface lo inet loopback
一直运行良好的 pi,现在另一个 pi 似乎已连接并获取 IP,但此文件中缺少 eth0。我对此了解不多,但我认为接口文件类似于设置这些设备的启动文件。
任何建议或想法都将不胜感激,因为我想知道更多关于它为什么能工作以及当它不能立即连接时发生了什么。我似乎拼凑了一个工作环境,但可能有点不稳定。
更新:除了添加上面描述的 70-persistent-net.rules 文件之外,我还遵循了上面第一个链接中另一位发帖人的建议,并执行了以下步骤,因为连接仍然时断时续。
- 我将 /lib/udev/rules.d/73-usb-net-by-mac.rules 复制到 /etc/udev/rules.d/73-usb-net-by-mac.rules
- 我按照发帖者 Luis Godinez 的建议,将名称更改为 >> NAME="eth0"。
重启后它就连接上了,但我猜我暂时还不能确定它有多稳定……希望这两个变化能让我朝着正确的方向前进。如果它不起作用,我会再次更新它的运行情况。
最后更新 我仍然遇到以太网问题,所以我就放弃了。所有这些规则修复都无法在这台机器上工作,这很奇怪,因为第一个 pi 仍然连接良好,我使用了相同的说明。这太奇怪了。我祈祷现在正在工作的 pi 继续发出呼噜声,因为我现在无法处理任何以太网问题。
答案1
如果您想恢复旧式网络名称,您也可以在内核命令行上传递 net.ifnames=0 - 您可以在 /etc/default/grub 中设置 - 尽管我并不推荐这样做。
GRUB_CMDLINE_LINUX=net.ifnames=0
“更好”但同样有效的解决方案是修改 /etc/network/interfaces 并将 eth0 替换为您拥有的实际接口名称,或者使用您需要的网络配置来配置接口文件。
关于 IP 不匹配的问题,我建议发布您当前 /etc/network/interfaces 的副本,以便我们可以检查子网问题(192.168.xx)以及检查 NetworkManager 是否正在运行,使用以下命令:
systemctl status NetworkManager.service