如何在 Debian 上列出我的开放端口?

leo*_*nel 74 networking linux debian

在 Debian 服务器上显示开放端口列表的命令是什么?

我试过了,netstat -a | egrep 'Proto|LISTEN'但我想要更具体的东西,实际上列出了端口号。

Sto*_*one 101

 netstat -pln
Run Code Online (Sandbox Code Playgroud)

-l将列出侦听端口,-p还将显示进程,-n将显示端口号而不是名称。添加-t以仅显示 TCP 端口。

  • 为了让 `-p` 正常工作,您需要以 root 身份运行它,所以使用 `sudo netstat -tpln`,否则进程列将不会特别有用,除非您是其进程正在侦听给定端口的用户. (14认同)

Jef*_*and 30

lsof -i -P

检查手册页,lsof因为不乏选项。-P列出端口号而不是从/etc/services以 root 身份运行的名称,但这将为您提供所有活动网络连接及其状态(侦听、建立等)的列表。


dmo*_*ati 14

我是netstat -ntlp和 的忠实粉丝lsof -i,两者都已经提到过。

对我来说一个新的(er)命令是ss

调用是这样的:

ss -l
Run Code Online (Sandbox Code Playgroud)

在命令和标志方面有选项是很好的。


zer*_*eux 13

几乎每个人都想要的(TCP 和 UDP)是netstat -tunlp.

我每天都使用它,也许每小时都使用它。'lsof' hack 更便携(也适用于 Solaris),但在 Debian 上它不是必需的软件包,您必须安装它。

  • 现在,在 2018 年,我的新 Debian 盒子没有 `netstat`,但有 `lsof`。:) (3认同)
  • 我的朋友教我记住这个带有花名 `netstat -tulpen` 的命令,标志 `e` 提供了额外的信息。 (2认同)

小智 7

你可以做:

netstat -an | egrep 'Proto|LISTEN'
Run Code Online (Sandbox Code Playgroud)

或者干脆:

netstat -anl
Run Code Online (Sandbox Code Playgroud)

这将为您提供系统上的所有侦听套接字。

  • 这将是最好的解决方案(其中“最佳”被定义为“适用于最广泛的系统”(BSD、Linux、AIX、Solaris,我相信是 HP-UX)) (2认同)

Eri*_*ric 0

TechRepulic 有一篇不错的文章,您可以在这里找到。它有一些与上面列出的类似的命令,但也有一些变化。我还强烈建议使用 nmap 对相关计算机进行端口扫描,以便您可以从外部角度查看哪些端口已打开并正在侦听。

  • 我没有投反对票,但在服务器故障上,就像大多数堆栈交换一样,我们通常希望您将答案放在这里,而不仅仅是指向其他地方的链接。链接会随着时间的推移而消失,但我们希望 SF 上的内容在链接消失后仍然有价值。 (8认同)