在Linux系统中,查看开放端口是一项常见的任务,无论是为了系统安全检查、网络故障排除还是配置服务。本文将详细介绍如何在Linux系统中查看开放端口,并提供一些常用的命令和技巧。
netstat
命令netstat
是一个网络统计工具,可以显示网络连接、路由表、接口统计、伪装连接和多播成员。
sudo netstat -tuln
-t
:显示TCP端口。-u
:显示UDP端口。-l
:仅显示监听中的套接字。-n
:以数字形式显示地址和端口号。例如,输出可能如下所示:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::80 :::* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
从上面的输出可以看到,22端口(SSH)和80端口(HTTP)是开放的。
ss
命令ss
是 netstat
的替代工具,功能更强大且速度更快。
sudo ss -tuln
选项与 netstat
类似:
-t
:显示TCP端口。-u
:显示UDP端口。-l
:仅显示监听中的套接字。-n
:以数字形式显示地址和端口号。lsof
命令lsof
命令可以列出当前系统打开的文件,包括网络连接。
sudo lsof -i -P -n | grep LISTEN
-i
:显示网络文件。-P
:显示端口号而不是服务名称。-n
:显示IP地址而不是主机名。nmap
扫描nmap
是一个网络扫描工具,可以用来探测开放端口。
sudo apt-get install nmap
sudo nmap localhost
这将返回类似以下的结果:
Starting Nmap 7.60 ( https://nmap.org ) at 2023-04-01 12:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000050s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
3306/tcp open mysql
通过上述方法,你可以轻松地在Linux系统中查看哪些端口是开放的,并了解每个端口上运行的服务。这对于确保系统的安全性以及诊断网络问题非常有用。