linux - 将 TCP 流重定向到另一个客户端

标签 linux tcp stream iptables

我有一个 TCP 服务器,只允许几个客户端连接到它。然而,数据传输纯粹是单向的——服务器将所有数据发送给客户端,客户端几乎没有数据返回服务器。有没有办法使用 iptables 或防火墙将离开服务器到客户端的 TCP 流重定向到另一个 TCP 客户端?

最佳答案

您可以设计一个粗略的数据包嗅探方案来执行此操作,但第二个客户端不能是标准的 tcp 客户端。

没有单向 TCP 连接这样的东西。有效负载——应用程序数据传输——可能是单向的,但 TCP 本身是双向的、确认的协议(protocol),状态在两端维护并由控制消息或数据消息上搭载的控制信息更新。状态也由超时更新——未能在指定时间内接收到控制数据包。

TCP 将在 9 月满 30 岁。这是 RFC,由 Jon Postel of blessed memory 编写。参见 http://www.ietf.org/rfc/rfc793.txt

协议(protocol)实体在每一端的状态图如图 6 所示。

关于linux - 将 TCP 流重定向到另一个客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6393362/

相关文章:

ios - 使用 Xamarin 的 iOS 多路径 TCP

java - 从 Stream 调用的 close() 方法如何指向 AbstractPipeline 抽象类中 close() 方法的实现?

java - Postgres 9.2 - 恢复转储正在翻译转义的 unicode 并破坏 java 序列化对象

json - 如果键匹配,则从 bash 中的 json 中提取特定键值

ruby - 安装完整的 ruby​​ 后要使用什么 shebang 行?

networking - TCP Reno 中的慢启动阈值

sql-server-2008 - 自动启用命名管道和 TCP/IP 协议(protocol) SQL Server 2008 R2

java - WEEK_OF_MONTH 返回 0,而 linux 命令返回 1

php - 如何创建一个假的/"virtual"文件?

java - 在 java 中创建一个独立的 gui 控制台,扩展基于提示的应用程序