一般来说,我是 Debian 和 Linux 的新手,我有一个奇怪的问题,我不知道如何解决。我正在进行 Debian 测试(目前是书虫)。
在启动过程中,我的 Debian 总是说它无法启动网络接口,我应该检查我的网络服务以获取更多信息。当我检查日志时sudo journalctl -u networking.service
,我发现以下消息:
ifup[861]: Cannot find device "eth0"
dhclient[851]: Failed to get interface index: No such device
ifup[851]: Failed to get interface index: No such device
ifup[851]: If you think you have received this message due to a bug rather
ifup[851]: than a configuration issue please read the section on submitting
ifup[851]: bugs on either our web page at www.isc.org or in the README file
ifup[851]: before submitting a bug. These pages explain the proper
ifup[851]: process and the information we find helpful for debugging.
ifup[851]: exiting.
dhclient[851]:
dhclient[851]: If you think you have received this message due to a bug rather
dhclient[851]: than a configuration issue please read the section on submitting
dhclient[851]: bugs on either our web page at www.isc.org or in the README file
dhclient[851]: before submitting a bug. These pages explain the proper
dhclient[851]: process and the information we find helpful for debugging.
dhclient[851]:
dhclient[851]: exiting.
ifup[784]: ifup: failed to bring up eth0
systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: networking.service: Failed with result 'exit-code'.
systemd[1]: Failed to start Raise network interfaces.
我认为这是我的问题的原因,因为我的以太网接口被称为enp3s0
. not eth0
,并ifup
尝试引发不存在的网络接口。
但是,我不知道它为什么要寻找eth0
.我的/etc/network/interfaces
文件如下;你可以看到它没有提到eth0
任何地方,只有lo
, wlp2s0
(wifi) 和enp3s0
。
auto lo
iface lo inet loopback
auto wlp2s0
iface wlp2s0 inet static
address 192.168.1.39
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
wpa-ssid "***"
wpa-psk "***"
auto enp3s0
iface enp3s0 inet static
address 192.168.1.39
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
任何建议将不胜感激。谢谢你!
答案1
我不确定我是如何修复它的,但我已经修复了它。以下是我今天尝试过的(最终解决了问题)以供将来参考。 其中一些可能是不相关的,我不能保证如果有人尝试我所做的事情是否不会破坏任何东西。我备份了数据并尝试了在网上找到的任何解决方案。
- 删除了
connman
(sudo apt remove connman
)。完成此操作后,我的网络中断了。我认为它无法连接到除默认服务器(192.168.1.1,我的路由器)之外的任何 DNS 服务器,并且似乎只能连接少数站点(例如 Reddit 和 Google)。我尝试 ping 几个其他站点,但收到“网络无法访问”错误。 - 登录到我的路由器 Web 配置(在我的例子中为 192.168.1.1),在基于 MAC 的静态 IP 分配表中删除并重新添加我的 enp3s0 接口的 MAC 地址,将其映射到 192.168.1.39。
- 阅读后删除
/etc/network/interfaces.d/setup
文件(与 内容相同的文件)/etc/network/interfaces
Debian 用户论坛主题 - 使用 重新启动 enp3s0,
sudo ifconfig enp3s0 down
然后使用sudo ifconfig enp3s0 up
。运行后一个命令时,我收到RLNETLINK: File exists
错误。我尝试遵循 Ébe Isaac 的回答树莓派线程sudo ip addr flush dev enp3s0
并在成功调出界面之前运行。 - 在同一线程中注释掉
wlp2s0
我下面的 theo-brown 答案中的重复网络网关行。/etc/network/interfaces/
重新启动路由器和笔记本电脑。网络不再中断,启动错误消息也消失了。
答案2
我正在使用类似 debian 的 parrot os 操作系统。前几天更新后,我的网络消失了,敲着手鼓跳舞后,我意识到RTL8111/8168/8411 PCI Express千兆以太网控制器驱动程序被列入黑名单。
我注释掉了文件中的行/etc/modprobe.d/r8168-dkms.conf
:
#alias pci:v00001186d00004300sv00001186sd00004B10bc*sc*i* r8168
#alias pci:v000010ECd00008168sv*sd*bc*sc*i* r8168
然后以 root 身份运行这些命令:
update-initramfs -u
reboot
然后网络就OK了。