我的基于 Tomato 的路由器有两个接口 Eth0 - 直接连接 Tun1 - vpn
有时某些网站会返回“HTTP/1.1 302 Found”,当这种情况发生时,我想添加 iptables 规则,以便对于该特定 IP 使用 Tun1 而不是 Eth0。
我不知道如何在路由器上捕获“HTTP/1.1 302 Found”响应以及如何将其用作 IPTABLES 规则的触发器。我应该使用 tcpdump 24\7 吗,或者有更好的方法吗?任何意见都将不胜感激。谢谢。
答案1
我怀疑是否已经准备好实施这种行为。
为了实现这一点,您需要考虑以下几点:
- 这只能通过 HTTP 连接实现,因为它需要能够读取纯文本版本的数据。在 HTTPS 中,数据是加密的。
- 需要一种机制来读取流量、实现 HTTP 协议解析并从
Location
HTTP 标头中找出目的地。 - 需要解析 URL 以从
Location
标头中提取域,然后对该域执行 IP 地址查找。 - 需要将步骤 3 中找到的 IP 地址的 IPTables NAT 规则添加到内核的防火墙表中。
总之,这需要许多不同的组件来实现该功能,而且我认为没有人实现过它。