【问题标题】:How to keep socket visible after closing the connection?关闭连接后如何保持套接字可见?
【发布时间】:2014-01-16 11:54:27
【问题描述】:

是否可以将 Linux 配置为在 netstat/lsof 关闭后保持 tcp 连接可见? (与连接状态无关)。 我需要用 netstat/lsof 来检测它,但是如果连接很短,它就不会被检测到。

我无法注册的套接字似乎是接收第一个 FIN 的套接字

【问题讨论】:

  • 您混淆了套接字和端口。当您关闭它们时,套接字会立即关闭。端口可以​​在关闭之前进入各种连接后状态。您在 netstat 中看到的是端口,而不是套接字。
  • @EJP 我的问题似乎在于检测与临时端口相关的进程,因为它们的状态非常短。有什么方法可以检测与这些临时端口相关的进程吗?

标签: linux sockets networking tcp netstat


【解决方案1】:

这取决于哪一端先关闭连接。

先关闭的端口(发送第一个FIN)会暂时处于TIME_WAIT状态,默认秒数在/proc/sys/net/ipv4/tcp_fin_timeout,一般是60秒,后面用netstat可以看到程序已关闭套接字。

如果需要,您可以调整它,echo 120 > /proc/sys/net/ipv4/tcp_fin_timeout

对等端口(接收第一个 FIN 的端口)似乎在收到 FIN 并从其末端发送 FIN 后立即被删除 - 我没有找到任何可以调整该行为的东西。

【讨论】:

  • 我无法注册的套接字似乎是收到第一个FIN的套接字,我将在问题处指定并等待其他想法。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-08
  • 1970-01-01
相关资源
最近更新 更多