这是一段中文。希望能帮上那些被可怜的http代理折磨的人们。
在我的FreeBSD盒子里,portsnap fetch一直失败,分析了一下代码,就是代理的问题。
因为某公司在这边办公室访问公网需要通过http_proxy,上面又加了很多过滤的东西,导致下载文件会被无故终止。
命令断在这里
1 2 |
fetch -r http://portsnap.FreeBSD.org/s/ 3f1313e6477b7cd2d83bffb8572d710f89bd8d1f68b9c3b5bb8fcf3d314e1514.tgz |
下载到9%的时候出错,估计是代理端的防火墙无法扫描文件内容就停掉了。Damn McAfee.
把fetch换成wget/axel均无用, 下载是否成功 取决于他们是否能读懂文件内容。
无奈,送给那些同样辛苦的人们,
系统
1 2 3 |
FreeBSD D630-BSD 9.1-RELEASE-p4 FreeBSD 9.1-RELEASE-p4 #0: Mon Jun 17 11:42:37 UTC 2013 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64 |
代理
http://server:80/
绕过办法,
找一个不需要此代理的机器,或者能直接访问公网的地方,下载上述fetch文件。tgz
再scp到bsd节点的/tmp/下面。
修改 /usr/sbin/portsnap文件, 把原来的fetch行改掉,改成 复制命令。(是否要备份原脚本,取决于心情)
1 2 3 |
635 # fetch -r http://${SERVERNAME}/s/${SNAPSHOTHASH}.tgz || return 1 636 cp /tmp/3f1313e6477b7cd2d83bffb8572d710f89bd8d1f68b9c3b5bb8fcf3d 314e1514.tgz /var/db/portsnap/ |
一路畅通。远离那些讨厌的事情。