从udp到tcp的iptables

时间:2015-02-23 15:31:15

标签: tcp udp port iptables

是否可以使用iptables将所有传出的 udp 流量从网关路由器转换为 tcp 在同一端口上。看过mangle但不确定我怎么能用它。

1 个答案:

答案 0 :(得分:3)

至少由于以下原因,这是不可能的通用方式:

  • UDP是一种数据报协议,其中每个数据包独立于另一个数据包。 TCP代替是流协议。虽然可以将UDP数据包连接到TCP流,但不清楚应该在哪些边界分割TCP流以生成数据包。
  • 使用UDP重复,可能会发生数据包丢失和数据包重新排序。如果您无法确定正确的顺序,并且您获得了所有消息,并且一旦您无法从中构建可靠的TCP流,那么就一定无法确定。
  • TCP在接收数据包时确认,如果缺少ACK,则重新传输数据包。一旦将TCP转发到UDP,就无法完成这些ACK,因为UDP没有这种机制。

可能仍然可以进行特定于应用程序的翻译,例如UDP DNS到TCP DNS或类似的。但是这种转换取决于应用程序协议,因此您需要具有特定于应用程序的网关。 iptables作为数据包过滤器在较低层工作,但不提供这种功能。