我的端口开放了吗?

4 阅读1分钟

我的端口开放了吗?

摘要: 本文提供了一个简单的单行命令,用于检查 Linux 系统上特定端口是否开放,避免了使用 nmapnetcat 等传统工具的复杂性。

原文链接


作为一名顾问,我经常需要为客户安装 Postgres。当然,我事先会发给他们一份先决条件列表,但不知道为什么,总有一两个条件出问题,而且大多数时候,问题都出在端口开放上。

工具?谁需要工具?

系统管理员会推荐你使用 nmapnetcat 或者 netstat,你可能需要组合使用这些工具(而且你总是记不住它们的语法),再配合 grep 来查找你的端口是否在其中。

然后你还得记住你选择的语法是显示开放的端口还是关闭的端口……

对我来说这有点太复杂了。我只想知道某个特定端口是开放还是关闭!

Linux 可以帮忙

所以,你需要知道 Linux 是基于文件工作的。这听起来不是什么大新闻,但这意味着主机和端口的可用性也是通过文件来表示的。我们可以利用这一点:

(echo >/dev/tcp/<host>/<port>) &>/dev/null && echo "open" || echo "close"

这个命令会简单地回答 "open" 或 "close",告诉你端口是开放还是关闭。很简单,不是吗?