如何识别程序执行期间打开的远程服务器的客户端套接字

如何识别程序执行期间打开的远程服务器的客户端套接字

我有一个特定的构建过程,我想确保在该构建过程中不会访问任何外部系统,这样我就可以确保我不依赖于组织外部的任何内容。我可以使用一些监视工具来查看给定进程正在打开哪些客户端套接字,而不是关闭接口?

我想过使用strace和 greping for recvfrom.事实上,我在那里什么也没看到。这足以证明这一点吗?有更好的办法吗?

答案1

你可以使用Linux命名空间将构建过程与网络隔离。这unshare可以使用命令简单地执行此操作。但是,这也会阻止构建过程通过 TCP/IP 连接到本地主机。让构建过程仅有的connect to localhost 稍微复杂一点,详细一点这里

请注意,上述所有内容都需要 root 访问权限。如果您希望构建过程以普通用户身份运行,则可以将要在命名空间中运行的命令设置为su build-user -c build-command

答案2

我最终做了以下事情:

strace -s 1000 -e trace=network build-command

相关内容