优化服务器TCP整体性能
#!/bin/bash
# ====================================================
# 脚本名称: GreenCloud JP 极致网络优化脚本 (修正版)
# ====================================================
# 1. 自动抓取变量 (增强兼容性)
GATEWAY=$(ip route show default | awk '/default/ {print $3}')
INTERFACE=$(ip route show default | awk '/default/ {print $5}')
# 尝试抓取 SRC IP,如果抓不到则留空(不强加 src 参数)
SRC_IP=$(ip route show default | grep -oP 'src \K\S+')
echo "--- 正在检测网络配置 ---"
echo "网卡: $INTERFACE"
echo "网关: $GATEWAY"
echo "源IP: ${SRC_IP:-未指定(静态路由)}"
# 2. 自动设置 MTU
echo "--- 正在优化 MTU (设定为 1420) ---"
ip link set dev $INTERFACE mtu 1420
if [ $? -eq 0 ]; then
echo "✅ MTU 已成功设置为 $(cat /sys/class/net/$INTERFACE/mtu)"
else
echo "❌ MTU 设置失败"
fi
# 3. 应用 TCP 弹射起步 (initcwnd 50)
echo "--- 正在应用 TCP 弹射起步 (initcwnd 50) ---"
# 构建基础命令
CMD="ip route replace default via $GATEWAY dev $INTERFACE mtu 1420 initcwnd 50 initrwnd 50"
# 如果有 SRC IP 则补上
if [ -n "$SRC_IP" ]; then
CMD="$CMD src $SRC_IP"
fi
# 加上 onlink 参数(针对你这种 static 路由可能需要)
CMD="$CMD onlink"
$CMD
if [ $? -eq 0 ]; then
echo "✅ 路由参数替换成功!"
else
echo "❌ 路由修改失败"
fi
# 4. 打印执行结果与现状检测
echo "------------------------------------------------"
echo "🔎 [现状检测 1] 路由表条目:"
ip route show default
echo ""
echo "🔎 [现状检测 2] TCP 核心参数 (sysctl):"
echo "拥塞算法: $(sysctl -n net.ipv4.tcp_congestion_control)"
echo "队列调度: $(sysctl -n net.core.default_qdisc)"
echo "ECN 状态: $(sysctl -n net.ipv4.tcp_ecn) (1为开启)"
echo ""
echo "🔎 [现状检测 3] 实时 BBR 运行摘要 (当前激活的连接):"
# 打印当前所有建立连接的 cwnd 和 bw 均值,让你心里有数
ss -it | awk '/bbr/{
match($0, /bw:([^, ]+)/, b);
match($0, /cwnd:([0-9]+)/, c);
if(c[1] != "") {count++; sum_bw+=b[1]; sum_cwnd+=c[1]}
} END {
if(count>0) printf "检测到 %d 条活跃连接: 平均 cwnd=%d, 估算总可用带宽=%s\n", count, sum_cwnd/count, sum_bw/count "bps";
else print "当前暂无活跃流量,请开始观看 YouTube 后再次运行查看。";
}'
echo "------------------------------------------------"
echo "🚀 所有优化已就绪,请享受 4K 极速体验!"