好的,所以我有一个 Ubuntu 盒子作为我的 LAN 的路由器/网关;带 3 个网卡,2 个用于 WAN,1 个用于本地网络。它被设置为在需要时在 WAN 和故障转移之间进行负载平衡。哦,我不得不在等式中加入鱿鱼。当前设置为 nat 将 http/s 端口重定向到 squid 端口,如下所示:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3126
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 3127
我相信它工作正常......但我不想停在那里。我想尝试 TPROXY,但我似乎无法让它工作。我在 access.log 中没有流量,并且客户端正在超时访问站点。
三角路由是不可能的,我认为我不应该使用网桥?所以下面是我的尝试:
iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 80 -j TPROXY --on-ip 0.0.0.0 --on-port 3126 --tproxy-mark 0x1/0x1
iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 443 -j TPROXY --on-ip 0.0.0.0 --on-port 3127 --tproxy-mark 0x1/0x1
# this is supposed to mark wan traffic going back to lan?
iptables -t mangle -A PREROUTING -i eth2 -p tcp -d 192.168.1.0/24 -j MARK --set-mark 0x1/0x1
iptables -t mangle -A PREROUTING -i eth3 -p tcp -d 192.168.1.0/24 -j MARK --set-mark 0x1/0x1
ip rule add fwmark 0x1/0x1 table 100
ip route add local 0.0.0.0/0 dev lo table 100
好吧,我不确定我的设置是否可以使用 TPROXY。如果这不可能,我将不得不暂时放弃。但如果是的话,有人会知道怎么做吗?
如果您的网络拓扑使用位于路由器内部的 squid 盒,它将数据包传递给 Squid。然后,您将需要显式添加一些额外的配置。 比如什么配置?
谢谢。