Linux 打开tcp12580端口

Linux 打开tcp12580端口,第1张

在Linux上打开端口。

打开端口之前,让我们首先检查所有打开的端口的列表,然后从该列表中选择一个临时端口打开。我们可以使用netstat命令列出所有打开的端口,包括TCP,UDP的端口,它们是网络层中用于数据包传输的最常见协议。

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的对应关系,也就知道了数据包和进程之间的对应关系了。

用tcpdum命令可以抓指定IP的包,具体命令为:

tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port 22 and src net 192.168.1.1 -w ./target.cap

参数解析:

tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型。

-i eth1 : 只抓经过接口eth1的包

-t : 不显示时间戳

-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包

-c 100 : 只抓取100个数据包

dst port  22 : 抓取目标端口是22的数据包

src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.1

-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

扩展资料

tcpdump语法格式:

tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]

tcpdump主要参数说明:

1、-a 尝试将网络和广播地址转换成名称。

2、-c<数据包数目>收到指定的数据包数目后,就停止进行倾倒 *** 作。

3、-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。

4、-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。

5、-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。

6、-e 在每列倾倒资料上显示连接层级的文件头。

7、-f 用数字显示网际网络地址。

8、-F<表达文件>指定内含表达方式的文件。

9、-i<网络界面>使用指定的网络截面送出数据包。

10、-l 使用标准输出列的缓冲区。

11、-n 不把主机的网络地址转换成名字。

12、-N 不列出域名。


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

原文地址: https://outofmemory.cn/yw/8918206.html

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

发表评论

登录后才能评论

评论列表(0条)

保存