【网络运维】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。(应用层)
相关文章
|
网络协议 Linux 网络安全
Linux测试端口的连通性的四种方法
Linux测试端口的连通性的四种方法
2462 0
|
6月前
|
消息中间件 NoSQL Redis
高可靠微服务消息设计:Outbox模式、延迟队列与Watermill集成实践
构建高可靠微服务,事件丢失和延迟任务一直是难题?本文带你从实战角度掌握 Outbox模式、延迟队列 及 Watermill+Redis Stream 集成方案,教你用Go打造可靠、可观测、毫秒级响应的事件驱动系统。
531 2
|
Java 数据库连接 数据库
解决mybatis plus 驼峰式命名规则
驼峰式命名规则数据库字段找不到
2485 0
解决mybatis plus 驼峰式命名规则
|
9月前
|
微服务 监控
认识Seata
Seata是阿里巴巴开源的分布式事务解决方案,通过事务协调者(TC)、事务管理器(TM)和资源管理器(RM)协同工作,实现全局事务一致性。支持XA、AT、TCC、SAGA四种模式,其中AT为默认模式,具备最终一致性与低侵入性,广泛应用于微服务架构中。
认识Seata
|
负载均衡 网络协议 Linux
网络ping不通到底有多少原因?一文搞明白!
网络ping不通是网络中出现频率最高的故障之一,同时也是最让人抓狂的故障,谁没遇到过?今天就和你细说下ping不通的原因,看看能不能和你遇到的情况对上号。
9858 0
|
8月前
|
域名解析 网络协议 Linux
Linux网络基础完全指南(小白也能看懂的网络入门教程)
本教程系统讲解Linux网络基础,涵盖IP地址、子网掩码、网关、DNS等核心概念,介绍ifconfig、ip、ping等常用命令及网络配置文件的使用方法,助力掌握Linux网络配置技能。
682 117
|
9月前
|
JSON 安全 JavaScript
HTTPS 原理
HTTPS是HTTP与SSL/TLS的结合,通过数字证书验证身份,利用非对称加密安全交换会话密钥,再以对称加密高效传输数据。它确保了通信的机密性、完整性和服务器真实性,在互联网上构建安全加密通道。
|
SQL 人工智能 自然语言处理
通义灵码2.5 | 一个更懂开发者的 AI 编程助手
通义灵码2.5版是一款强大的AI编程助手,具备智能体模式,支持自主决策、环境感知与工具使用等功能。通过工程检索、文件编辑和终端操作,可端到端完成编码任务,并深度适配Qwen3模型,大幅提升开发效率。新版新增行间建议预测、上下文分析及记忆功能,更懂开发者需求。智能体结合MCP工具,能实现从代码生成到部署的全流程自动化,如文中实例展示的数独小游戏开发与在线部署。无论是日常开发还是创意实现,通义灵码都能显著提升工作效率与能力边界。
|
SQL 弹性计算 Ubuntu
阿里云服务器操作系统怎么选择?哪个版本合适?
阿里云服务器操作系统的选择主要取决于用户的实际使用场景,阿里云百科以Web网站应用为例,程序语言如果是ASP、.NET、HTML、数据库ACCESS、SQL Server建议选择Windows;PHP、PERL、CGI、数据库MySQL、SQLite建议选择Linux。像阿里云百科主要用来搭建网站,安装的是CentOS操作系统,搭配宝塔Linux面板
4658 0
阿里云服务器操作系统怎么选择?哪个版本合适?