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

我有一个进程,可以在不同的端口上打开几个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无论如何意外关闭,那么进程很可能会崩溃.

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...