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

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

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

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

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

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

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

https://v2ex.xtra.eu.org/t/501451

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

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

© 2021 V2EX