【网络运维】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。(应用层)
相关文章
|
15天前
|
设计模式 缓存 测试技术
Python装饰器:让代码简洁优雅的魔法工具
Python装饰器:让代码简洁优雅的魔法工具
194 122
|
1月前
|
机器学习/深度学习 缓存 物联网
打造社交APP人物动漫化:通义万相wan2.x训练优化指南
本项目基于通义万相AIGC模型,为社交APP打造“真人变身跳舞动漫仙女”特效视频生成功能。通过LoRA微调与全量训练结合,并引入Sage Attention、TeaCache、xDIT并行等优化技术,实现高质量、高效率的动漫风格视频生成,兼顾视觉效果与落地成本,最终优选性价比最高的wan2.1 lora模型用于生产部署。(239字)
928 102
|
16天前
|
域名解析 网络协议 Linux
Linux网络基础完全指南(小白也能看懂的网络入门教程)
本教程系统讲解Linux网络基础,涵盖IP地址、子网掩码、网关、DNS等核心概念,介绍ifconfig、ip、ping等常用命令及网络配置文件的使用方法,助力掌握Linux网络配置技能。
278 117
|
22天前
|
人工智能 数据可视化 测试技术
Dify、n8n 还是 Coze?万字长文解析三大主流 AI Agent 平台
我们正在见证人工智能应用构建方式的一次根本性转变。过去需要大量机器学习工程师才能完成的工作,如今正越来越多地通过可视化、拖拽式界面来实现。平台经济已经来到 AI 领域,并随之带来了一种耐人寻味的能力民主化进程。
561 3
|
19天前
|
安全 Linux Shell
【Linux进阶】拒绝Permission denied!彻底搞懂chmod与chown文件权限
本文深入解析Linux权限管理核心命令`chmod`与`chown`,教你读懂`ls -l`输出,掌握数字权限(如755、644)的含义与应用场景,理解属主与属组的作用,强调最小权限原则,拒绝滥用`chmod 777`,保障服务器安全。
|
缓存
银河麒麟server-V10配置镜像源
银河麒麟server-V10配置镜像源
17864 1
|
18天前
|
供应链 容器
什么是code128码?
Code 128码是一种高密度条形码,支持全ASCII字符,广泛用于物流、运输和供应链管理。它分为A、B、C三个子集,可编码字母、数字及控制符,具有高密度、小空间优势,适用于复杂数据编码需求。
369 3
|
5月前
|
负载均衡 网络协议 Linux
网络ping不通到底有多少原因?一文搞明白!
网络ping不通是网络中出现频率最高的故障之一,同时也是最让人抓狂的故障,谁没遇到过?今天就和你细说下ping不通的原因,看看能不能和你遇到的情况对上号。
3427 0
|
1月前
|
存储 人工智能 运维
一行代码实现智能异常检测:UModel PaaS API 架构设计与最佳实践
阿里云 UModel PaaS API 发布:通过 Table + Object 双层抽象,屏蔽存储差异、自动处理字段映射与过滤条件,让每一个实体都成为一个‘可调用的对象’,真正实现‘以实体为中心’的智能可观测。
830 117