使用 netstat 监控 Nextcloud 连接

使用 netstat 监控 Nextcloud 连接

我无法通过服务器上的 netstat 检测来自 Nextcloud 同步客户端的传入连接。

我的 LAN 中有一台服务器,在 Docker 容器中运行 Nextcloud 和 MySQL。我使用多个 Nextcloud 客户端(Linux、macOS 和 iOS),一切正常。

我想检查客户端是否在主机级别连接到我的服务器。使用 netstat,我可以查看客户端是否通过 Nextcloud Web UI 连接,但我无法识别 Nextcloud 同步客户端的连接。

有谁知道我缺少的 netstat 参数?欢迎任何提示。

BR斯特凡

答案1

这些连接可能与容器有DNA关联。这意味着主机现在充当“外部”和容器之间的路由器。netstat将不会显示这些连接。您将需要额外的工具来处理缺失的流程。

其中一个这样的工具是conntrack,它查询 conntrack 有关跟踪连接的信息。将此命令与选项一起使用-j

conntrack -L -j

将仅显示 NATed 连接,从而显示容器与外部之间当前活动的已建立流,并补充 的输出netstat

如果您想要类似的输出,netstat可以尝试(如果可用)netstat-nat这或多或少依赖于相同的机制。

另一种循环运行的方法是查询 Docker(docker直接在主机上使用)每个容器的主 pid,并使用结果访问容器的网络,以运行通常的netstat.这样做的优点是可以显示使用 conntrack 不再显示的某些状态(例如CLOSE_WAIT,通常是应用程序出现问题的症状)。

给定一个正在运行的名为 的 Docker 容器containername,从它自己的角度来看,它应该获取其所有网络连接,即使容器本身缺少任何有用的命令:

nsenter --target $(docker inspect --format '{{.State.Pid}}' containername) --net netstat -utn

相关内容