求助,如何通过“出口端口(非监听端口)”反查进程(linux)
我就是想知道,哪个狗日的写了什么狗屁本地程序连接我的本地kafka又重来不主动关闭连接,导致堆了一大堆TIME_WAIT!!!
# netstat -nat|grep 9092|grep TIME_WAIT
tcp 0 0 192.168.1.251:50955 192.168.1.251:9092 TIME_WAIT
tcp 0 0 192.168.1.251:50844 192.168.1.251:9092 TIME_WAIT
...... (还有很多很多)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(13)
引用来自“bingtel”的评论
lsof -i:端口号
1、lsof -i:可以查看client端口对应的进程信息(原错误的以为只能查看listen端口的进程信息)
2、进程死的快,netstat得到端口后如果手动运行losf -i再运行ll /proc/xxx/则黄花菜都凉了
@all,前面几位同学说的没毛病。我通过watch + lsof侥幸抓到那个瞬间死掉的进程,原来是一个worker进程去连接kafka,kafka没数据然后立即退出,却没有关闭连接。master发现worker退出又不断的拉起worker进程,结果导致茫茫多的time_wait
根据我的测试一楼说的lsof是可以的
nc -l 12345
telnet localhost 12345
lsof -i:12345
结果如下:
我也用nc测试过可以的,早些时候处理不严谨,没去验证
这也是不错的方法。解决之后回顾,问题出在我仅凭少数几次测试就武断的认为lsof -i不支持查看client端口
进程死太快,netstat查看的到是通过xxx端口连进来的,但是再用lsof去看xxx端口的信息时对应的进程已死
ss -antp | awk '{print $1,$4,$5,$6}' > a; sleep 0.1; ss -antp |awk '{print $1,$4,$5,$6}' >b; diff a b
ps -eo "%a" | sort > a;sleep 0.01 ; ps -eo "%a"|sort > b; diff a b
grep 9092 -rn /你猜测的/程序路径
我想到的三个方法,一个是按链接比较不同,一个是看进程,修改sleep的时间,写个死循环脚本一直执行,万一抓到他呢。最后就是搜端口了,他要连接这个端口配置文件还是程序中肯定得有写吧。
用 netstat -ntpac 跑一小段时间,停了之后再在输出里按端口搜索对应的进程, 就算死的快也有痕迹。
这个题目没这么简单,请细看
我试试看,可能是访问进程死的太快了
此法只能找出监听进程,并不能找出访问进程,比如找出50955对应的进程
这个方法没毛病,经过测试,只是客户端死的太快了,lsof无数据
lsof -i:端口号