如何打开或关闭 UDP 馈送?

如何打开或关闭 UDP 馈送?

我有一个 Linux 应用程序,它正在向特定 IP 和端口发送一串 UDP 数据包。我需要一种方法来抑制此数据包流,以便数据包永远不会到达网络,并能够将其打开和关闭,而不会影响发送应用程序。

我的第一次尝试是直接丢弃 iptables 中 OUTBOUND 链上的数据包,但这导致发送应用程序在发送数据包时收到错误,这是不可接受的。

如果我添加以下规则,我的应用程序将从 sendto() 返回 -1,而不是发送的字节数:

iptables -A OUTPUT -d 192.168.1.10 -j DROP

第二次尝试是为 udp 目标 ip 添加静态路由,以将数据包重定向到环回。这仅在发送方未绑定到接口时才有效,而这正是实际应用程序正在执行的操作(并且无法更改)。

我的其他尝试包括使用 iptables 对目标 IP 进行 NAT 或将 TTL 设置为零。似乎需要重新启动应用程序才能使这些更改生效,因此我无法在正在运行的应用程序中切换流。

相关内容