怎么在linux下查看某个端口的TCPIP通讯的数据

怎么在linux下查看某个端口的TCPIP通讯的数据,第1张

可以用Wireshark或tcpdump命令抓包,Wireshark具有图形界面,tcpdump是命令行界面

tcpdump举例:

获取主机192.168.228.246接收或发出的ssh包,并把mac地址也一同显示:

# tcpdump -e src host 192.168.228.246 and port 22 and tcp -n -nn

你为什么会近视?为了淡看世间事,所以才模糊了双眼。

上一篇: linux命令-文件和目录 *** 作命令

lsof解释( 百度百科 ): lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。

格式: lsof -i

格式: lsof -i :端口号

Netstat( 百度百科 )是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

格式: netstat -tunlp | grep 端口号

格式: netstat -anp | grep 端口号

格式: netstat -nultp

如果感觉本文对您有帮助可以点个赞哦

本文仅供交流学习,请勿用于非法途径

仅是个人意见,如有想法,欢迎留言

Linux下是没有文件直接给你按进程记录流量信息的。你想要编程实现的话,办法是有的,只是比较麻烦。首先,你需要能截取流经网卡的数据包,这个可以通过libpcap来完成,其次你要完成的最重要的一步就是怎么根据端口号找到进程的pid。端口号通过截取的数据包可以获得,这个时候你要按行来解析/proc/net/tcp (如果要支持ipv6的话还要解析/proc/net/tcp6),这个文件记录了当前活跃的TCP连接情况,每一行代表一条连接,我们感兴趣的是其中的inode这一项,你得把inode的值解析出来保存。然后蛋疼的时候来了,接下来你得遍历所有的/proc/pid/fd文件,察看其中每一个文件描述符,如果发现内容为socket[xxxx]的,把xxxx截取出来,这个xxxx也是inode号,如果和你之前解析/proc/net/tcp的inode号吻合,恭喜你,这说明这个pid和那个tcp连接有关系,进而也就确定了端口号和pid的对应关系,也就知道了数据包和进程之间的对应关系了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/9003273.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存