我知道

我知道

如何系统地查找 Linux 中互联网丢失的罪魁祸首?

我知道

为了下载文件/访问网页/使用 ssh/等,需要进行几层通信:应用程序、传输、互联网、链接(维基百科

我不知道

  • 这些层中的每一层(不包括application层)如何映射到 Linux 中的程序/组件?
  • 如何有效地检查每个组件是否正常工作?
  • 按什么顺序检查

我的目标是

拥有(合理)简单的系统来追踪问题。在伪代码中它看起来像

 for(component in A..Z) // from hardwarefailure,missing drivers to configuration in /etc/network/interfaces
 {
     if  cmd_to_check(component).output == _OK_
     then continue // problem is 100% not here, continue with next item
     else break    // problem is 100% with current component
 }
 do_adhoc_reseach_on(item)
 fix(item)

我想重点讨论一下我的机器,而不是远程或中间服务器的问题

笔记

如果有分歧

  • 在分布之间,德比安是首选
  • 那么在有线和无线之间金属丝是首选
  • 在任何其他方面之间,则优先考虑大多数标准

如果有免费资源则优先

提前感谢任何答案和/或参考

答案1

测试互联网连通性的步骤:

  • 测试以太网链路是否正常且具有预期的协商速度和双工:ethtool eth0
  • 测试下一跳(邻居路由器)是否可用:ping -c 3 next_hop_ip
  • 测试知名的远程站点是否可用(例如 ping google DNS):ping -c 3 8.8.8.8
  • 测试 DNS 是否正常工作:host www.google.com
  • 测试网站是否回答:wget -O - http://www.google.com
  • 如果工作站直接连接,即使在工作站上配置了防火墙,您也应该能够使用 arp 看到它们:sudo arping workstation_ip
  • 测试是否可以从服务器访问工作站:ping workstation_ip

当某一步失败时,在进行下一步之前,尝试找出发生的情况。

相关内容