Arch Linux-连接:网络无法访问


22

在五次未成功安装Arch Linux之后,我已经正确安装了两个。第一次,网络运行良好,我什至通过SSH安装了Arch Linux。

从已安装的系统而不是实时CD引导后,它无法连接到网络,当我尝试ping通任何设备(甚至路由器)时,出现以下消息:

连接:网络不可达

我尝试再次安装Arch,因为Internet上似乎没有任何东西可以解决我的问题。安装后,我遇到了同样的问题。

似乎启动eth0失败,因为它超时。


4
你尝试了dhcpcd eth0吗?
uzsolt 2013年

@uzsolt是的,它发出了无法发出方法调用的消息:没有此类文件或目录错误。我还在官方论坛上发布了一个主题,如果找到答案,我将在此处发布答案。
Novicode

ifconfig eth0 up已经完成了?linux是否看到您的网卡(已加载模块)?在做任何事情之前systemctl stop netctl-eth0...
uzsolt

该死...您没有eth0,您已经...我无法阅读它:( bbs.archlinux.org/viewtopic.php?pid=1291880#p1291880因此,您应该设置没有eth0,您应该使用而是enp1s0(或您照片上的地狱:))。
uzsolt

很高兴解决了您的问题。
uzsolt

Answers:


26

我面临的问题是没有eth0(据我所知。)运行命令ip link,这应该输出您的接口。我没有eth0界面。相反,我有enp1s8

因为我使用的是static,所以我用cd /etc/netctlthen 复制了示例配置文件cp examples/ethernet-static my-network。在那之后,我编辑my-networknano my-network,并从改变了接口eth0,以en1s8(或任何你的适配器是ip link)。最后,我启用了它以在启动时使用该配置文件netctl enable my-network

启用配置文件将确保它在引导时启动,但是无需重新引导系统,只需运行netctl start my-network即可立即对其进行初始化。

我能够在Arch Linux官方论坛上获得帮助,您可以在此处查看我的主题。


4

网络无法访问意味着您没有通往网络的路由。如果您甚至无法ping通本地路由器,则说明您没有IP地址或网络接口已关闭。

netctl是用于管理Arch中网络接口的标准实用程序。如果您尚未设置(或其他设置),则将没有任何网络。甚至没有DHCP。


我已将示例文件从examples / ethernet-static复制到“ my-network”,修改了该文件,然后在启动时使用“ netctl enable my-network”将其启用。网络上也没有IP冲突。应该是“设置”
Novicode

要确定是否可以访问默认网关(通常是路由器),请输入ip route。如果事实证明您没有默认网关,则应该为每个DHCP或添加一个ip route add default via xxx.xxx.x.xxx。要使默认网关永久保留,请将IP添加到/etc/network/interfaces
马提亚斯·布劳恩

3

ArchLinux Wiki的https://wiki.archlinux.org/index.php/Netctl中充分记录了ArchLinux的网络设置。

对票数最高的答案的一项重要澄清-无需重新开始。如果仅存在网络接口,并且/ etc / netcl的配置文件中使用了正确的接口名称和配置(将示例副本命名为mynet1),则

netctl start mynet1

将启动网络配置文件mynet1,并且网络路由将起作用。

然而

netclt enable mynet1

它将使systemd服务管理器在每次引导时都可以启动系统服务,即它将在/etc/systemd/system/netc@[mynetprofilename].service中创建一个包含单元详细信息(设备绑定和依赖性)的单元文件。

还要注意,如果修改了网络配置文件,则必须重新启用netctl。


1

Archlinux说,如果您的安装程序无法自动连接,请尝试使用dhcpcd。安装后,这对我来说是当场工作。只需输入“ dhcpcd”作为命令,等待几秒钟,然后单击“ ip route”或“ ping 8.8.8.8”以检查其是否有效。我什至使用“ watch ip address”来查看这些inet和inet6地址的弹出速度。

除了使用dhcpcd之外,我还可以使用以下命令从零开始连接:

modprobe e1000e

ip link set dev eth0 up
ip address add 192.168.0.16/24 dev eth0
ip route add 192.168.0.0/24 dev eth0
ip route add default via 192.168.0.1

modinfo说,e1000e是一个“网络驱动程序”。通过加载该模块,我得到了一个eth0链接(不,不要在/ dev中寻找它)。“ ip”命令激活链接,选择一个地址并定义一个本地(子网),然后定义一个默认网关。我花了很多时间进行测试(ip链接帮助,ip地址帮助,ip路由帮助...)。

因此,这很有启发性,但是“ dhcpcd”的键入速度更快,并且可能更健壮。您可以使用“ dhcpcd -x”干净地停止它。

使用可正常运行的ping命令和/etc/pacman.d/中的mirrorlist,您将拥有pacman或pacstrap所需的全部功能。

是的,我看到了一条将eth0重命名为enoxxx的内核消息,因此您必须首先使用“ ip link”检查systemd已经设置了哪些接口。它发生在这里:

[    3.052354] e1000e 0000:00:1f.6 eth0: (PCI Express:2.5GT/s:Width x1) 94:c6:91:a5:39:b8
[    3.052360] e1000e 0000:00:1f.6 eth0: Intel(R) PRO/1000 Network Connection
[    3.052445] e1000e 0000:00:1f.6 eth0: MAC: 13, PHY: 12, PBA No: FFFFFF-0FF
[    3.055917] e1000e 0000:00:1f.6 eno1: renamed from eth0

我地址中的.16只是任何(免费)数字,而192.168.0.1应该始终是网关。也许我很幸运,但是好消息是您可以在systemd和inet6下破解。我将尝试netctl。

现在我已经用systemd引导并启动了dhcpcd。我在“ eno1”上获得了地址.15和三个inet6地址,但除此之外,结果与上述“ ip” -hack完全相同。

3: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 94:c6:91:a5:39:b8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.15/24 brd 192.168.0.255 scope global noprefixroute eno1
       valid_lft forever preferred_lft forever
    inet6 2a05:41c0:12:bf00::2/128 scope global dynamic noprefixroute 
       valid_lft 2559430sec preferred_lft 572230sec
    inet6 2a05:41c0:12:bf00:f51e:97c1:de6f:6f49/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 2591994sec preferred_lft 604794sec
    inet6 fe80::47cf:a2e4:af0b:b7cd/64 scope link 
       valid_lft forever preferred_lft forever 


 default via 192.168.0.1 dev eno1 proto dhcp src 192.168.0.15 metric 203 
 192.168.0.0/24 dev eno1 proto dhcp scope link src 192.168.0.15 metric 203 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.