如何在Mac上关闭一个开放的端口?

2025-08-11 00:24:02 | 世界杯的规则

标签列表如何在Mac上关闭一个开放的端口?terminalnetworkfirewall4使用Netstat(在网络实用工具中),我发现了一个不寻常的IP地址 - 这个IP地址偶尔使用9个不同的开放端口,包括端口9998和9999。我还进行了Zenmap扫描,它显示端口9999的服务名称为"abyss" - 我查了一下,显然这是一个恶意服务。

这个不寻常的IP地址出现在Netstat选项中的“显示所有当前套接字连接状态”。该IP地址似乎与我的计算机上的任何应用程序无关(例如,它不是来自苹果、亚马逊等)。

这个不寻常的IP地址似乎正在使用以下开放端口:22、80、110、143、443、993、995、9998和9999。显然,端口80和443使用了“http”服务。

我一直在努力弄清楚如何关闭这些开放端口,但我无法弄清楚;这真的很令人沮丧。我正在使用Mac OS Sierra。终端中的"lsof"命令不起作用。我输入lsof(例如,lsof -i:9999),但什么都没有发生。除了lsof之外,是否有其他终端命令可以关闭开放端口?

有一个不起作用的选项是"tcpkill"命令,它可以关闭TCP端口,但必须下载并且我无法弄清楚如何下载它。

另外,是否有一款专门关闭开放端口的Mac程序?

真让人恼火的是,像Network Utility(Netstat)和Zenmap这样的程序告诉你哪些端口是开放的,却不告诉你如何关闭它们。

此外,是否有办法在终端中将特定IP地址列入黑名单(阻止连接)?这对于我可能想保持开放的端口(例如端口80),但又想阻止特定IP地址连接到它上面会很有用。

编辑:我发现这个不寻常的IP地址是一个Tor IP地址,只有在我使用Tor浏览器时才会出现,但它与我当前使用的任何Tor“节点”都没有关联,这很奇怪。当我说IP地址正在“使用”一个TCP端口时,我的意思是在Netstat中(并使用“显示所有当前套接字连接状态”的选项),在“Foreign Address”列中出现了神秘的Tor IP地址,并且在(state)列中显示为“已建立”(表示已建立连接)。Tor IP地址似乎正在使用端口9999。我偶尔还会在“Foreign Address”列中看到第二个神秘的Tor IP地址。该实体使用的是“http”(而不是“https”),这也很奇怪。

另外,正如我之前所说,这个神秘的Tor IP地址似乎在我的计算机上使用了其他一些端口,比如端口80、443和9998。我将使用lsof来尝试停止9999端口的进程。

- Sierra23561我不明白你在描述什么。你是在哪里看到这个IP地址?它是如何“使用”这些端口的?是否有与其建立的TCP连接(如果是这样,那么你提供的数字是从你的一侧还是它的一侧?)如果不是这个情况,那么它是什么?另外,它是什么类型的地址?比如,它是私有地址(192.168...或10...),链路本地地址(169.254...),环回地址(127....)还是其他类型的地址? - Gordon Davisson哦,还有 lsof 必须以 root 身份运行才能看到系统(/其他用户的)进程;尝试使用 sudo lsof -i:9999。 - Gordon Davisson一个端口是打开的,如果正在运行使用该端口的软件。因此要"关闭"它,你需要找到正在使用该端口的软件。sudo lsof -i :9998 -i :9999 应该能告诉你这一点。 - nohillside一旦你用"lsof"找到拥有这些开放端口的应用程序,你可以通过创建防火墙规则来阻止该应用程序连接:系统偏好设置 > 安全性与隐私 > 防火墙 > (进行身份验证) > 防火墙选项 > 点击"+"添加规则。 - Steve Chambers针对上述评论:我在上面的主要帖子中添加了新的细节。我还尝试点击防火墙选项中的"+"号,但它只会弹出一个应用程序列表的窗口。所以我不知道如何向防火墙添加规则。 - Sierra235如果端口显示在“外部地址”列中,那么它们并不是在您的计算机上打开的;它们是在其他计算机上打开的(可能是服务器),而您的计算机上的某个程序已经与它们建立了连接。此外,除了9998和9999端口,您列出的所有端口通常用于常见的互联网服务(ssh、web和电子邮件)。 - Gordon Davisson1个回答3在macOS上,只有当一个进程请求监听某个端口时,该端口才会打开。

首要任务是列出进程树,并希望有一个单独运行的进程打开了该端口。

sudo lsof -i:9999

如果这种方法失败了,现在你有一个特殊的辅助进程,它会在收到针对非运行中进程的数据包时进行注册。这个进程就是launchd。可以把它想象成一个门卫,让系统保持空闲状态,直到需要处理某个已注册端口上的任务。

由于你的问题涉及到五个子问题,我们将这个简短的回答留给一个非常复杂的问题,也许你可以提出一个后续问题,详细说明如何学习launchd以及它的配置文件存储位置。单单这个问题的回答就可能比你原始的帖子要长几倍。同样,防火墙操作的总结也是如此。每个操作都依赖于具体的MacOS版本来确定相关细节。

总结一下,要关闭TCP或UDP端口,你需要找到打开该端口的进程并停止该进程,或者修改告诉launchd作为代理监听的配置文件。

- bmike回答链接相关问题6 开放端口。安全吗?3 在High Sierra上找到并禁用不必要的开放端口341 如何使用netstat列出我的开放网络端口?4 为什么iPhone上会开放19421端口?4 如何在macOS Catalina上封锁除443端口之外的所有端口© 2023 根据CC BY-SA 4.0 许可证授权京ICP备19056307号-1