Geo*_*ian 2 security linux linux-networking
我找不到如何列出或“读取 Linux 上打开的端口列表”。我有一个基于 Debian 的服务器。我找到了一系列列出开放端口的命令,但我找不到任何仅列出可以从外部访问的开放端口的命令。我知道 3309 是开放的,但我已将 mySQL 配置为仅回复本地主机,但该端口仍列为开放。再说一遍,我只对对外开放的端口感兴趣。
如果没有这样的命令,也许有一个 grep 来过滤掉仅限内部的端口?
您好,欢迎来到 ServerFault。
这个怎么样?
ss -tulpen | grep -vEe "\s+127[.]|::1"
Run Code Online (Sandbox Code Playgroud)
这会从输出中删除 127.0.0.0/8 和 ::1 地址。
虽然这确实列出了侦听此框上可到达的地址的所有 TCP 和 UDP 端口,但它并没有告诉您它们是否实际上可以到达。防火墙(IPTables/Netfilter、外部设备)或安全策略(SELinux、SystemD、tcpwrappers)可能仍会阻止访问。
编辑 如果您想知道端口确实可以从外部世界访问,请将主机放置在所述“外部世界”(例如互联网)中,并在针对您的服务器的该主机上运行端口扫描仪(如nmap)。
nmap 示例:
sudo nmap -sS -p1-65535 <your_server's_ip>
Run Code Online (Sandbox Code Playgroud)