我经常需要设置新的 Debian 服务器,因此我尝试设置 Squid 代理来缓存 apt-get 更新/升级。但我总是遇到一些特定文件无法检索的问题。
细节:
- 我使用代理,这是访问互联网的唯一方式。我不知道使用什么软件。
- 在 ESX 5 上工作:squid 服务器和客户端
- 尝试使用 squeeze 和 wheezy Debian 版本,通过网络安装 CD 或网络 (PXE) 启动,是否使用预置配置文件
我的 Squid 配置如下(部分内容)
cache_peer upstream_proxy.internal.domain.tld parent 8080 0 no-query no-digest default cache_replacement_policy heap LFUDA cache_dir ufs /var/spool/squid3 1000 16 256 maximum_object_size 200 MB refresh_pattern . 0 20% 4320 refresh-ims
运行 Debian 安装时,一开始它运行良好(squid 正确地交付了软件包),但某一刻它试图检索软件包.gz文件,但这个文件从未被传送。我在 access.log 中看到以下条目(不确定它们是否总是出现,似乎不是)
1370855387.060 950995 <internal IP> TCP_MISS/200 679695 GET http://ftp.fr.debian.org/debian/dists/squeeze/main/binary-amd64/Packages.gz - DEFAULT_PARENT/upstream_proxy.internal.domain.tld application/x-gzip
1370855542.916 947999 <internal IP> TCP_MISS/200 2247441 GET http://ftp.fr.debian.org/debian/dists/squeeze/main/binary-amd64/Packages.gz - DEFAULT_PARENT/upstream_proxy.internal.domain.tld application/x-gzip
如果我直接在 Debian 安装程序中使用上游代理,一切就都正常了,所以这一定是配置问题,但我不知道是什么问题。
有人知道可能是什么问题或者我该如何调试它吗?
答案1
您的日志条目显示,文件是在相对较长的时间(951 秒/947 秒)后检索到的,但尽管 URI 相同,但长度却不同(679695 字节 vs. 2247441 字节),这表明存在问题。传输可能在约 950 秒后超时并中止 - 可能是由上游代理强制执行的。
检查您是否可以在合理的时间内成功检索文件不是使用 Squid:
export http_proxy="http://upstream_proxy.internal.domain.tld:8080"
wget http://ftp.fr.debian.org/debian/dists/squeeze/main/binary-amd64/Packages.gz
并从那里开始隔离问题。Squidtcpdump
代理实例和远程代理之间的传输可能有助于解决问题。此外,如果可用,请与您正在使用的代理的管理员/技术支持人员核实问题的可能原因。