可以使用以下六种方法查看端口信息。
ss:可以用于转储套接字统计信息。
netstat:可以显示打开的套接字列表。
lsof:可以列出打开的文件。
fuser:可以列出那些打开了文件的进程的进程 ID。
nmap:是网络检测工具和端口扫描程序。
systemctl:是 systemd 系统的控制管理器和服务管理器。
以下我们将找出 sshd 守护进程所使用的端口号。
方法 1:使用 ss 命令
ss 一般用于转储套接字统计信息。它能够输出类似于 netstat 输出的信息,但它可以比其它工具显示更多的 TCP 信息和状态信息。
它还可以显示所有类型的套接字统计信息,包括 PACKET、TCP、UDP、DCCP、RAW、Unix 域等。
| # ss -tnlp | grep ssh LISTEN 0 128 *:22 *:* users:(("sshd",pid=997,fd=3)) LISTEN 0 128 :::22 :::* users:(("sshd",pid=997,fd=4)) |
也可以使用端口号来检查。
| # ss -tnlp | grep ":22" LISTEN 0 128 *:22 *:* users:(("sshd",pid=997,fd=3)) LISTEN 0 128 :::22 :::* users:(("sshd",pid=997,fd=4)) |
方法 2:使用 netstat 命令
netstat 能够显示网络连接、路由表、接口统计信息、伪装连接以及多播成员。
默认情况下,netstat 会列出打开的套接字。如果不指定任何地址族,则会显示所有已配置地址族的活动套接字。但 netstat 已经过时了,一般会使用 ss 来替代。
| # netstat -tnlp | grep ssh tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 997/sshd tcp6 0 0 :::22 :::* LISTEN 997/sshd |
也可以使用端口号来检查。
| # netstat -tnlp | grep ":22" tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1208/sshd tcp6 0 0 :::22 :::* LISTEN 1208/sshd |
方法 3:使用 lsof 命令
lsof 能够列出打开的文件,并列出系统上被进程打开的文件的相关信息。
| # lsof -i -P | grep ssh COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 11584 root 3u IPv4 27625 0t0 TCP *:22 (LISTEN) sshd 11584 root 4u IPv6 27627 0t0 TCP *:22 (LISTEN) sshd 11592 root 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (ESTABLISHED) |
也可以使用端口号来检查。
| # lsof -i tcp:22 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1208 root 3u IPv4 20919 0t0 TCP *:ssh (LISTEN) sshd 1208 root 4u IPv6 20921 0t0 TCP *:ssh (LISTEN) sshd 11592 root 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (ESTABLISHED) |
方法 4:使用 fuser 命令
fuser 工具会将本地系统上打开了文件的进程的进程 ID 显示在标准输出中。
| # fuser -v 22/tcp USER PID ACCESS COMMAND 22/tcp: root 1208 F.... sshd root 12388 F.... sshd root 49339 F.... sshd |
方法 5:使用 nmap 命令








