飞牛网卡崩溃解决

飞牛网卡崩溃解决

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/bash

# ==========================================
# 网卡 Offload 优化自动配置脚本
# 默认动作: 关闭 TSO, GSO / 开启 GRO
# ==========================================

# 允许通过传参指定网卡,不传参则默认使用 eno1
INTERFACE=${1:-eno1}
SERVICE_NAME="nic-offload-fix.service"
SERVICE_PATH="/etc/systemd/system/${SERVICE_NAME}"

echo "=== 开始配置网卡 [${INTERFACE}] Offload 优化服务 ==="

# 1. 创建 systemd 服务文件
echo ">>> 正在写入 systemd 配置到 ${SERVICE_PATH}..."
cat > "${SERVICE_PATH}" << EOF
[Unit]
Description=Disable NIC offload to fix ${INTERFACE} TX hang
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/ethtool -K ${INTERFACE} tso off gso off gro on

[Install]
WantedBy=multi-user.target
EOF

# 2. 重载并启动服务
echo ">>> 正在重载 systemd 守护进程..."
systemctl daemon-reload

echo ">>> 正在启用并启动服务..."
systemctl enable --now ${SERVICE_NAME}

# 3. 验证与校验
echo ""
echo "=== 验证配置结果 ==="
echo "服务运行状态:"
systemctl status ${SERVICE_NAME} --no-pager | grep -E "Active:|Loaded:"

echo ""
echo "当前 [${INTERFACE}] 的 Offload 核心参数状态:"
ethtool -k "${INTERFACE}" | grep -E 'tcp-segmentation|generic-segmentation|generic-receive'

echo ""
echo "✅ 部署完成!"
echo "💡 卸载提示: 如需移除此优化,可执行以下命令:"
echo "systemctl disable --now ${SERVICE_NAME} && rm -f ${SERVICE_PATH} && systemctl daemon-reload"
[up主专用,视频内嵌代码贴在这]