【LAX.AN4.EB.CORONA】内核调参

【不太硬核调优】DMIT LAX.EB 1G内存如何跑满2Gbps?拒绝OOM,精准计算BDP压榨极限


不太硬核计算:我们需要多大的窗口?

要在中美线路(约 150ms 延迟)跑满 2Gbps 带宽,不能靠猜,要靠 BDP(带宽时延积) 公式计算:

2000Mbps * 0.15s / 8 = 37.5 MB

也就是说,理论上每个 TCP 连接至少需要 37.5 MB 的缓存才能跑满带宽。

  • TCP迷之调参平衡模式给 30MB?速度腰斩。
  • 官方默认给 512MB?1G 内存时不时爆炸。

解决方案:精准刀法 Sysctl

将 TCP 缓冲区锁定在 40MB(略高于理论值 37.5MB),既能喂饱 2Gbps 端口,又给系统留足了生存空间。

  • 系统环境: Ubuntu 24.04 (Kernel 6.14)

关键配套:软件层优化

光改内核没用,应用层协议选错了一样爆内存。在 1G 内存上跑 2Gbps,千万别用 VMess+WS+TLS,内存拷贝开销太大。

推荐组合:

  • Core: Sing-box (内存占用比 Xray 更低,适合小内存机器)
  • Protocol: VLESS + Reality + Vision
  • Flow: xtls-rprx-vision (这是关键,实现零拷贝透传,极大节省 CPU 和内存)

参数本体

# === DMIT LAX.CORONA (1G内存 + 2Gbps口) 简单适配版 ===

# 1. 拥塞控制 (Kernel 6.x BBR)
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

# 2. 流量队列 (1GB 内存够用了,无需过大)
net.core.somaxconn = 1024
net.ipv4.tcp_max_syn_backlog = 1024
net.core.netdev_max_backlog = 2048

# 3. 核心缓冲区:锁定 40MB
# 理论需求 37.5MB,给 40MB 留余量。
net.core.rmem_max = 41943040
net.core.wmem_max = 41943040
net.ipv4.tcp_rmem = 16384 16777216 41943040
net.ipv4.tcp_wmem = 16384 16777216 41943040

# 4. 内存压榨 (保持不变)
net.ipv4.tcp_adv_win_scale = 30

# 5. 协议优化
net.ipv4.tcp_sack = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15

# 6. 系统保命
kernel.panic = 10
vm.swappiness = 1
vm.overcommit_memory = 1

锦上添花的其他优化

除了核心的 TCP 窗口调整,以下参数虽然不直接决定“最高跑分”,但对于降低握手延迟、提升 UDP 协议支持(如 Hysteria2)、以及节省内存非常有帮助。

我觉着是没必要,UDP协议并不怎么好用,稳定性还差 :melting_face:

追加参数

# === 进阶功能优化 (Optional) ===

# 1. 开启 IP 转发 (Docker/做网关/特定路由规则必需)
net.ipv4.ip_forward = 1

# 2. 开启 TCP Fast Open (TFO)
# 允许在握手期间传输数据,减少 1 个 RTT 的延迟,Sing-box/Xray 均支持
net.ipv4.tcp_fastopen = 3

# 3. 开启 MTU 自动探测
# 修复因路径上部分路由 MTU 过小导致的大包发不出(表现为 SSH 正常但网页打不开)
net.ipv4.tcp_mtu_probing = 1

# 4. 优化连接保持时间 (针对 1G 小内存机器优化)
# 默认 7200 秒太长,改为 10 分钟。快速回收“半死不活”的僵尸连接,释放宝贵的 RAM
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 3

# 5. 适度优化 UDP 缓冲区
# 虽然主要用 TCP,但为 Hysteria2 / HTTP3 预留 8MB 空间(无需设太大,避免浪费内存)
net.core.rmem_default = 8388608
net.core.wmem_default = 8388608

# 6. 提高系统级文件描述符限制
# 防止高并发下出现 "Too many open files" 错误
fs.file-max = 1000000
74 个赞

这个不会对邻居造成什么影响吧?

3 个赞

真技术贴

4 个赞

比官方保守些,影响不大

5 个赞

太专业了

3 个赞

EB不是限速了0.5G的口子吗

2 个赞

我移动流量能跑800Mbps

1 个赞

收藏了,希望有一天用的上:smiling_face_with_three_hearts::smiling_face_with_three_hearts:

2 个赞

看不懂,但是收藏了

2 个赞

压榨太香啦! :smiling_face_with_three_hearts:
感谢分享! :partying_face:

1 个赞

后悔没买EB.CORONA :distorted_face:

2 个赞

我怎么买的时候看到 EB.CORONA 应该是 2.5Gbps 的口?

5 个赞

感谢分享

2 个赞

感谢大佬教程

4 个赞

LAX.AN4.Pro.MALIBU能用吗,我的跑大概500左右 :laughing:

4 个赞

虽然流控选Vision对CPU的压力会比其他加密方式小,但是TLS自身的加解密量上来了仍然对CPU压力很大。1C1G的配置应该无论怎么优化都吃不满CORONA的2G带宽(我记得是2Gbps来着?),这里瓶颈在CPU,不用特别执着于激进的内存回收
另外,交换内存这里建议用ZRAM取代磁盘swapfile,而不是降低交换优先级。更积极交换到ZRAM对预防OOM只有好处没有坏处
毕竟不是时时刻刻都需要跑满带宽,对于代理这种场景稳定性更重要

7 个赞

参数是缓慢拉升网速的,为的就是稳定,官方的参数就是拉满的,有时候你会把ssh卡出去

2 个赞

对这个CPU来说多余了,可惜只有1核,多核直接拉满了

3 个赞

1核是不可能跑满带宽的,不要看它给的大

3 个赞

是这样的吗 :rofl:
我的机器拿到手就直接DD了,没看官方给了啥参数

4 个赞