netstat 报告没有所属进程的 UDP 端口

netstat 报告没有所属进程的 UDP 端口

当我运行时,netstat -avp udp端口数量会缓慢增加。它每小时增加约 100 个,但速率变化很大。

当我关闭进程时,端口不会从列表中消失。当我终止进程时也是如此。重新启动机器显然会重置列表,但它只会再次增长。我有多台机器出现相同症状。

列出的大多数端口都与 mDNSResponder 相关,但我认为这无关紧要,因为该问题也与 Chrome、Outlook 和其他程序相关。

一段时间后,网络访问变得不稳定,大概是因为 49000-65000 范围内的端口耗尽了,而大多数 UDP 端口都分配在该范围内。

lsof -iUDP -n当 netstat 报告数千个 UDP 端口时,运行仅显示 30 个。

这些机器是运行 MacOS Monterey 12.0.1 的 iMac,并报告说它们已完全更新补丁。

netstat 输出的前几行如下所示:

Active Internet connections (including servers)
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)     rhiwat shiwat    pid   epid  state    options
udp4       0      0  *.55317                *.*                                786896   9216    238  62261 0x0103 0x00010000
udp4       0      0  *.62074                *.*                                786896   9216    238    577 0x0103 0x00010000
udp4       0      0  *.51635                *.*                                786896   9216    238    301 0x0103 0x00010000
udp4       0      0  *.54799                *.*                                786896   9216    238    301 0x0103 0x00010000
udp4       0      0  *.57143                *.*                                786896   9216    238    301 0x0103 0x00010000
udp4       0      0  *.56933                *.*                                786896   9216    238    301 0x0103 0x00010000
udp4       0      0  *.51250                *.*                                786896   9216    238  63527 0x0103 0x00010000
udp4       0      0  *.61138                *.*                                786896   9216    238  63527 0x0103 0x00010000

netstat 的页面man没有告诉我右边的列代表什么,我可以猜测 pid 是“进程 ID”,epid 是“有效进程 ID”,但是 rhiwat、shiwat、state 和 options 是什么,它们对解决这个问题有用吗?

我将非常感激任何关于如何继续调查为什么这些 Mac 的 UDP 套接字数量似乎不断增加的建议。

答案1

有人猜测这个问题是苹果在推出 Monterey 时引入的。

我个人的经验是,在 Apple 发布修复之前,卸载 Cisco Anyconnect 的套接字过滤器是一种有效的解决方法。它似乎不会影响 VPN 的运行,但在进行此类更改之前,您需要咨询公司安全人员。

注意:重新启动后,Anyconnect 套接字过滤器将重新安装,因此您需要在每次重新启动后将其删除。

答案2

我也遇到了同样的问题(Monterey 12.1)。升级到 Montery 12.2.1 后问题消失。

使用 12.1,netstat -n -p udp | wc -l每分钟增加 30 行。四天后,我的系统变得缓慢,开始出现isc_socket_bind: address not available错误。 sudo lsof -nP -iUDP | wc -l不增长。

大约四天后:

nslookup www.ibm.com
nslookup: isc_socket_bind: address not available

Reddit 上的讨论推测思科 AnyConnect 是罪魁祸首。我正在运行思科 AnyConnect。

我仍在运行 12.2.1 版的 Cisco AnyConnect,问题似乎已解决。

相关内容