加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

如何在Linux中终止单个TCP连接?

发布时间:2020-12-13 19:45:53 所属栏目:Linux 来源:网络整理
导读:我有一个进程,可以在不同的端口上打开几个tcp连接到多个浏览器. 使用netsat输出是这样的: tcp 0 0 server1.something:myprog client1.something:49987 ESTABLISHEDtcp 0 0 server1.something:myprog client1.something:65987 ESTABLISHEDtcp 0 0 server1.so
我有一个进程,可以在不同的端口上打开几个tcp连接到多个浏览器.

使用netsat输出是这样的:

tcp 0 0 server1.something:myprog client1.something:49987 ESTABLISHED
tcp 0 0 server1.something:myprog client1.something:65987 ESTABLISHED
tcp 0 0 server1.something:myprog client1.something:89987 ESTABLISHED

现在我想杀死其中一个连接?我该怎么做? (因为杀死进程会杀死所有连接)

解决方法

以下是一些选项:

>使用gdb附加并在fd上调用close().您可以使用ls -la / proc / $pid / fd从addr / port到inode编号通过/ proc / net / tcp和inode编号映射到进程内的FD.
>欺骗RST数据包.你需要在本地生成它并以某种方式猜测SEQ号.
>也许设置一个iptables规则来生成下一个数据包的RST.
>编写内核模块.

似乎没有一个很好的支持方式来做到这一点.如果他们的FD无论如何意外关闭,那么进程很可能会崩溃.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读