我已经将 squid 配置为使用 NAT
apt-get install squid
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
已添加到 /etc/squid/squid.conf
acl internal_network src 192.168.0.0/24
http_access allow internal_network
access_log /var/log/squid/access.log squid
问题:当我从远程计算机使用代理时,/var/log/squid/access.log 为空。
当我telnet localhost 3128
这样做时,它确实会写入日志:
1308144959.810 0 127.0.0.1 TCP_DENIED/400 1693 NONE NONE:// - NONE/- text/html
所以问题是日志记录以某种方式被关闭以供远程代理使用。
权限:
- /var/log/squid/-0777
- /var/log/squid/* - 0666
cat /var/log/squid/cache.log | grep access
给出
logfileOpen: opening log /var/log/squid/access.log
没有任何错误。
答案1
我的网络接口是 br0,而不是 eth0 或 eth1
iptables -t nat -A PREROUTING -i br0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128
解决了这个问题。