shadow1ng/fscan · error
packet rate limited
Error message
packet rate limited
What it means
Sentinel error indicating the packet rate limit is exceeded; returned as a PacketLimitError with Sentinel=ErrPacketRateLimited where Limit is the allowed rate and Current the observed count. Fires when send frequency exceeds the configured rate cap, unlike ErrMaxPacketReached which is a total-count cap.
Source
Thrown at common/globals.go:92
date = "unknown"
)
func GetVersion() string { return version }
// 运行时数据已迁移到Config对象中,使用GetGlobalConfig()访问
// Shell状态已迁移到State对象中,使用GetGlobalState()访问
// POC配置、输出控制、发包控制、初始化已迁移到Config/State对象中
// =============================================================================
// 发包限制错误类型
// =============================================================================
// 哨兵错误 - 用于 errors.Is 判断
var (
ErrMaxPacketReached = errors.New("max packet count reached")
ErrPacketRateLimited = errors.New("packet rate limited")
)
// PacketLimitError 发包限制错误(包含详情)
type PacketLimitError struct {
Sentinel error // ErrMaxPacketReached 或 ErrPacketRateLimited
Limit int64
Current int64
}
func (e *PacketLimitError) Error() string {
if e.Sentinel == ErrMaxPacketReached {
return i18n.Tr("packet_limit_max_reached", e.Limit)
}
return i18n.Tr("packet_limit_rate_limited", e.Limit)
}
func (e *PacketLimitError) Unwrap() error {
return e.SentinelView on GitHub (pinned to 95cc12e753)
Solutions
- Lower scan concurrency or increase the per-second packet rate allowance
- Add backoff/timing between bursts so Current stays under Limit
- Verify the rate limiter configuration on the Config object
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at common/globals.go:92 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of shadow1ng/fscan@95cc12e753 (2026-09-06).
Data as JSON: /api/errors/44d1af9ab6a92036.
Report an issue: GitHub.