参考 FreeBSD manual
http://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/ports-using.html

方法A: 使用代理。

在/etc/make.conf中设置:
FETCH_ENV= “HTTP_PROXY=IP[:端口]”
如果需要,在FETCH_ENV值后面加入空格,
HTTP_PROXY_AUTH=basic:*:user:password

方法B: 在其它机器上fetch

make fetch-recursive
…
然后将/usr/ports/distfiles拿走。

方法c:使用wget/axel加速你的port下载

以下所述功能均通过修改make.conf实现

对于wget
========
FETCH_CMD= wget
FETCH_BEFORE_ARGS= -c -t 1
FETCH_AFTER_ARGS=
DISABLE_SIZE=yes #这行是必要的,否则…

前面3行也可以换成
FETCH_CMD=wget -c -t 1

如果你要wget穿透代理服务器,请加上下面两行
FETCH_ENV=http_proxy=http://ip:3128
FETCH_ENV=ftp_proxy=http://ip:3128

或者使用其他的穿越代理工具例如proxychains 或者socks5(runsocks)
则FETCH_CMD=proxychains wget或者runsocks wget

什么?不知道wget是什么?那就先
cd /usr/ports/ftp/wget/
make install clean

对于axel
========
同样,也可以使用axel来替换fetch来进行多线程下载
FETCH_CMD=axel
FETCH_BEFORE_ARGS= -a
FETCH_AFTER_ARGS=
DISABLE_SIZE=yes
或者只写一行
FETCH_CMD=axel -a

axel 穿透代理服务器的方法与wget一致

axel在/usr/ports/ftp/axel位置

添加更快的port下载站点
====================
另外,加上以下两行可以在让make先从更快的站点下载port

MASTER_SITE_OVERRIDE?=\
http://ports.hshh.org/${DIST_SUBDIR}/ \
http://ports.cn.freebsd.org/${DIST_SUBDIR}/ \
ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ \
ftp://ftp.jp.freebsd.org/pub/FreeBSD/ports/distfiles/

我的 /etc/make.conf 文件:
FETCH_CMD=axel -a
DISABLE_SIZE=yes
MASTER_SITE_OVERRIDE?=\
http://ports.hshh.org/${DIST_SUBDIR}/ \
http://ports.cn.freebsd.org/${DIST_SUBDIR}/ \
ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ \
ftp://ftp.jp.freebsd.org/pub/FreeBSD/ports/distfiles/