服务器中某个进程不断发起 http 请求,使用的是短连接,怎么查找该进程

2018-10-26 16:07:25 +08:00
 dwzhao
如题,发现一台服务器一直在进行 http 调用请求,短连接。
请求数目和时间都不规律,大概半小时一次,如何找到这个进程。

现在遇到的问题:
使用 top 等方法排查过了,没发现什么特别的进程
使用 tcpdump 看到了请求的端口,但是很快就 close 了,定位不到 pid
头大。。。

附属条件:
对面的接口不可更改为长连接,所以没法延长连接时间。。。
6949 次点击
所在节点    程序员
23 条回复
tempdban
2018-10-26 16:15:56 +08:00
netstat -anp
就算是有 pid 退出这么快你有啥办法
hawhaw
2018-10-26 16:19:33 +08:00
想法一:用 watch 监测 netstat 或者 ss 命令(都有参数支持显示 pid )的输出
想法二:通过 audit 来监控相关系统调用,打印出相关 pid 信息
hasdream
2018-10-26 16:23:33 +08:00
先抓包, 看目标主机及端口, 然后用 ss dst 主机 dport = :端口 -n 获取本地端口 然后用 lsof -i:本地端口 最好写哥脚本每秒去抓取 然后打印结果
dwzhao
2018-10-26 16:31:03 +08:00
使用 tcpdump 抓包,抓到包了,找到端口了,但是很快就丢了,找不到对应进程 pid,这个真的很烦人,又不能改接口让连接长一些。。。
yansheng1003
2018-10-26 16:35:43 +08:00
抓包查端口,然后去服务器根据端口查进程
lihongjie0209
2018-10-26 16:40:11 +08:00
抓包
jason56
2018-10-26 16:42:20 +08:00
按你描述的问题,似乎是针对 memcached 的 UDP 11211 端口 放大攻击.
leconio
2018-10-26 16:42:46 +08:00
>
hcymk2
2018-10-26 16:51:26 +08:00
http://kiminewt.github.io/pyshark/

通过编程的方式。
libook
2018-10-26 18:29:07 +08:00
HTTP 底层用的是 TCP 协议,如果能控制 HTTP 的接收方,可以分析 TCP 数据包拿到对方的 IP 和端口,在从发送方机器上用端口号找到对应进程。
libook
2018-10-26 18:32:08 +08:00
在接受方上做一个 TCP 层的服务器,因为 HTTP 是封装在 TCP 包里的,可以一起拿到。
Leigg
2018-10-26 21:17:04 +08:00
写脚本每几秒获取 netstat 输出并持久化到文件,一个小时后来看文件。
LGA1150
2018-10-26 21:21:23 +08:00
iptables TARPIT
TARPIT 会一直保持 TCP 连接
microxiaoxiao
2018-10-26 22:50:58 +08:00
top 只能看到一小部分进程, while ps 保存, 将请求时间段附近的所有进程依次执行,基本能重现这个问题。
hu5ky
2018-10-26 22:53:52 +08:00
wireshark 拦截看看?
alcarl
2018-10-26 23:11:10 +08:00
抓包看他访问的那,加一条静态路由给他指到一个奇怪的地方,应该就可以在等 synsend 的时候慢慢查了,用 netstat -anp,写个 shell while 一秒输出一次
realpg
2018-10-27 01:19:53 +08:00
写个极短间隔抓 PID 和程序路径的程序保存日志
写个极短间隔抓带 PID 的 TCP 连接的程序

挂 30 秒 总有对的上的记录
scriptB0y
2018-10-27 01:28:09 +08:00
你这边可以将 HTTP 服务可疑延长到 30 秒吗?如果客户端没设置超时的话,这样应该可以留住那边的客户端进程的。
omph
2018-10-27 08:55:52 +08:00
甩你一个命令
lsof -r 1 -i TCP:80
winglight2016
2018-10-27 10:25:47 +08:00
这是被当成肉鸡 ddos 了吧,我之前的服务器也是同样中招,只能 rebuild 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/501451

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX