我目前的设置包含以下内容:
eth0是对网关的访问, eth1pipe理本地networking(192.128.2.0/24) eth1 ) 当我在eth1上设置客户端使用192.168.2.1:4000作为HTTP和HTTPS代理时,一切顺利。 不过,我使用iptables来自动执行这个redirect过程的尝试都失败了。 这是我做的最后一次尝试:
iptables -t mangle -A PREROUTING -i eth1 -p tcp -m multiport --dport 80,443 -j TPROXY --on-ip 0.0.0.0 --on-port 4000 --tproxy-mark 1/1 iptables -t mangle -A PREROUTING -i eth0 -s 192.168.1.0/24 -j ACCEPT iptables -t mangle -A PREROUTING -i eth0 -d 192.168.1.0/24 -j ACCEPT iptables -t mangle -A PREROUTING -i eth0 -m multiport --sport 80,443 -j MARK --set-mark 1/1
我的理解如下:
然后,我使用ip来定义一个路由策略路由,基于我使用iptables设置的标记:
ip rule add fwmark 1/1 table 1 ip route add local 0.0.0.0/0 dev lo table 1
当然,它不工作,我甚至不知道为什么…也许我的代理服务器不支持TPROXYfunction,我应该去只有MARK规则…但即使如此,我有点失落这里。
首先,看看这里: 截取caching的概念,对使用透明代理的优点,缺点或可能的问题有一些想法。
其次,HTTPS或SSL通信将不能使用正常的透明代理。 您需要有一个称为ssl-bump的特殊configuration,在隐私方面有其自身的问题需要考虑。
第三,
假设eth0为外部,eth1为内部(lan,192.168.1.0/24)接口,下面是用于redirecthttpstream量的两个示例iptables规则:
iptables -t nat -A PREROUTING -i eth1 -p tcp -dport 80 -j DNAT – 到192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j REDIRECT – 到端口3128
这是不使用Tproxy。