代理服务器优化
我的代理服务器运行在免费主机上,注意 CPU 窃取时间(Steal Time) 和 共享网络带宽。
通过以下三个主要方面的优化来最大化您的服务器性能:
系统级网络优化 (Kernel Tuning)
这些优化旨在提升服务器的 TCP 吞吐量和拥塞控制能力,这对于跨洋代理服务至关重要。
1. 启用 TCP BBR 拥塞控制 (BBR/BBRv2)
BBR (Bottleneck Bandwidth and Round-trip propagation time) 算法能显著提升连接的稳定性和速度,特别是在高延迟网络中。
检查 BBR 是否启用:
1
sysctl net.ipv4.tcp_congestion_control
启用 BBR: 在
/etc/sysctl.conf文件中添加或修改以下两行:1
2net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr应用更改:
1
sudo sysctl -p
2. 增加文件描述符限制 (Limit NOFILE)
Sing-box 作为服务器,需要处理大量并发连接。增加文件描述符(File Descriptor)限制可以防止在高并发时出现连接失败。
修改
/etc/security/limits.conf: 在文件末尾添加两行(*代表所有用户):1
2* soft nofile 65535
* hard nofile 65535修改
/etc/systemd/system/sing-box.service: 确保systemd文件中[Service]部分有:1
LimitNOFILE=infinity
(原配置中已包含
LimitNOFILE=infinity,这是好的。)
Sing-box 配置优化 (Config Tuning)
1. 协议选择和速率限制(已做但需确认)
- Hysteria 2 (hy2) 配置: 您的 Hysteria 2 配置中设置了
up_mbps: 60和down_mbps: 60。- 优化建议: 如果启用了 BBR,并且您的服务器带宽高于 60 Mbps,建议将这两个值设置得更高(例如 500 或 1000),让 BBR 算法来决定最佳速度,而不是让 Sing-box 软件进行硬性限速。
- VLESS Multiplex (Mux) 配置: 您的 VLESS 入站启用了 Mux。
- 优化建议: Mux 可以减少 TLS 握手次数,降低延迟。保持开启是好的,但如果遇到速度不升反降的情况,可以尝试关闭
multiplex进行对比测试。
- 优化建议: Mux 可以减少 TLS 握手次数,降低延迟。保持开启是好的,但如果遇到速度不升反降的情况,可以尝试关闭
2. DNS 配置优化
确保您的 DNS 查询足够快速,避免 DNS 解析成为瓶颈。
上游 DNS 优化: 我的配置使用了
type: "local",这会使用系统默认的 DNS。可以考虑使用公共的 DoT/DoH 服务器作为上游,例如:1
2
3
4
5
6
7
8
9
10
11"dns": {
"servers": [
{
"tag": "Google",
"address": "8.8.8.8"
},
// 添加其他高速DNS,例如 Cloudflare DNS
// { "tag": "Cloudflare", "address": "1.1.1.1" }
],
// ... 其他规则
}
3. 启用缓存文件 (Cache File)
我的配置已启用,这是很好的,它能提高 GeoIP 和 Geosite 规则查找的速度。
环境与稳定性保障
1. 确保防火墙和安全组配置正确
操作系统防火墙(如
ufw): 必须开放相应的端口。1
2
3
4# 假设使用 UFW
sudo ufw allow 443/tcp
sudo ufw allow 7800/udp
sudo ufw reload
2. 监控 CPU 窃取时间(Steal Time)
在免费实例上,如果 CPU 窃取时间过高(例如持续超过 10%),意味着您的进程正在等待其他用户的进程使用 CPU,这是主机超售的表现,无法通过软件优化解决。
监控工具:
1
2sudo apt install htop
# 运行 htop,观察 'st' (Steal Time) 一项的百分比。如果
st过高,尝试在不同时间段使用服务器,或在 Oracle 控制台重启实例,可能会被分配到负载较低的物理机上。
3. 内存和 Swap 优化
如果使用的是低内存的 ARM 实例(如 1GB RAM),确保 Swap 文件足够大,可以防止在负载高峰期被 OOM (Out-of-Memory Killer) 杀死进程。
- 推荐方案: 检查 Swap 状态 (
free -h),如果不足,可以添加或增加 ZRAM 虚拟 Swap。
免费实例通常内存较小(如 1GB 或 2GB)。在没有 Swap 的情况下,如果 Sing-box 或其他后台进程内存使用量超过物理内存,系统将触发 OOM (Out-of-Memory Killer),随机杀死进程,这极可能导致您的 Sing-box 服务被终止,造成服务中断。
配置 Swap 文件作为保障:
1 | # 创建 Swap 文件(例如 2GB) |
设置为开机自动挂载:
1 | # 备份 fstab 文件 |
验证:
1 | free -h |
应该能看到 Swap 行显示 2G 左右的容量。
