#!/bin/bash # ============================================================ # RRPP 网络接口调优脚本(开机执行) # 1) 把默认路由网卡的根 qdisc 设为 fq —— BBR 的最佳搭档 # (net.core.default_qdisc=fq 只对"新创建"网卡生效,已存在网卡需显式 replace) # 2) 开启 UDP GRO 转发 —— QUIC 系协议(Hysteria2 / TUIC)转发性能 # 容器(LXC/OpenVZ)内网卡为 noqueue、且无 netdev 权限,本脚本自动跳过。 # ============================================================ set -uo pipefail IFACE=$(ip -4 route show default | awk '{print $5; exit}') [ -n "${IFACE:-}" ] || { echo "未找到默认路由网卡,跳过"; exit 0; } if tc qdisc show dev "$IFACE" 2>/dev/null | grep -q " noqueue"; then echo "$IFACE 为 noqueue(容器环境),跳过 qdisc 与网卡 offload 设置" exit 0 fi tc qdisc replace dev "$IFACE" root fq 2>/dev/null && echo "已设置 $IFACE root qdisc = fq" || echo "设置 qdisc 失败(可忽略)" ethtool -K "$IFACE" rx-udp-gro-forwarding on 2>/dev/null && echo "已开启 $IFACE rx-udp-gro-forwarding" || echo "$IFACE 不支持 rx-udp-gro-forwarding" ethtool -K "$IFACE" rx-gro-list on 2>/dev/null && echo "已开启 $IFACE rx-gro-list" || echo "$IFACE 不支持 rx-gro-list"