IP 网络故障排除

IP 网络故障排除

我已经设置了 ADSL 并已将其用于系统更新,所以我确信设置没问题,但 pacman 突然停止工作,当我检查时 ping 也不起作用。我如何找出问题所在以及如何修复?

答案1

IP 网络故障排除

当您遇到网络连接问题时,您可以查找一些标准内容。这些问题按照从上到下的顺序(或者从最不根本到最根本的问题)的顺序列出。

此处显示的所有示例ip命令都使用名为 iproute2 的 Linux 特定工具。许多任务可能可以使用ifconfig和完成route,但语法取决于系统。您可以开始在以下位置寻找适合您的系统的正确命令Unix 版罗塞塔石碑(感谢@Gilles)。

是否只能访问一个站点而不是其他站点?

如果您刚刚发现某个网站或服务已关闭,请尝试其他网站或服务,然后再确定遇到问题的是您而不是您要访问的网站。

DNS 不工作吗?

DNS 将域名解析为 IP 地址。如果不起作用,您可能可以通过 IP 地址访问服务,但不能通过域名访问服务。要测试这一点,请使用

ping -c 2 8.8.8.8

8.8.8.8 是互联网上 Google 服务器的 IP 地址,应始终处于运行状态;它可以替换为目标网络上已知的任何 IP 地址。该命令向特定 IP 地址发送两个 ICMP echo 数据包;它不依赖 DNS 来工作。如果该命令有效,请将 IP 地址替换为已知在目标网络上运行的域名,例如ping -c 2 yahoo.com;如果这不起作用,问题可能出在 DNS 上。作为快速修复,您可以尝试在最后一行之后打开/etc/resolv.conf并添加nameserver 8.8.8.8(注意,您可能需要 root 权限才能编辑文件)。该地址恰好是一个 DNS 服务器,将其添加到 resolv.conf 将告诉您的系统使用它。如果这不起作用,您应该提交另一个包含更多详细信息的问题。

有到网络的路由吗?

要访问网络,您的系统必须知道如何路由到该网络。要查看系统知道的路由,我们需要几个命令。

ip rule show

此命令列出了系统上设置的所有路由规则。如果您只看到三个条目(行)并且它们以“local”、“main”和“default”结尾,那么您只有标准规则设置。如果还有其他条目,请注明;特别是该行的最后一个词——它们是路由表的名称。

ip route show

此命令显示主表上的路由设置。通常应该有一个条目将流量引导至目标网络。对于互联网连接,它是一条看起来像“via”部分的路由default [via address] dev [dev]...,也可能没有“via”部分,“[dev]”可能类似于“eth0”或“wlan0”,表示网络所在的网络接口。

之前我说过应该有通常是那里的一个条目。如果您有其他表设置和指向它们的规则,请使用以下命令查看其他表中的条目,并替换[table name]为您在上一(ip 规则)步骤中记下的名称之一。

ip route show table [table name]

如果您没有到目标网络的路由,则需要添加一个(或修改您的网络设置,以便它自动为您添加正确的路由)。如果您不知道如何操作,请利用这些知识在这里提出更具体的问题。

网络接口是否已启动?

为了能够使用网络接口,它必须启动并且应该有一个地址。您可以使用以下命令查看它是否已启动:

ip link show

这列出了系统上的网络接口。您应该看到至少两个条目,一个名为“lo”,另一个条目对应系统上的每个网络接口。如果您有有线和无线接口,您可能会看到“lo”、“eth0”和“wlan0”或“lo”、“eth0”和“eth1”,无论它们是什么 - 条目索引后的第一位是网络接口的名称。对于每个接口条目,您还应该看到“state UP”、“state DOWN”或“state UNKNOWN”。如果连接到目标网络的网络接口不存在,则可能是硬件驱动程序未加载或未工作(对于实际网卡),或者对于 PPP 连接,未建立连接。如果显示链路已关闭或未知,则需要启动该接口。这通常是通过系统的网络设置来完成的 - 如果没有启动,您可以在此处提出更具体的问题,并牢记这一点。可以通过以下命令手动完成,替换[dev]为接口名称(您可能需要 root 权限)。

ip link set dev [dev] up

网络接口有地址吗?

除了有接口之外,还需要有一个 IP 地址。您可以通过运行以下命令找到接口的地址。

ip address show

您将看到每个接口的条目及其所有地址。大多数条目都会有一个链接地址,其中重要的部分是IP地址。应该有一行标记为“inet”,其中包含连接到目标网络的网络接口的地址。它应该由您的网络设置自动添加;如果不是,则 dhcp 客户端可能未运行,或者 ppp 守护程序可能未添加它 – 您应该在此处提出更具体的问题,并牢记这一点。可以通过以下命令手动添加(但根据网络可能不起作用),替换[ip address]为适合网络的 IP 地址(如果网络通过 DHCP 或 PPP 提供 IP 地址,则可能未知)并替换[dev]为接口姓名。

ip address add [ip address] dev [dev]

相关内容