在 Raspberry Pi 上的 Alpine Linux 上更改静态 IP 地址后无网络

在 Raspberry Pi 上的 Alpine Linux 上更改静态 IP 地址后无网络

我在 Raspberry Pi 上运行 Alpine Linux。我尝试设置静态 IP 地址。因此,我将/etc/network/interfaces文件内容从

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto lo
iface lo inet loopback
    address 192.168.0.137
    netmask 255.255.255.0
    gateway 192.168.0.1

文件的内容/etc/resolv.conf

nameserver 8.8.8.8

之后我跑

ifdown eth0
ifup eth0

而且我没有网络。无论我做什么,都无法连接任何东西。我甚至无法 ping 通路由器。但如果我重新启动设备,突然间一切都可以使用新的 IP 地址。当我尝试切换回 DHCP 时也是如此。

所以我的问题是 - 有人知道为什么新 IP 地址在重启后有效,但在其他情况下无效吗?重启期间发生了什么有帮助的事情,而重新加载界面时不会发生这种情况?我想让它在不重启的情况下工作。谢谢!

附加信息

我能够在我朋友的网络上测试它,看起来它在那里工作得很好。需要一段时间才能赶上,但最终我可以连接到网络和一切。这似乎与我的路由器有关,尽管我不知道它是什么。我有 TP-Link Archer C5。

附加信息 2

我按照这里的建议尝试了 ifconfig,一开始我以为它有效,因为我获得了新的 IP 地址并且能够在 LAN 中通信。但后来我发现我仍然无法连接到互联网。

答案1

如果不调试启动过程,很难说出问题背后的原因,但是,这些是我最好的猜测:

  • RaspberryPi 3 及以下版本的网卡通过 USB 连接到主板。Ifdown 可能导致它进入一种能量状态,除非重新启动,否则无法恢复(这可能不是原因)。
  • Alpine 发行版移植到 Raspberry 时效果不佳,并且 ifdown 无法正确关闭网卡,导致其处于不可恢复的状态(无论是电气状态还是逻辑状态)

可能的解决方案:

重新启动网络服务。不过,正如你所说,它在这种情况下不起作用,因为它依赖于 ifdown / ifup

命令:

sudo systemctl restart networking

使用 ipconfig 配置您的网卡,无需使用 ifdown / ifup。此设置在重启时会丢失,因此您仍需要手动修改文件。

sudo ifconfig eth0 192.168.0.137 netmask 255.255.255.0 broadcast 192.168.0.1

答案2

我觉得你的/etc/network/interfaces看起来不对。试试这个

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.0.137
    netmask 255.255.255.0
    gateway 192.168.0.1

这将您的本地主机定义为环回接口,并定义eth0为具有与您的问题相同的地址、网络掩码和网关的静态接口。

相关内容