查进程号 端口号
-n 禁用域名解析(即显示ip地址不显示域名),-t tcp,-u udp,-l listen,-p pid查看进程
查看进程监听的端口是多少
netstat -ntlp | grep 进程号
查看端口号被哪个进程占用
netstat -ntlp | grep 端口号
以上都是以tcp为例
查看端口号的连接情况(LISTEN,ESTABLISHED,TIME_WAIT)
netstat -an | grep 端口号
注意:grep是捞出含有字符的条目,例如grep 80
会捞出很多条目,只要带80的,不管是ip,还是端口,全部都满足
所以,如果是搜端口,一般会加个冒号,grep :80,就可以过滤掉很多条目
netstat -an 是搜所有连接,状态会有LISTEN,ESTABLISHED等,协议会有tcp,udp等
所以一般会用netstat -ntl,即状态LISTEN,协议tcp。然后再加个p,查进程号,即netstat -ntlp
其他方法:
lsof -i:端口号
lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件
netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。
netstat -tunlp | grep 端口号
-t (tcp) 仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显示建立相关链接的程序名
netstat -ntlp //查看当前所有tcp端口
netstat -ntulp | grep 80 //查看所有80端口使用情况
netstat -ntulp | grep 3306 //查看所有3306端口使用情况
查进程端口
ps -ef|grep tomcat
netstat -anop | grep pid
tcpdump
tcpdump [-i 网卡] -nnAX '表达式'
各参数说明如下:
-i:interface 监听的网卡。
-nn:表示以ip和port的方式显示来源主机和目的主机,而不是用主机名和服务。
-A:以ascii的方式显示数据包,抓取web数据时很有用。
-X:数据包将会以16进制和ascii的方式显示。
表达式:表达式有很多种,常见的有:host 主机;port 端口;
src host 发包主机;dst host 收包主机。
多个条件可以用and、or组合,取反可以使用!,
更多的使用可以查看man 7 pcap-filter。
监听指定机器的接收与发送
tcpdump -i eth0 -nn 'host 192.168.1.231'
192.168.1.231接收和发送的包
tcpdump -i eth0 -nn 'src host 192.168.1.231'
192.168.1.231发送的包
tcpdump -i eth0 -nn 'dst host 192.168.1.231'
192.168.1.231接收到的包
tcpdump -i eth0 -nnA 'port 80'
监听主机的80端口收到和发送的所有数据包,结合-A参数,在web开发中非常有用。
tcpdump -i eth0 -nnA 'port 80 and src host 192.168.1.231'
监听192.168.1.231主机通过80端口发送的数据包。多个条件可以用and,or连接。
tcpdump -i eth0 -nnA '!port 22'
监听除22端口以外的数据包。排除某个端口或者主机,可以使用“!”符号。
tcpdump -i eth0
监听指定网卡
简单,但用处不多,因为基本上只能看到数据包的信息刷屏,压根看不清,可以使用ctrl+c中断退出。
如果真有需求,可以将输出内容重定向到一个文件,方便查看。
tcpdump -i eth0 -nn 'icmp'
监听指定协议的数据。icmp协议的数据,就是ping命令使用的协议。icmp可以换成tcp,udp
将结果存为cap文件: -w ./dump.cap
详情可以通过man查看系统手册。
抓取web包的时候,发送网页内容都是很奇怪的字符,通常是apache开启了gzip压缩的缘故,关闭掉gzip压缩就可以。
tcpdump -nn -vv -X udp port 5349
若报错 NFLOG link-layer type filtering not implemented
则需要指定网卡,例如 -i eth0,查网卡信息ifconfig
结果存为cap文件: -w ./dump.cap
nc
两台机器用nc互相通信
A服务器:用nc监听udp的20001端口
nc -ulp 20001
B服务器:连接A服务器20001端口
nc -u ip(A服务器) 20001
(或者 nc -zvu ip port)
随便输入,发信息,看看A是否能接收到。