【网络运维】Ping不通?别慌!用Telnet和Netstat精准排查端口连通性

简介: 本文介绍网络排查两大利器:Telnet与Netstat。通过Ping只能检测服务器是否在线,而Telnet可测试端口连通性,区分“连接被拒”与“超时”;Netstat则用于服务端查看端口监听状态,识别如仅监听127.0.0.1导致外网无法访问的问题。结合ss命令和“三板斧”流程,快速定位网络故障。

前言

在日常开发中,我们经常遇到服务连不上的情况:

"为什么我的本地代码连不上阿里云的数据库?" "为什么我的API接口调不通,报Connection Refused?"

大多数人的第一反应是打开终端敲一个 ping ip地址

  • 如果 ping 通了,就觉得网络没问题,然后陷入迷茫。
  • 其实,Ping通了只代表服务器活着(网络层通了),并不代表你的服务端口是通的(传输层/应用层)!

今天我们介绍两个网络排查神器:Telnet(客户端排查)和 Netstat(服务端排查),助你精准定位“路”到底断在哪里。


神器一:Telnet —— 在客户端“敲门”

当你作为客户端(Client),想要确认能不能连上远程服务器的某个特定端口(比如 MySQL 的 3306,或者 Redis 的 6379),ping 是无能为力的,这时候要用 telnet

(注:Windows和Mac通常自带Telnet,Linux如果没有,可以通过 yum install telnet 安装)

1. 命令语法

Bash

telnet [服务器IP] [端口号]

2. 结果分析(这才是重点!)

情况 A:连接成功如果你看到屏幕变成全黑,或者出现 Escape character is '^]'. 字样,恭喜你,端口是通的!(此时按 Ctrl + ] 然后输入 quit 即可退出)

情况 B:Connection refused(连接被拒绝)

Plaintext

Trying 192.168.1.100...
telnet: connect to address 192.168.1.100: Connection refused

诊断: 网络是通的,防火墙也没拦你,但是服务器上的目标端口没开可能原因: 后端服务挂了(进程没起),或者服务端口配置错了。

情况 C:Connect Timeout(连接超时/一直转圈)

Plaintext

Trying 192.168.1.100...
(一直卡在这里不动)

诊断: 请求发出去了,但就像石沉大海。可能原因: 防火墙(安全组)屏蔽了端口,或者中间网络线路不通。这时候你要去检查阿里云安全组或 Firewalld 设置。


神器二:Netstat —— 在服务端“自查”

当你发现 Telnet 连不上(Connection refused)时,你需要登录到服务器内部,确认一下服务到底有没有在监听端口。这时候用 netstat

1. 命令语法

我们需要查看:TCP协议、Listening(监听中)、Numeric(显示数字端口不显示别名)、Process(显示进程PID)。

Bash

netstat -nltp

2. 结果分析

输出结果通常长这样:

Plaintext

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:* LISTEN      1234/nginx
tcp        0      0 127.0.0.1:3306          0.0.0.0:* LISTEN      5678/mysqld

关键点看 Local Address

  • 情况 A:0.0.0.0:80
  • 含义: 服务正在监听本机所有网卡的80端口。
  • 结论: 外部可以访问(前提是防火墙放行)。
  • 情况 B:127.0.0.1:3306 (新手最容易踩的坑!)
  • 含义: 服务只监听了本地回环地址
  • 结论: 这个服务只能在服务器内部访问,外网IP无论如何都连不上!
  • 解决: 修改服务的配置文件(如 my.cnfredis.conf),将 bind 127.0.0.1 改为 bind 0.0.0.0
  • 情况 C:查不到该端口
  • 结论: 服务压根没启动,或者已经挂了。请先去启动服务。

补充:新一代工具 ss

在一些较新的 Linux 发行版中,netstat 可能默认未安装,取而代之的是性能更强的 ss 命令。用法几乎一样:

Bash

# 查看监听端口
ss -nltp

总结:网络排查三板斧

当你遇到“连不上”的问题时,请按这个顺序排查:

  1. Ping一下: 确认服务器IP是不是活的。(网络层)
  2. Telnet一下: telnet IP 端口,确认是不是防火墙拦了,或者服务没开。(传输层)
  3. Netstat一下: 登录服务器查 netstat -nltp,确认服务是不是只监听了 127.0.0.1。(应用层)
相关文章
|
8月前
|
负载均衡 网络协议 Linux
网络ping不通到底有多少原因?一文搞明白!
网络ping不通是网络中出现频率最高的故障之一,同时也是最让人抓狂的故障,谁没遇到过?今天就和你细说下ping不通的原因,看看能不能和你遇到的情况对上号。
7567 0
|
3月前
|
域名解析 网络协议 Linux
Linux网络基础完全指南(小白也能看懂的网络入门教程)
本教程系统讲解Linux网络基础,涵盖IP地址、子网掩码、网关、DNS等核心概念,介绍ifconfig、ip、ping等常用命令及网络配置文件的使用方法,助力掌握Linux网络配置技能。
466 117
|
Dubbo Java 应用服务中间件
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
|
机器学习/深度学习 人工智能 自然语言处理
图解机器学习 | GBDT模型详解
GBDT是一种迭代的决策树算法,将决策树与集成思想进行了有效的结合。本文讲解GBDT算法的Boosting核心思想、训练过程、优缺点、与随机森林的对比、以及Python代码实现。
9580 2
图解机器学习 | GBDT模型详解
|
4月前
|
机器学习/深度学习 缓存 物联网
打造社交APP人物动漫化:通义万相wan2.x训练优化指南
本项目基于通义万相AIGC模型,为社交APP打造“真人变身跳舞动漫仙女”特效视频生成功能。通过LoRA微调与全量训练结合,并引入Sage Attention、TeaCache、xDIT并行等优化技术,实现高质量、高效率的动漫风格视频生成,兼顾视觉效果与落地成本,最终优选性价比最高的wan2.1 lora模型用于生产部署。(239字)
1699 104
|
4月前
|
微服务 监控
认识Seata
Seata是阿里巴巴开源的分布式事务解决方案,通过事务协调者(TC)、事务管理器(TM)和资源管理器(RM)协同工作,实现全局事务一致性。支持XA、AT、TCC、SAGA四种模式,其中AT为默认模式,具备最终一致性与低侵入性,广泛应用于微服务架构中。
认识Seata
|
4月前
|
JSON 安全 JavaScript
HTTPS 原理
HTTPS是HTTP与SSL/TLS的结合,通过数字证书验证身份,利用非对称加密安全交换会话密钥,再以对称加密高效传输数据。它确保了通信的机密性、完整性和服务器真实性,在互联网上构建安全加密通道。
|
移动开发 小程序 JavaScript
uniapp中uview组件库的Input 输入框 的使用方法
uniapp中uview组件库的Input 输入框 的使用方法
2637 0
|
3月前
|
Kubernetes 应用服务中间件 API
应对 Nginx Ingress 退役,是时候理清这些易混淆的概念了
本文希望提供一种更简单的方式,来理解这些容易混淆的技术概念:Nginx、Ingress、Ingress Controller、Ingress API、Nginx Ingress、Higress、Gateway API。
1823 126