当前位置: 首页 > news >正文

排查网络问题的一些工具的作用和常用使用方法

一,ping

核心原理便是通过发送 ICMP(Internet 控制消息协议)回声请求包到目标主机,若目标主机可达且响应,会返回 ICMP 回声应答包,以此判断网络链路是否通畅。

常见用法如下

ping -c 4 baidu.com #表示给百度发4个数据包
ping 8.8.8.8  #表示给8.8.8.8持续发送数据包

64bytes:是数据包的大小

seq:是数据包的序列号

ttl:生存时间(可大致判断目标主机类型,Linux 通常默认 64,Windows 通常 128)

time:往返延迟(RTT),数值越小,网络链路越通畅。

常见异常:

  • 输出 Request timeout:目标主机可达但未响应 ICMP(可能被防火墙拦截),或网络延迟过高。
  • 输出 Destination Host Unreachable:目标主机不可达(可能 IP / 域名错误、路由故障、目标主机下线)。
  • 输出 unknown host:域名无法解析(DNS 配置问题)。

二,telnet

核心原理:

  1. Telnet 基于 TCP 三次握手:本地主机向目标主机的指定 TCP 端口发送连接请求,若目标端口处于 “监听状态” 且无防火墙拦截,会完成三次握手建立连接;若端口未开放或被拦截,连接会失败。
  2. 无加密传输:Telnet 传输的数据(包括用户名、密码)是明文的,安全性极差,因此现在几乎不用它做远程登录,仅用于网络排查(端口测试)。
  3. 依赖 TCP 协议:仅支持测试 TCP 端口(如 80、443、3306),不支持 UDP 端口(如 53、161)

常见用法如下:

telnet [参数] 目标主机(IP/域名) 目标端口(必填)
telnet baidu.com 80 #测试百度的80端口是否可达

常见错误及排查步骤:

错误提示核心原因排查步骤
Connection refused(连接被拒绝)1. 目标端口未开放(服务未启动);2. 服务绑定了特定 IP(非当前访问 IP)1. 检查目标服务状态(如 systemctl status mysqld);2. 用 `netstat -tuln grep 端口确认服务监听地址;3. 测试服务是否仅本地可访问(登录目标主机用telnet 127.0.0.1 端口 ` 验证)
No route to host(无路由到主机)1. 目标 IP / 域名错误;2. 本地与目标主机不在同一子网;3. 路由故障1. 验证目标 IP 正确性(ping 目标IP);2. 用 ip route show 查看本地路由表;3. 排查网关是否可达(ping 网关IP
Timeout(超时)1. 防火墙拦截(本地、目标主机或中间路由);2. 网络链路中断;3. 目标主机离线1. 关闭本地防火墙测试(sudo systemctl stop firewalld);2. 登录目标主机关闭防火墙;3. 用 traceroute 目标IP 排查路由中断节点;4. 确认目标主机是否在线
Escape character is '^]'(无后续响应)连接成功,但目标服务未返回数据(如 HTTPS 端口,需用 TLS 协议握手)1. 确认端口类型:HTTPS(443)需用 openssl s_client -connect 目标:443 测试,Telnet 无法处理 TLS 加密;2. 检查服务是否正常响应(如重启服务)

三,mtr和traceroute

mtr和traceroute都是用于查询本地服务器到目标服务器的链路路径的工具,二者最大的区别就是mtr是持续地向目标路径发送探测包,而traceroute则是只会发出一次包。

traceroute的使用及输出如下

$ traceroute google.com
traceroute to google.com (142.251.42.78), 30 hops max, 60 byte packets1  router.local (192.168.1.1)  1.123 ms  1.456 ms  1.789 ms2  10.10.10.1 (10.10.10.1)  10.234 ms  10.567 ms  10.890 ms3  ae-12-345.edge4.london1.Level3.net (4.53.216.101)  15.678 ms  16.012 ms  16.345 ms4  * * *5  108.170.248.161 (108.170.248.161)  20.123 ms  20.456 ms  20.789 ms... 
14  lhr48s22-in-f14.1e100.net (142.251.42.78)  25.123 ms  25.456 ms  25.789 ms
  • 每一行代表一跳(一个路由器)。

  • 第一列是跳数。

  • 第二列是路由器的 IP 地址和(如果可解析)主机名。

  • 后面三个时间值是三次探测包的往返延迟。这有助于判断网络延迟的稳定性。

  • * * * 表示该路由器没有在超时时间内响应。这可能是由于防火墙丢弃了数据包或阻止了 ICMP 回复。

traceroute只代表着瞬间的网络状况,因为他只会到达目标ip一次

mtr则是在使用后持续不断地向目标ip发送探测。

mtr使用之后的界面如下

                           My traceroute  [v0.93]
Hostname.com (192.168.1.1)                                                                       Sun Jun  9 12:00:00 2024
Keys:  Help   Display mode   Restart statistics   Order of fields   quitPackets               PingsHost                                                                        Loss%   Snt   Last   Avg  Best  Wrst StDev1. router.local                                                              0.0%    10    1.2   1.3   1.1   1.8   0.22. 10.10.10.1                                                                0.0%    10   10.1  10.5   9.8  12.1   0.73. ae-12-345.edge4.london1.Level3.net                                       20.0%    10   15.6  16.2  15.6  18.9   1.14. (waiting for reply)5. 108.170.248.161                                                           0.0%    10   20.1  20.3  19.9  21.0   0.3
... 
14. lhr48s22-in-f14.1e100.net                                                 0.0%    10   25.0  25.2  24.8  26.1   0.4
  • Loss%:这是最关键的一列。它显示了到该跳为止的累计丢包率。例如,如果第三跳显示 20% 的丢包率,但后续跳的丢包率为 0%,那么问题很可能就出在第三跳的路由器上。

  • Snt:已发送的探测包数量。

  • Last, Avg, Best, Wrst:延迟统计。

  • StDev:标准偏差,值越大说明延迟越不稳定(网络抖动大)。

mtr的界面会实时的更新。

四,netstat

netstat是一个用于显示网络连接、路由表、接口统计等网络相关信息的命令行工具。

基本语法:
netstat [选项]

常用选项:
-a, --all:显示所有选项,默认不显示LISTEN相关的。
-t, --tcp:显示TCP相关选项。
-u, --udp:显示UDP相关选项。
-l, --listening:仅显示监听状态的套接字。
-n, --numeric:不解析服务名称,直接显示数字端口和IP。
-p, --programs:显示套接字所属的进程ID和程序名称。
-r, --route:显示路由表。
-i, --interfaces:显示网络接口统计信息。
-s, --statistics:显示每个协议的统计信息(如TCP、UDP等)。

常用组合拳 netstat -tulpn

连接信息字段:

  • Proto:协议类型(tcp, udp, raw)

  • Recv-Q:接收队列中尚未被应用程序读取的数据大小

  • Send-Q:发送队列中尚未被远程主机确认的数据大小

  • Local Address:本地地址和端口

  • Foreign Address:远程地址和端口

  • State:连接状态(仅TCP)

  • PID/Program name:使用该连接的进程ID和程序名

此外还有 netstat -i ,用于统计接口信息

接口统计字段:

  • RX-OK/TX-OK:成功接收/发送的数据包数

  • RX-ERR/TX-ERR:接收/发送错误的数据包数

  • RX-DRP/TX-DRP:接收/发送时丢弃的数据包数

  • RX-OVR/TX-OVR:接收/发送时因溢出丢失的数据包数

五,nslookup

nslookup(Name Server Lookup)是一个用于查询域名系统(DNS)记录的网络管理工具。它可以用来诊断 DNS 问题、获取域名的 IP 地址、查询各种 DNS 记录等。

nslookup 有两种工作模式:

  1. 非交互模式:直接在命令行中执行单个查询

  2. 交互模式:进入一个交互式环境,可以执行多个查询

常用用法就是nslookup example.com 

以上我指定了用114.114.114.114作为DNS服务器

以下为一些其他的用法

# A记录(IPv4地址)
nslookup -type=A google.com# AAAA记录(IPv6地址)
nslookup -type=AAAA google.com# MX记录(邮件交换记录)
nslookup -type=MX gmail.com# NS记录(域名服务器记录)
nslookup -type=NS google.com# CNAME记录(别名记录)
nslookup -type=CNAME www.github.com# TXT记录(文本记录)
nslookup -type=TXT google.com# SOA记录(起始授权机构)
nslookup -type=SOA google.com

当然,也可以进入交互模式进行查询,直接在命令行输入nslookup即可。

总的来说就是以下常用用法

# 进入交互模式
nslookup# 基本查询
> google.com# 设置查询类型
> set type=MX
> gmail.com# 设置查询类型为A记录
> set type=A
> facebook.com# 指定使用特定的DNS服务器
> server 8.8.8.8
> google.com# 查询域名服务器记录
> set type=NS
> baidu.com# 反向DNS查询(通过IP查域名)
> set type=PTR
> 8.8.8.8# 退出交互模式
> exit
http://www.dtcms.com/a/602509.html

相关文章:

  • 命名空间与匿名空间
  • iOS arm64e hook MGCopyAnswer got Crash or Only Partial results got hooked
  • 天津建设银行官网站首页教学督导网站建设报告
  • 网站建设行业数据手机网站静态动态
  • 初学C语言编译器选择 | 适合新手的C语言编译器推荐
  • SOME/IP协议简要介绍
  • Kettle——this connection is closed
  • 传统网站 手机网站怎么做网站的签约编辑
  • C语言编译器手机版 | 高效学习与移动编程利器
  • 做cpc不做网站可以吗怎么才能创建个人网站
  • 安徽智能网站建设推荐网站开发应该注意什么
  • 易语言反编译成源代码 | 解密易语言反编译的技术与应用
  • 易语言加密模块反编译 | 深入解析加密模块反编译技术及应用
  • c语言编译器软件下载
  • 【C++11】C++11新特性(下)
  • 免费建站并且绑定域名专业的集团网站建设
  • 接计设做的网站广西网红
  • 技术指标时空编码构建LSTM兼容的量化交易特征工程体系
  • 网站开发培训深圳高端品质网站建设
  • 自然语言编程,举个反面案例
  • Spring 框架核心技术详解:AOP、JDBC 模板与事务管理
  • 杭州做外贸网站网站编辑工具软件
  • 《C++ Primer》和《Effective C++》哪个更厚?
  • 做海报那个网站好一分钟赚50元的游戏
  • 封装了 Android 权限检查和申请功能 PermissionManager工具类,支持权限检查、申请、说明对话框显示和设置页面引导等功能。
  • 2.GPU 网络架构全栈规划与深度分析:从业务需求到落地优化(H100/H200/B200/GB200 实战视角)
  • 企业网站手机端跳转设置门户cms系统
  • 鞍山58路公交车路线苏州百度seo关键词优化
  • 大储和工商储的差异
  • Windows 终端延迟剖析:从“卡顿感”到毫秒账本