您的位置:

Linux查端口详解

一、使用netstat查看监听的端口

在Linux中,可以通过使用netstat命令来查看当前系统正在监听哪些端口,以及哪些进程在使用它们。其基本语法如下:

netstat -tlnp

其中,选项-t表示查看所有TCP协议相关的连接和监听端口,选项-l表示显示当前系统正在监听的端口,选项-n表示直接显示IP地址和端口,而不使用主机名和服务名称。选项-p表示显示正在使用该端口的进程的PID和名称。

如果你要查看UDP协议的端口,可以把选项-t换成-u即可。

二、使用lsof查看打开的文件描述符

除了netstat外,还有一个强大的命令叫做lsof,它可以列出当前系统打开的文件描述符。在Linux中,网络连接也是以文件描述符的形式存在于系统中的。因此,我们可以使用lsof命令来查看当前正在使用的网络连接,包括正在监听的端口。其基本语法如下:

lsof -i :port

其中port代表要查询的端口号,如果想查看所有正在使用的端口,可以将端口号换成字母i。

三、使用ss命令替代netstat和lsof

除了以上两个传统命令外,Linux系统还有一个比较新的命令叫做ss,它可以替代netstat和lsof,而且速度更快、查询更准确。ss命令的基本语法如下:

ss -ltnp

其中,选项-l表示显示所有监听的连接,选项-t表示仅显示TCP连接,选项-n表示直接显示IP地址和端口,而不使用主机名和服务名称,选项-p表示显示使用该连接或端口的进程和进程ID。

四、使用nmap扫描开放的端口

除了查看当前系统监听的端口外,还可以使用nmap这个强大的工具来扫描网段或指定IP地址主机上开放的端口。其基本语法如下:

nmap -sS IP或网段

其中,选项-sS表示使用TCP SYN扫描方式,可以快速查询哪些端口处于开放状态。也可以探测指定的端口,例如:

nmap -p port IP或网段

其中port指定要探测的端口号。

五、使用telnet测试端口连通性

除了以上工具外,还可以使用telnet命令来测试网络主机上某个端口的连通性是否正常。其基本语法如下:

telnet IP地址 端口号

例如,要测试本机上的80号端口是否开放,可以执行以下命令:

telnet localhost 80

如果连接成功,将会看到一片空白。如果连接失败,则表示该端口未开放或无法连接。