【发布时间】:2017-03-24 13:57:49
【问题描述】:
我是第一次使用 squid,实际上我是从 privoxy 转发到 squid 再到服务器。 当我点击请求而不是 Squid 日志时,我可以看到 privoxy 日志。 我已经检查了 access.log 但没有运气。 谁能帮我解决这个问题。
【问题讨论】:
我是第一次使用 squid,实际上我是从 privoxy 转发到 squid 再到服务器。 当我点击请求而不是 Squid 日志时,我可以看到 privoxy 日志。 我已经检查了 access.log 但没有运气。 谁能帮我解决这个问题。
【问题讨论】:
除非您另外配置了 Squid,否则所有请求(无论成功与否)都将在完成后写入 access.log 文件。在请求成功的情况下,这几乎会立即发生,但不成功请求可能需要长达 30 秒的时间才会出现在日志中。在检查文件之前,您是否等待足够长的时间让这种情况发生?
假设您在 Linux 上运行,也许您可以使用 wget 之类的工具通过代理发送一些请求,然后检查日志。这将确认日志记录确实有效。使用此语法:
http_proxy=http://localhost:3128/ wget www.google.com --debug
在命令开头添加“http_proxy=”告诉 wget 在 localhost 的 3128 端口上使用代理侦听。wget 向您展示了什么? Squid 是否向 access.log 文件写入任何内容?如果是这样,这似乎表明您的代理记录正常,但 privoxy 没有向它发送任何内容。
您可以尝试的另一件事是在您希望 privoxy 将流量发送到 Squid 的 TCP 端口上运行数据包捕获。我不知道你如何配置 privoxy,但我假设顺序是这样的:
客户端 > Privoxy > Squid > 服务器
在这种情况下,假设 privoxy 通过 TCP 端口 3128 连接到 localhost 上的 Squid。您可以运行数据包捕获以查看 privoxy 是否甚至连接到 Squid,如下所示:
tcpdump -i localhost port 3128 -vv
或者,如果您看到正在传输的数据包但想知道其中的内容,那么出色的 tcpflow 就是您的朋友:
tcpflow -c -i localhost port 3128
如果您编辑问题以提供更多上下文,则可能会提供更好的答案。
【讨论】:
我添加了以下配置,现在可以看到日志了。
access_log /var/log/squid/access.log squid
access_log syslog:daemon.debug squid
【讨论】: