'端口'解义
以下讲义,纯属个人所学理解,可能会有出入,仅参考。
端口分物理端口和应用端口。物理端口是物理设备的,比如笔记本上插网线的网口,就属于物理端口。应用端口是虚拟的,是网络模型中传输层的一种含义,也叫网络端口。大家常听的tcp端口、udp端口,是用来监听网络信息传输的。一般来说,一个应用或者一个服务对一个网络端口,网络信息传输到设备的物理端口,既网络模型中的物理层,经链路层、网络层传输到操作系统中,操作系统会根据网络信息中的目的端口来确认接受信息的应用或者服务。(如有错误,欢迎大家指正)
端口监听工具
- netstat
netstat 是一个命令行工具,可以提供有关网络连接的信息。(windows也有此命令)
命令: netstat -h
参看帮助文档
常用命令:
netstat -a # 列出所有端口
netstat -l # 列出正在监听的端口
netstat -at # 列出所有TCP端口
netstat -au # 列出所有UDP端口
netstat -ax # 列出所有unix端口
netstat -atnlp # 直接使用ip地址列出所有处理监听状态的TCP端口,且加上程序名
- ss
ss 是 Socket Statistics 的首字母缩写,由 iproute2 软件包提供(yum install iproute)。
命令: ss -h
参看帮助文档
常用命令:
ss –pl #查看进程使用的socket
ss -lp | grep 22 #找出打开套接字/端口应用程序
ss -u –a #显示所有UDP Sockets
- lsof
lsof是功能强大的命令行应用程序,可提供有关进程打开的文件的信息。在Linux中,所有内容都是文件,你可以将套接字视为写入网络的文件。
常用命令:
lsof -i #列出所有的网络连接
lsof -nP -iTCP -sTCP:LISTEN #列出所有侦听TCP端口
lsof -nP -iTCP:3306 -sTCP:LISTEN #列出正在侦听特定端口的进程
lsof /filepath/file #列出谁正在使用某个文件
结语
查看监听端口的方式有很多,以上是最常用的工具。欢迎大家分享更优秀的工具。