如果你们的使用环境也是有内外网的分离,那么代理是一个很好的选项,现在就http代理来说,squid还是比较轻量的。 适合大部分人使用。
Squid 代理最吃哪类硬件
A. 最关键:网络与网卡
- **吞吐 & PPS(每秒包数)**决定体验:大量 HTTPS CONNECT 会让“连接建立/维持”成为主角。
- 建议:
- 1GbE 足够(60 台终端一般没问题),如果你们有集中更新/大文件下载/大量并发,直接上 10GbE 更稳。
- VM 里网卡尽量用 virtio-net(KVM)或等价高性能虚拟网卡;避免 e1000 这种老网卡模拟。
B. 第二关键:CPU(但不需要很大)
- 如果没做 SSL 解密(SSL Bump),CPU主要消耗在:
- 连接管理、ACL 匹配、DNS、少量 I/O
- 建议:
- 2 vCPU 起步(稳妥),业务波动/并发高就 4 vCPU。
- CPU 主频比核心数更重要一点(连接密集型偏单核/少核效率)。
C. 内存:够用就行(别太小)
- 不做缓存时,内存主要给:
- 热对象、连接/FD、DNS cache、Squid 内部结构
- 建议:
- 2GB 起步;想更稳就 4GB。
- 如果几乎不缓存,给到 8GB 往往用不满(除非你后面加缓存或做 SSL Bump)。
D. 磁盘:如果你“去日志+不缓存”,磁盘几乎不重要
- 你现在写入比较明显的其实是 access.log(以及 cache.log)。
- 如果你决定“去除日志,只保留核心功能”,那磁盘压力会大幅下降。
- 建议:
- 系统盘 20–40GB 就够。
- 仍建议用 SSD(VM 存储层面更稳),但不是性能瓶颈点。
E. 典型推荐配置
- 2 vCPU / 4GB RAM / 20–40GB 磁盘 / 1GbE:对 60 台终端的“白名单代理转发”通常很稳。
- 如果你预计并发会更高(比如统一更新、爬虫、CI 拉依赖、多人同时下载):
- 4 vCPU / 8GB RAM / 1–10GbE(更抗峰值)。
Debian 13 上的系统级优化(重点:连接数、FD、网络栈)
提升文件句柄和连接上限(这步很关键)
systemd 给 squid 提升 LimitNOFILE
创建目录并写 override:
sudo systemctl edit squid
追加
[Service]
LimitNOFILE=1048576
然后刷新配置
sudo systemctl daemon-reload
sudo systemctl restart squid
内核级 file-max
写入 /etc/sysctl.d/99-squid.conf:
fs.file-max = 1048576
使其生效
sudo sysctl –system
网络栈调优(偏“连接密集型代理”)
同样放到 /etc/sysctl.d/99-squid.conf ,没有的就覆盖,有的就追加,也可以直接追加
# 队列与并发
net.core.somaxconn = 4096
net.core.netdev_max_backlog = 16384
# Socket 缓冲(不夸张即可)
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
# 端口范围(避免高并发时临时端口紧张)
net.ipv4.ip_local_port_range = 10240 65535
# 连接回收/保活(适度即可,别太激进)
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 5
生效:
sudo sysctl --system
squid的配置你们就自己配吧
检查语法
sudo squid -k parse
没问题就
sudo systemctl enable --now squid