telnet用于测试远程端口tcp连通性,成功显示“connected”表示端口可达;ss(推荐)和netstat用于查看本地监听状态与连接,ss -tulnp查监听端口,netstat -tulnp为兼容替代方案。

排查服务器网络问题,关键在分清“连不连得上”和“端口开没开着”。Telnet 用来测试远端端口是否可达,netstat 和 ss 则用于查本地端口监听与连接状态。三者分工明确,配合使用效率最高。
用 Telnet 快速验证端口连通性
Telnet 是最轻量的端口连通性探测工具,只管一件事:能不能建立 TCP 连接。它不关心服务类型、不解析协议细节,结果直接——成功即通,失败即断。
- 基本用法:telnet 目标IP 端口号(如 telnet 192.168.1.10 22)
- 看到空白界面或服务欢迎信息(如 OpenSSH_8.0),说明端口开放且服务响应正常
- 提示“Connection refused”,代表端口虽可达,但无服务监听(常见于服务未启动或配置错误)
- 提示“Connection timed out”,大概率是防火墙拦截、路由不通,或目标主机宕机
- Windows 默认不启用 Telnet 客户端,需手动开启;Linux 多数发行版需安装 telnet 包(如 yum install telnet -y 或 apt install telnet -y)
用 SS 查看本地监听端口与连接(推荐首选)
ss 是现代 Linux 系统默认预装的高性能工具,尤其适合高并发场景。它直接对接内核 netlink 接口,万级连接下仍秒出结果,比 netstat 快 50 倍以上。
- 查看所有监听中的 TCP/UDP 端口(含进程):ss -tulnp
- 精准过滤 80 端口:ss -tulnp 'sport = :80'(仅查监听端口)或 ss -tunp 'sport = :80 or dport = :80'(查所有含 80 的连接)
- 只看已建立的 TCP 连接:ss -tan(不带 -p 可避免权限不足报错)
- 输出中 LISTEN 表示服务正在等待连接,ESTABLISHED 表示双向通信已建立,TIME-WAIT 是主动关闭后的临时状态
用 Netstat 辅助排查(兼容旧环境)
netstat 虽已逐步被 ss 替代,但在部分老系统或脚本中仍有使用。它依赖 /proc/net 文件解析,大数据量时明显卡顿,建议仅用于低负载环境或教学演示。
- 常用组合:netstat -tulnp(功能等价于 ss -tulnp)
- 最小化系统(如 CentOS Stream、AlmaLinux)默认不带 netstat,需手动安装:yum install net-tools -y
- 若提示 Permission denied,加 sudo 执行;若提示 can't identify protocol,说明 -p 需要 root 权限才能读取进程信息
- Windows 下对应命令为 netstat -ano,配合 findstr "3306" 可快速定位端口占用进程











