ss 端口排查速记:谁在占用端口、连接从哪来
【摘要】 服务起不来、端口被占用、连接来源不明时,排查端口最常用的工具就是 ss。它是 iproute2 自带的命令,比 netstat 更快,输出也更干净。下面把日常最常用的组合记下来。 一、看谁在监听:找到占用端口的进程先看本机监听了哪些端口:ss -tlnp-t:只看 TCP;-l:只看监听状态;-n:不解析端口和域名,快且准;-p:显示进程名和 PID。看到可疑端口后直接锁定它:ss -tln...
服务起不来、端口被占用、连接来源不明时,排查端口最常用的工具就是 ss。它是 iproute2 自带的命令,比 netstat 更快,输出也更干净。下面把日常最常用的组合记下来。
一、看谁在监听:找到占用端口的进程
先看本机监听了哪些端口:
ss -tlnp
-t:只看 TCP;-l:只看监听状态;-n:不解析端口和域名,快且准;-p:显示进程名和 PID。
看到可疑端口后直接锁定它:
ss -tlnp | grep 8080
输出里的 users:(("java",pid=1234,fd=88)) 就是占用者。确认是自己的服务,就改配置或换端口;不认识的进程先查清来源再处理,别直接杀掉。
二、看连接从哪来:谁在连我的服务
服务明明跑着,却不知道谁在访问,用这组命令:
# 看 8080 端口当前的所有已建立连接
ss -tn state established '( dport = :8080 or sport = :8080 )'
# 按来源 IP 统计连接数,揪出异常 IP
ss -tn state established | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head
TIME_WAIT 太多也会拖慢服务,顺手数一下:
ss -tn state time-wait | wc -l
三、UDP 也别漏:DNS、NTP 这类服务
TCP 查完了,UDP 容易漏。DNS、NTP 都是 UDP 协议:
ss -ulnp
ss -ulnp | grep 53
四、交叉验证:查不到进程名时
查不到进程名,可以加 -e 看详细信息,或者用 lsof 交叉验证:
# 看 443 端口的完整进程信息
ss -tlnpe | grep 443
# lsof 交叉验证
lsof -i :8080
如果 ss 不可用,老系统可以用 netstat -tlnp 应急,但新版本系统推荐用 ss。
五、速查表
| 需求 | 命令 |
|---|---|
| 看监听端口和进程 | ss -tlnp |
| 看 UDP 监听 | ss -ulnp |
| 看某个端口的连接 | ss -tn state established '( dport = :8080 )' |
| 按 IP 统计连接数 | ss -tn state established | awk … | sort | uniq -c |
| 统计 TIME_WAIT | ss -tn state time-wait | wc -l |
记住一个思路:先定位“谁在监听”,再看“连接从哪来”,最后确认“该不该存在”。三步走完,端口问题基本都能定位。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)