0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一套系统的网络排错方法

jf_TEuU2tls 来源:51cto博客 作者:xpleaf 2022-11-10 09:56 次阅读

网络排错对于网络工程师或运维人员甚至对很多人(搞IT的朋友们)都十分重要,因此知道网络排错的一个详细流程以及流程中每一步的原理就显得非常重要了,当网络出现问题时,我们就可以迅速排查出网络问题所在,从而快速解决网络问题。

这里要说的网络排错,应该是适合大部分对网络有一定了解的人员的,其实关于网络排错的方法,网络上已经有大部分的资料,但我个人觉得太多都只是停留在文字层面上的,对其中涉及的一些基本原理并没有提及,因此实用性并不大,这里希望写出一篇图文并茂并有一定技术性的网络排错文章给大家,让大家真正掌握一套系统的网络排错方法。

1 网络排错的必备条件

为什么要先讲必备条件?因为这里所讲的网络排错并不仅仅是停留在某一个小小命令的使用上,而是一套系统的方法,如果没有这些条件,真的不能保证下面聊的这些可以听得懂,并且能运用到实际当中,所以还是先看看这些基础的条件吧。

1.1 熟悉 OSI 七层模型与 TCP/IP 协议栈

这应该是网络排错要知道的最基本的知识了。

无论是 OSI 七层模型还是 DoD 模型,都是用来描述网络通信的一个过程,以让我们对网络数据的发送和接收有一个大致的认识。OSI 七层模型对应 OSI 七层模型的协议,DoD 模型对应 DoD 模型的协议,也就是 TCP/IP 协议栈。

TCP/IP 协议栈里面的协议就显得十分重要了,比如 DNS、TCP、UDP、IP、ICMP、ARP,这些最基本的应该得知道吧,我们不需要像《TCP/IP 协议栈》中说得的那么细,但至少,对于这些协议的基本功能我们是必须得要知道的,这些就不是一两句可以说清楚的了,计网里也都学了~

1.2 了解网络通信的基础设备和其对应的 OSI 层次

交换机、三层交换机、路由器、防火墙这些最基本的网络设备应该要有些了解,尤其是它们对应的 OSI 层次以及作用,比如普通的二层交换机对应 OSI 七层模型中的数据链路层,它可以隔绝冲突域,同时可以通过虚拟局域网技术(VLAN)来隔绝广播域,二层交换机通过二层地址即 MAC 地址来实现数据帧的转发;再比如路由器,它对应网络层,可以提供路由寻址的功能等等。

1.3 了解中小型企业网络的基本架构

一般中小型企业网络的基本架构都是这样的:接入层 -- 汇聚层 -- 核心层 -- 网络出口。

下面给个图:

4396c784-608a-11ed-8abf-dac502259ad0.jpg

如果网络环境比较庞大,汇聚层和核心层都会有,像这里的话,就直接没有汇聚层,不过思想是一样的。下面讲的排错其实都是针对用户 PC 来说明的,事实上,数据中心中的网络排错也是类似的。不管网络环境多么复杂,其实简化下来跟这个都是差不多的。

1.4 知道常用的网络排错命令

如果用户使用的是 Windows 操作系统,那么下面的这些命令就很重要了:

43bdc6e0-608a-11ed-8abf-dac502259ad0.png

如果使用的是 Linux 操作系统,那么也有对应的相关命令。其实说到底就是要熟悉你所使用的设备,当然,在实际网络排错的过程中,如果只是为了测试网络通信是否正常,你可以换上你熟悉的设备操作。

1.5 清楚知道网络排错的一个重要原则

网络排错,不就是要判断网络哪里出了问题,因此,你就必须要知道数据的走向。

所以一个重要原则是:关注数据的走向。

下面讲的网络排错思路其实就是通过追踪数据的走向来一步步缩小网络故障点的,因此,时刻记住这一点非常非常重要!这也是为什么上面需要让你了解中小型企业网络的基本架构了。

2 网络排错的基本思路

基本思路如下,这跟网上的大多数人写的应该是差不多的。
(1)检查物理链路是否有问题
(2)查看本机 IP 地址、路由、DNS 的设置是否有问题
(3)测试网关或路由器的通畅情况。先测网关然后再测路由器,一级一级地测试
(4)测试 ping 公网 ip 的通畅情况(平时要记几个外部 IP)
(5)测试 DNS 的通畅情况,可以直接 ping 网站地址

3 网络排错详细步骤

为了更好的讲述网络排错的过程和思路,假设我们有下面的一个网络环境:

(说明:虽然是假设,但实际上该网络环境是通过 GNS3 联动虚拟机和真实网络架设起来的,所以是可以真实参考的)

43c313fc-608a-11ed-8abf-dac502259ad0.jpg

下面,我们就以上面这个网络环境为例子,详细介绍我们的网络排错思路,每一步要怎么做,每一步为什么要这样做以及这样做之后我们可以得到什么信息,都会做一个说明。

3.1 检查物理链路是否有问题

这一步是我个人认为在做网络排错时必须要做的第一步!经常会听朋友说,领导的电脑上不了网,需要过去排错,搞了老半天,还发现不了问题,最后在几经绝望之时,竟然发现网线都没接上电脑。这就真的是悲剧了,浪费了很多时间不说,这样的网络排错思路本来就是有错误的。

因为也许不是每个人都可以去机房查看交换机的接线情况,所以这一步,我们排查的重点范围就应该放在如下面图所示的地方:

43dc4386-608a-11ed-8abf-dac502259ad0.png

在这一步,下面几点是需要注意排查的:

1. 确认电脑本身的网卡有没有问题
2. 确认接的网线有没有问题
3. 本机所连接的交换机(如果可以去机房查看的话)

如果上面这几点排查都没有问题了,那么就是该网络环境中的其他设备问题了。这一范围的排查相对比较简单,因为只涉及到物理链路的连接问题。

对于这种测试,可以考虑使用测线器,但个人的建议是,拿一台配置正确的笔记本来做测试也未尝不可。

3.2 查看本机 IP 地址、路由、DNS 的设置是否有问题

上面第一步,物理链路的排查没有问题了,也就是说,电脑接上网线之后,电脑有反应了,可以识别,但是网络还是不通,来到这一步,就应该先把注意的范围放在电脑的设置上面了。

这一步,我们关注的重点是:

1. IP 地址设置

如果采用的是 DHCP 自动获取的方法,那么这时候只需要看自己本机的设置上有没有开启自动获取 IP 的设置以及有没有开启相关的服务;

如果用的是静态 IP,那么就必须要注意 IP 地址的填写有没有错(一般网络管理人员给的)、IP 地址的子网掩码有没有问题(这很重要,对于静态 IP,很多人在这里设置错误,建议是,最好把 IP 地址、VLSM 这方面的知识学一下)。

一般可以用下面的命令查看:

43f8812c-608a-11ed-8abf-dac502259ad0.png

2. 路由设置

对于服务器、PC,一般是指默认网关的设置了;对于路由器本身或三层交换机,那就是静态路由或动态路由的设置问题了。

3. DNS 设置

主要是要确保所设置的 DNS 服务器地址到底有没有提供域名解析服务或者是否出现了故障,至于如何判断,后面会给出方法,这里关注的是,你得设置一个正确的 DNS 服务器地址或可以自动获取。在 windows 上面你可以通过下面的命令查看:

4424392a-608a-11ed-8abf-dac502259ad0.jpg

3.3 测试网关或路由器的通畅情况。先测网关然后再测路由器,一级一级地测试

在上面的网络环境中,在网络通的情况下,我们在电脑上使用命令 tracert -d 命令,会得到下面的结果:

44405650-608a-11ed-8abf-dac502259ad0.png

通过这个测试结果,我们可以清楚地知道电脑在访问互联网时,数据的走向情况:

444b882c-608a-11ed-8abf-dac502259ad0.jpg

根据这个数据走向,我们就可以得到一个重要的思路,就是根据数据走向来检测网络的通畅情况!因此,我们可以分两步:

1. 先测试电脑到网关 192.168.2.254 的通畅情况

4453ace6-608a-11ed-8abf-dac502259ad0.jpg

我们可以在自己的电脑上自己 ping 网关的地址,看是否有响应

44659230-608a-11ed-8abf-dac502259ad0.jpg

一般这样的判断方法是比较快的,但有时候,无论怎样 ping 都不能,那么则可能有以下的几种情况:

a. 网关设备做了禁止 ping 的设置
b. 网关接口或网关设备出现故障

对于 a,一般很少会在这些设备在做 ping 的限制操作,实在是没有太大的必要这样做,当然,网络安全等要求十分严格的除外。ping 通 192.168.2.254 网关后,再 ping 一下 172.16.13.1 以确认电脑到整个网关设备都没有问题。

对于 ping 不通的时候,我个人还建议在电脑上执行如下操作:

44d7c95e-608a-11ed-8abf-dac502259ad0.png

即查看电脑本身有没有获取到网关的 MAC 的地址,显然,如果没有网关的 MAC 地址,那也是不可能 ping 通网关的,在排除了前面电脑设置的问题后,你可以猜测是网关设备出了问题,这时就可以联系网络工程师对网关设备进行测试了。

2. 测试到其它路由器的通畅情况

前面一步没有问题了,也就是电脑到网关通信正常了,再测试网关到出口路由器的通畅情况:

44dddf74-608a-11ed-8abf-dac502259ad0.png

这里,我们使用 tracert -d 命令就可以了:

44ffd598-608a-11ed-8abf-dac502259ad0.png

当然,如果发现不通,那么则可能是下面的情况:

a. 网关设备与路由器之间的物理链路问题
b. 网关设备与路由器之间的设置问题,比如路由协议、接口配置之类的

出现上面的情况,那就是网络工程师的问题了,当然,如果你是网络工程师,应该要马上查看一下设备的状态,看是不是设备哪里出现问题了。

上面的步骤完成了,假设你的出口路由器设置是没有问题的,比如 NAT 与默认路由等的设置,那么我们大致可以知道,内网的一个基本通信是正常的(至少你的电脑和出口路由器的通信没问题),我们就要看看电脑到底能不能访问互联网了。

3.4 测试 ping 公网 ip 的通畅情况(平时要记几个外部 IP)

来到这一步的时候,就说明前面三步是没有问题的,也就是说,本地局域网络的通信是正常的,这时要做的就是判断本地局域网络与外网(公网)之间的通信有没有问题了:

45303256-608a-11ed-8abf-dac502259ad0.jpg

这里采取的是直接 ping 公网地址的方法,是为了排除 DNS 的影响(万一你的 DNS 设置又有问题),至于要 ping 什么样的公网地址,个人建议是,可以 ping 一些没有禁止 ping 的公共 DNS 服务器地址,比如 114.114.114.114 和 8.8.8.8 的:

453e9404-608a-11ed-8abf-dac502259ad0.jpg

这样之后,基本上就可以确定网络是没有问题的了。当然,这里并没有提到出口放置防火墙的情况,实际上,思路是一致的,但是,你需要考虑的是,你的访问数据有没有被防火墙给过滤掉,是数据出去的时候过滤了,还是数据回来的时候过滤了?由于还要涉及到防火墙的设置,这里就不再提及了,只是仍要注意这一点就是了。

3.5 测试 DNS 的通畅情况,可以直接 ping 网站地址

如题,可以直接 ping 网站地址,看有没有回显 IP 地址,至于通不通是另外一回事,只要可以回显 IP 地址,那么 DNS 就没有问题了,不过这里仍然要说一下 nslookup 这个命令,这是一个非常好用的命令,我平常自己在网络排错时,基本上都会用到:

454997a0-608a-11ed-8abf-dac502259ad0.jpg

当然也可以像下面这样使用:

45825306-608a-11ed-8abf-dac502259ad0.jpg

使用 nslookup 命令,作用有二:

1. 帮你测试你设置的 DNS 服务器有没有问题

2. 在不考虑 DNS 服务器是否智能的前提下,你可以根据回显 IP 地址速度的快慢来大致判断 DNS 服务器的优劣情况

所以可以充分利用 nslookup 命令了。

4 最后的重要说明

其实基本上,一个相对完整的网络排错过程就应该如上面所说的了,不过,是基本上的,因为上面的讲解,都几乎是假定你是没有权限进入机房查看网络设备的情况的。

事实上,你是根本不需要照搬来进行上面的全部步骤的,在实际排错的过程中,可能你用到的只是其中的一小部分而已,毕竟,如果每次都这样下来,没有谁是不会疯掉的,因为一些很简单的问题也要这样折腾,那就是太浪费时间了!但是,上面的方法,只是提出一种网络排错的思路,希望按照这个思路可以判断出网络的问题出现在哪里,至于如何去解决,这中间真的又涉及到太多太多的经验问题。其实整个下来,个人觉得,最重要的仍然不是技术本身,而是在网络排错过程当中的一个思路,思路决定出路,这可以让自己在网络排错的过程中时刻保持清醒的头脑,这一点很重要。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 交换机
    +关注

    关注

    19

    文章

    2508

    浏览量

    96660
  • 路由器
    +关注

    关注

    22

    文章

    3603

    浏览量

    112091

原文标题:这样进行网络故障排错,肯定能够帮你老板娘!

文章出处:【微信号:浩道linux,微信公众号:浩道linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何用java语言开发一套数字化产科系统  数字化产科管理平台源码

    如何用java语言开发一套数字化产科系统 数字化产科管理平台源码
    的头像 发表于 07-06 09:38 402次阅读
    如何用java语言开发<b class='flag-5'>一套</b>数字化产科<b class='flag-5'>系统</b>  数字化产科管理平台源码

    一套java+ spring boot与 vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例

    UWB (ULTRA WIDE BAND, UWB) 技术是种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,
    的头像 发表于 07-03 14:18 69次阅读
    <b class='flag-5'>一套</b>java+ spring boot与 vue+ mysql技术开发的UWB高精度工厂人员定位全套<b class='flag-5'>系统</b>源码有应用案例

    在不同的电脑上启动同一套代码时,出现编译路径错误的提示怎么解决?

    不同的电脑上安装esp-idf的路径不同时,启动同一套代码时会出现: 无法找到“D:\\Espressif\\tools\\xtensa-esp32-elf\\esp-2022r1-11.2.0
    发表于 06-11 06:54

    一套java+ spring boot+与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码

    UWB (ULTRA WIDE BAND, UWB) 技术是种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,
    的头像 发表于 06-10 18:11 401次阅读
    <b class='flag-5'>一套</b>java+ spring boot+与vue+ mysql技术开发的UWB高精度工厂人员定位全套<b class='flag-5'>系统</b>源码

    ICON发布一套新型建筑3D打印硬件、软件和材料

    2024年3月,先进建筑公司ICON 发布了一套可实现建筑自动化的新产品和技术,包括能够实现多层建筑的全新机器人打印机、新型低碳建筑材料、包含 60 多种现成住宅设计的住宅建筑数字目录,以及用于住宅设计和施工的 AI 建筑师。
    的头像 发表于 04-07 18:27 980次阅读

    库室装备管理系统|智装备DW-S301系统一套成熟系统

    系统概述 部队库室装备管理系统(智装备DW-S301)是一套成熟系统,依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视
    的头像 发表于 02-02 10:42 264次阅读
    库室装备管理<b class='flag-5'>系统</b>|智装备DW-S301<b class='flag-5'>系统</b>是<b class='flag-5'>一套</b>成熟<b class='flag-5'>系统</b>

    如何实现一套linux进程间通信的机制

    我们知道linux的进程的间通信的组件有管道,消息队列,socket, 信号量,共享内存等。但是我们如果自己实现一套进程间通信的机制的话,要怎么做?了解android 开发的可能会知道
    的头像 发表于 11-10 14:56 453次阅读
    如何实现<b class='flag-5'>一套</b>linux进程间通信的机制

    物证管理系统|智物证DW-S404是一套成熟系统

    1、 系统背景 我司物证智能管理系统(智物证DW-S404)是一套成熟系统,依托互3D技术、RFID技术、数据库技术、AI、视频分析技术对物证进行统
    的头像 发表于 10-23 14:52 336次阅读
    物证管理<b class='flag-5'>系统</b>|智物证DW-S404是<b class='flag-5'>一套</b>成熟<b class='flag-5'>系统</b>

    如何通过阿里云日志服务搭建一套通过Python上传日志的监控服务

    时间,因此如果能使用市面上现成的系统会很方便。 本文将教你如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务。 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:
    的头像 发表于 10-21 14:43 545次阅读
    如何通过阿里云日志服务搭建<b class='flag-5'>一套</b>通过Python上传日志的监控服务

    如何利用rt-thread和HMI Board RA6M3开发一套物联网工控机?

    近年来,随着新轮的科技发展以及工业产业升级,工业经济慢慢的由数字化向网络化和智能化发展。基于这理念,本人利用rt-thread和HMI Board RA6M3开发了一套物联网工控机
    的头像 发表于 09-15 15:27 1081次阅读
    如何利用rt-thread和HMI Board RA6M3开发<b class='flag-5'>一套</b>物联网工控机?

    Linux系统中多个同类设备共用一套驱动

    比如我们的设备上有很多样的usb接口,这些usb接口都需要有驱动才能工作,那么是每个usb都一套单独的驱动程序么?显然不是的,这些usb接口属于同类设备,用户对他们的操作方法完全
    发表于 08-30 09:29 442次阅读
    Linux<b class='flag-5'>系统</b>中多个同类设备共用<b class='flag-5'>一套</b>驱动

    Linux系统中共用一套usb驱动操作案例

    我的主机下面的两个usb设备,他们共用了一套usb驱动,但是他们的设备号是不样的(180,0)和(180,1),主设备号都是180表示都属于同类设备(usb设备),次设备号分别是0和1,表示这是两个不同的设备。
    发表于 08-30 09:28 272次阅读
    Linux<b class='flag-5'>系统</b>中共用<b class='flag-5'>一套</b>usb驱动操作案例

    一套优质的MES系统,应该具备哪些特质?

    企业如何在众多的MES系统中,选择最合适自己的产品呢?也就是说,一套优质的MES,因该具备哪些特质呢? 随着经济全球化趋势不断加强以及中美贸易战的愈演愈烈,我国作为制造业大国,制造业所面临
    的头像 发表于 08-24 08:12 294次阅读

    一套简单的机器视觉系统包括哪些部分?

    要回答这个问题,我们可以分解下机器视觉系统,来逐个分析。一套最简单的机器视觉系统包括:视觉成像部分;图像处理部分;运动控制部分。1.视觉成像部分视觉成像又包含几个典型组件:光源,镜头
    的头像 发表于 08-21 08:08 1026次阅读
    <b class='flag-5'>一套</b>简单的机器视觉<b class='flag-5'>系统</b>包括哪些部分?

    一套简单的机器视觉系统包括哪些部分?

    一套最简单的机器视觉系统包括:视觉成像部分、图像处理部分、运动控制部分。
    发表于 08-20 09:39 496次阅读