This guide runs through setting up AptCacherNg on a proxy/server to provide apt caching to clients. The client proxy scripts allow for multiple proxies, and account for proxies being offline.
Note that, for obvious reasons, this only works on Debian-based machines (Ubuntu and derivatives as well).