找出哪个进程在Linux(Azure)中打开了一堆神秘的连接



在对我们的服务器进行压力测试时,我在Azure中运行的Ubuntu 16.04中看到了许多(200+(到神秘ip的开放HTTPS连接。此ip属于Microsoft。

  • 这个ip不属于我们的任何机器,也不属于我们正在使用的服务使用
  • 当关闭服务器进程时,连接仍然会不断出现,但一次只有4-5个,而在压力测试和服务器进程启用时,连接数量超过200个。服务器未运行任何其他服务(从Azure新安装+我们的进程(
  • 无论我尝试做什么,我都看不到这些连接来自哪个进程(以root身份运行的netstat、lsof等(

netstat打印了很多这样的

$ sudo netstat -p | grep 52.239.137.70
tcp        0      0 10.0.2.6:59202          52.239.137.70:https     TIME_WAIT   -
...

当尝试在web浏览器(HTTP或HTTPS(中打开此ip时,您会看到以下错误

<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<code>InvalidUri</code>
<message xml:lang="en-US">
The requested URI does not represent any resource on the server. RequestId...
</message>
</error>

所以我猜这是以某种方式连接到Azure Blob服务的,因为当你在谷歌上搜索错误消息时,你会得到一堆论坛帖子来解决Blob问题。

我已经解决这个问题两天了,找不到答案。我担心这会在生产中的高负载下造成问题,因为当使用少量客户端进行测试时,你仍然会看到数百个这样的神秘连接。

我已经找到了问题的原因。卸载LinuxDiagnostic Azure扩展似乎会阻止连接的出现。关联进程(mdsd(也使用了大量内存。

最新更新