QuickQ通过建立一条到互联网的“高速通道”,把APT对远程镜像的HTTP/HTTPS请求走到更优的出口节点,同时提供本地代理、智能分流和DNS加速。配合更换更近或更快的镜像、启用本地缓存(如apt-cacher-ng)或使用多线程下载工具(apt-fast/aria2),就能把索引更新和软件包下载时间明显缩短。节点选择、全局或分流策略及TCP/MTU调优会影响最终效果。

先把原理说清楚——为什么需要加速APT源
想象你在家里从仓库里取东西,仓库离你很远、路上还堵车,取个包裹就要花半小时。APT就是这么个“去仓库”的过程:更新索引、下载.deb包,这些都是网络请求。网络延迟、丢包、不合理路由或出口带宽瓶颈都会把时间拉长。
QuickQ的作用其实像是给你开了一条快速专线:它可以重选出网关、优化路由、提供本地代理服务并改善DNS解析,让原本绕远路的请求走更短更稳定的路径,从而缩短APT的整体耗时。
具体加速手段(从易到难)
1. 选择合适的镜像源
最省钱也最直接的办法就是换镜像。你会发现,很多包管理慢并不是因为你的机器,而是源服务器距离你太远或被拥塞。
- 选择地理位置更近或响应更快的官方镜像。例如把 sources.list 指向本地/区域镜像。
- 用镜像测速工具(如netselect、apt-spy)快速比较RTT与下载速度,挑最快的。
- 注意镜像同步频率,有些镜像更新慢,虽然快但可能包不全或版本滞后。
2. 使用QuickQ的分流或全局代理
QuickQ通常支持全局代理和按应用/域名分流。对于APT,推荐把APT的域名(如archive.ubuntu.com、mirrors.tuna.tsinghua.edu.cn等)走加速通道。
- 分流模式:只把apt相关域名走QuickQ,其他流量不走;优点是避免全部走VPN引起其他问题,缺点是需要准确列出域名。
- 全局模式:所有流量走QuickQ,配置最简单,但有时会影响局域网访问或触发出口限制。
3. 在本机配置HTTP/HTTPS代理或SOCKS5代理
如果QuickQ提供本地代理端口(比如SOCKS5或HTTP proxy),可以在APT层直接配置,让apt-get通过代理请求镜像源。
- 编辑或新增文件 /etc/apt/apt.conf.d/02proxy,加入例如:
Acquire::http::Proxy "http://127.0.0.1:3128/"; - 如果是SOCKS5,可用redsocks或proxychains把SOCKS转换为HTTP,或用tsocks/tsocks.conf(视发行版而定)。
4. 启用本地缓存代理(apt-cacher-ng)
apt-cacher-ng 是非常实用的中间缓存代理。它能缓存下载过的包,下次别的机器或你再次请求相同包时直接从局域网拉取,速度飞起。
- 在同一局域网内部署一台机器运行apt-cacher-ng。
- 把客户端APT的Proxy指向该缓存服务器:Acquire::http::Proxy “http://cache-host:3142”;
- 与QuickQ结合:把cache服务器到外网的流量走QuickQ,局域网内请求从本地拿,减少外网带宽消耗。
5. 使用多线程下载工具(apt-fast + aria2)
apt默认是单线程下载,多个小文件会频繁建立连接,效率不高。apt-fast把apt的下载替换成aria2这样的多线程下载工具,可以同时从镜像的多个连接或CDN节点抓取,提高吞吐量。
- 安装apt-fast并配置aria2的连接数(例如16或32,根据带宽调整)。
- 配合QuickQ可在单连接质量差时,通过多线程分段下载提升总体速度。
一些更细的网络调优(有用但需谨慎)
下面这些操作比较技术化,适合对网络配置有一定了解的朋友尝试。
DNS优化
很多慢其实源于DNS解析慢或被劫持。QuickQ通常会提供DNS转发或加速功能,或者建议使用DoH/DoT服务。
- 使用本地DNS缓存(如dnsmasq)减少重复解析。
- 将APT镜像域名的解析固定到更快的IP(谨慎操作,注意镜像CDN策略)。
选择IPv4或IPv6
某些路径IPv6比IPv4快(或反之),可以强制apt使用某种协议进行测试,观察哪个更稳定。
TCP/TCP拥塞控制与MTU
如果你遇到频繁重传、高延迟,调整MTU或TCP拥塞算法(如使用BBR)有时候能改善传输效率。但这类操作影响范围较大,需要在了解的前提下使用。
实操步骤清单(按优先级)
- 先测:用ping/traceroute/ curl -I 去测试常用镜像的延迟和路由。
- 换镜像:把 sources.list 指向最近的镜像(或使用镜像站推荐列表)。
- QuickQ分流:把apt域名加入QuickQ的分流规则,或直接启用全局代理看效果。
- 试代理:在APT配置中设代理,确认apt update/apt install是否走代理。
- 启用本地缓存:若有多台机或频繁重装,部署apt-cacher-ng。
- 启用apt-fast:对大包和并行下载非常有效。
对比表:常见加速方式优缺点
| 方法 | 优点 | 缺点 |
| 更换镜像源 | 简单、无额外软件、立竿见影 | 镜像同步频率和稳定性差异大 |
| QuickQ分流/全局代理 | 路由优化、跨国出口选择、简单切换 | 需配置域名列表或全局影响其他服务 |
| apt-cacher-ng | 局域网缓存、节省带宽、对多机友好 | 需搭建维护,占用一台服务器 |
| apt-fast/aria2 | 多线程下载,大幅提高单次下载速度 | 对小文件或镜像不支持多源时效果有限 |
常见问题与排查方法
加速后仍然慢,怎么办?
- 先确认是否为DNS问题:试着直接用IP访问镜像查看差别。
- 检查是否走了正确的代理:apt-get -o Acquire::http::Proxy=”http://127.0.0.1:3128″ update
- 查看路由和丢包:traceroute、mtr可以直观看到中间跳点。
- 切换QuickQ的节点或出口再试,有时节点本身拥塞导致效果不稳。
如何验证APT请求确实走了QuickQ?
- 在QuickQ客户端观察连接日志,看目标域名是否被路由到加速节点。
- 使用tcpdump或ss查看到特定IP/端口的流量路径。
- 对比开启/关闭QuickQ时的下载速度与延迟变化。
一些实用的命令示例
下面这些命令可以帮你快速测试和临时设置代理:
- 测试延迟与路由:ping archive.ubuntu.com,traceroute archive.ubuntu.com
- 临时用代理做更新:sudo -E apt-get -o Acquire::http::Proxy=”http://127.0.0.1:3128″ update
- 查看当前APT配置:apt-config dump | grep -i proxy
最后,几句真心话
把这些东西串起来其实不复杂,但需要一点耐心去试:先从换镜像再到分流,观察差别,每一步都能提供线索。QuickQ能把路由和出口做得更优,但并不是万能钥匙——镜像本身、CDN策略、本地网络条件都会影响结果。按前面的步骤去做,通常能把大部分情况的更新和下载时间降低不少。嗯,我好像又想到一件事,下次可以再讲如何在企业内网规模化部署apt镜像缓存,那个场景更有讲头。