Linux 服务连不上:用 ss 和 curl 分层定位端口问题

举报
yd_283936595 发表于 2026/11/08 10:28:12 2026/11/08
【摘要】 先拆成三层服务连不上,不等于端口没开。依次确认:进程是否在目标地址监听、客户端能否建立 TCP、应用是否正确响应。 一、看监听在服务主机执行:ss -lntp-l 看监听,-n 数字显示,-t 限定 TCP,-p 尝试显示进程。没有目标端口,先核对实际端口、服务状态及启动日志。127.0.0.1:8080 只接受本机连接;0.0.0.0:8080 监听所有 IPv4 地址;绑定具体 IP ...

先拆成三层

服务连不上,不等于端口没开。依次确认:进程是否在目标地址监听、客户端能否建立 TCP、应用是否正确响应。

一、看监听

在服务主机执行:

ss -lntp

-l 看监听,-n 数字显示,-t 限定 TCP,-p 尝试显示进程。没有目标端口,先核对实际端口、服务状态及启动日志。127.0.0.1:8080 只接受本机连接;0.0.0.0:8080 监听所有 IPv4 地址;绑定具体 IP 则只接收该地址。[::]:8080 是 IPv6 通配地址,能否同时接受 IPv4 取决于系统配置。看不到进程名可能是权限不足,不代表没有进程。

二、测连接与响应

本机和客户端分别执行:

curl -v --connect-timeout 3 --max-time 10 app.example:8080/health

不带协议前缀时 curl 按普通 HTTP 处理。--connect-timeout 限制解析和建立连接阶段,--max-time 限制整个请求。输出显示连接成功只证明 TCP 建立;还要看 HTTP 状态码、响应头与内容。拒绝连接常见于目标可达但端口未接受连接;超时可能是路由丢包、静默过滤或目标无响应。TCP 通但收到 4xx、5xx 时,应查应用路由、健康状态和依赖。

三、核对 DNS 与 TLS

getent ahosts app.example 查看系统解析结果并与预期地址比对;本机探测成功、域名失败时,关注解析地址和客户端实际使用的解析器。HTTPS 可用:

openssl s_client -connect app.example:443 -servername app.example

检查握手、证书名称、有效期、信任链和 SNI。TCP 成功不代表 TLS 正常。

四、只读查过滤

查看 sudo nft list ruleset、sudo iptables -S 或 sudo firewall-cmd --list-all 中的协议、端口、来源地址和规则顺序;云上还要核对安全组入方向、网络 ACL 与路由。结合测试客户端和目标地址逐项比对。排查只读配置和日志,不要关闭防火墙,也不要临时开放所有来源。

先用 ss 回答“在哪监听”,再用 curl 确认“连到没有、返回什么”,最后按证据检查 DNS、TLS、路径和过滤规则。记录来源和目标端口,便于交接。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。