“开放”端口并非真正开放

“开放”端口并非真正开放

我使用以下命令在 Ubuntu 中打开端口 2022:

sudo iptables -A INPUT -p tcp --dport 2022 -j ACCEPT

但是如果我在端口 2022 上启动 Web 服务器,则无法访问。

如果我运行命令来查看开放的端口:

sudo iptables -vnL

输出以

在此处输入图片描述

现在,显示的端口 3000 或 4000 可以运行,但 2022 却不运行。

发生了什么事?我该如何启用端口 2022?

答案1

顺序很重要。iptables 中 2022 的条目位于 后面DROP,因此DROP会首先匹配,并且ACCEPT永远不会到达您的条目。

您需要插入而不是追加(-I而不是-A)。

答案2

打开port 是数据包过滤器不会阻止的端口。为了使此端口可访问,必须将某些东西绑定到它,并且在 TCP 情况下,开始在上面。

ss -nl您可以使用或检查某事是否正在执行此操作netstat -an | grep LISTEN

相关内容