如何在特定事件(HTTP/1.1 302 Found)上添加 iptables 规则

如何在特定事件(HTTP/1.1 302 Found)上添加 iptables 规则

我的基于 Tomato 的路由器有两个接口 Eth0 - 直接连接 Tun1 - vpn

有时某些网站会返回“HTTP/1.1 302 Found”,当这种情况发生时,我想添加 iptables 规则,以便对于该特定 IP 使用 Tun1 而不是 Eth0。

我不知道如何在路由器上捕获“HTTP/1.1 302 Found”响应以及如何将其用作 IPTABLES 规则的触发器。我应该使用 tcpdump 24\7 吗,或者有更好的方法吗?任何意见都将不胜感激。谢谢。

答案1

我怀疑是否已经准备好实施这种行为。

为了实现这一点,您需要考虑以下几点:

  1. 这只能通过 HTTP 连接实现,因为它需要能够读取纯文本版本的数据。在 HTTPS 中,数据是加密的。
  2. 需要一种机制来读取流量、实现 HTTP 协议解析并从LocationHTTP 标头中找出目的地。
  3. 需要解析 URL 以从Location标头中提取域,然后对该域执行 IP 地址查找。
  4. 需要将步骤 3 中找到的 IP 地址的 IPTables NAT 规则添加到内核的防火墙表中。

总之,这需要许多不同的组件来实现该功能,而且我认为没有人实现过它。

相关内容