我一直试图没有成功,像在电脑上设置一个透明的代理服务器。 我发现的大多数例子都没有在同一台计算机上的网关和代理,所以我可能会看到错误的例子。 这是我的'路由器'电脑如何设置:
我目前的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,我很快就明白了这个问题。