无法设置透明代理

我一直试图没有成功,像在电脑上设置一个透明的代理服务器。 我发现的大多数例子都没有在同一台计算机上的网关和代理,所以我可能会看到错误的例子。 这是我的'路由器'电脑如何设置:

  • 它充当无线AP,并具有两个LAN端口(目前仅使用一个LAN端口)
  • 它有一个DHCP和DNS服务器上设置
  • Dansguardian和鱿鱼是完全安装(我已经用telnet和squidclienttesting)
  • 通过iptables NAT是所有设置和工作正常。

我目前的iptables安装脚本(是的,这是非常简单的,并允许太多。我得到透明代理工作后,我会更好地locking它):

LAN="wlp4s0" WAN="enp3s0" PROXY_PORT="8080" iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X #handle unmatched traffic iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -A INPUT -m state --state INVALID -j DROP ### Allow Loopback iptables -A INPUT -i lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT iptables -A OUTPUT -o lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT #rules for NAT iptables -A FORWARD -o $WAN -i $LAN -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE 

以下是我尝试的不同规则:

 #I quickly get a 'website unavailable' message with this one iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -j REDIRECT --to-port $PROXY_PORT 

 #Requests timeout with this one iptables -t nat -A PREROUTING -i $LAN -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port $PROXY_PORT 

 #Requests timeout with this one also iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -j DNAT --to 192.168.0.0:$PROXY_PORT 

任何人有任何想法我做错了什么? 我是否缺less其他规则或者是否存在将其搞乱的规则?

我想到了。 iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -j REDIRECT --to-port $PROXY_PORT的第一个规则并不是超时,但是马上返回一个错误是关键。

Dansguardian设置为监听127.0.0.1,而不是192.168.0.1(服务器的IP地址)。 我使用127.0.0.1之前的telnettesting。 一旦我尝试telnet到192.168.0.1testing,我很快就明白了这个问题。