From 6374fed87ca2413b86e6189cdfb21c78f63a77a3 Mon Sep 17 00:00:00 2001 From: dushixiang Date: Sat, 6 Dec 2025 12:32:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=20ICMP=20=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=89=B9=E6=9D=83=E6=A8=A1=E5=BC=8F=E9=87=8D=E8=AF=95?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/agent/collector/monitor.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkg/agent/collector/monitor.go b/pkg/agent/collector/monitor.go index c508b5c..b0196d7 100644 --- a/pkg/agent/collector/monitor.go +++ b/pkg/agent/collector/monitor.go @@ -277,9 +277,14 @@ func (c *MonitorCollector) checkICMP(item protocol.MonitorItem) protocol.Monitor // 执行 Ping err = pinger.Run() if err != nil { - result.Status = "down" - result.Error = fmt.Sprintf("ping failed: %v", err) - return result + // 如果非特权模式失败,尝试特权模式(需要 root 权限或 CAP_NET_RAW) + pinger.SetPrivileged(true) + err = pinger.Run() + if err != nil { + result.Status = "down" + result.Error = fmt.Sprintf("ping failed: %v", err) + return result + } } // 获取统计信息