mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-09-14 14:06:44 +08:00

- 重命名 Common -> common,WebScan -> webscan,遵循 Go 包命名约定 - 修复模块路径大小写不匹配导致的编译错误 - 清理依赖项,优化 go.mod 文件 - 添加 Docker 测试环境配置文件 - 新增镜像拉取脚本以处理网络超时问题 - 成功编译生成 fscan v2.2.1 可执行文件 该修复解决了 Linux 系统下包名大小写敏感导致的模块解析失败问题。
179 lines
5.5 KiB
Go
179 lines
5.5 KiB
Go
package proxy
|
||
|
||
import (
|
||
"time"
|
||
)
|
||
|
||
/*
|
||
constants.go - 代理系统常量定义
|
||
|
||
统一管理common/proxy包中的所有常量,便于查看和编辑。
|
||
*/
|
||
|
||
// =============================================================================
|
||
// 代理类型常量 (从Types.go迁移)
|
||
// =============================================================================
|
||
|
||
const (
|
||
// 代理类型字符串
|
||
ProxyTypeStringNone = "none"
|
||
ProxyTypeStringHTTP = "http"
|
||
ProxyTypeStringHTTPS = "https"
|
||
ProxyTypeStringSOCKS5 = "socks5"
|
||
ProxyTypeStringUnknown = "unknown"
|
||
)
|
||
|
||
// =============================================================================
|
||
// 默认配置常量 (从Types.go迁移)
|
||
// =============================================================================
|
||
|
||
const (
|
||
// 默认代理配置值
|
||
DefaultProxyTimeout = 30 * time.Second // 默认超时时间
|
||
DefaultProxyMaxRetries = 3 // 默认最大重试次数
|
||
DefaultProxyKeepAlive = 30 * time.Second // 默认保持连接时间
|
||
DefaultProxyIdleTimeout = 90 * time.Second // 默认空闲超时时间
|
||
DefaultProxyMaxIdleConns = 10 // 默认最大空闲连接数
|
||
)
|
||
|
||
// =============================================================================
|
||
// 错误类型常量 (从Types.go迁移)
|
||
// =============================================================================
|
||
|
||
const (
|
||
// 预定义错误类型
|
||
ErrTypeConfig = "config_error"
|
||
ErrTypeConnection = "connection_error"
|
||
ErrTypeAuth = "auth_error"
|
||
ErrTypeTimeout = "timeout_error"
|
||
ErrTypeProtocol = "protocol_error"
|
||
)
|
||
|
||
// =============================================================================
|
||
// 缓存管理常量 (从Manager.go迁移)
|
||
// =============================================================================
|
||
|
||
const (
|
||
// 缓存配置
|
||
DefaultCacheExpiry = 5 * time.Minute // 默认缓存过期时间
|
||
)
|
||
|
||
// =============================================================================
|
||
// 错误代码常量 (从Manager.go和其他文件迁移)
|
||
// =============================================================================
|
||
|
||
const (
|
||
// Manager错误代码
|
||
ErrCodeUnsupportedProxyType = 1001
|
||
ErrCodeEmptyConfig = 1002
|
||
|
||
// SOCKS5错误代码
|
||
ErrCodeSOCKS5ParseFailed = 2001
|
||
ErrCodeSOCKS5CreateFailed = 2002
|
||
|
||
// 直连错误代码
|
||
ErrCodeDirectConnFailed = 3001
|
||
ErrCodeSOCKS5ConnTimeout = 3002
|
||
ErrCodeSOCKS5ConnFailed = 3003
|
||
|
||
// HTTP代理错误代码
|
||
ErrCodeHTTPConnFailed = 4001
|
||
ErrCodeHTTPSetWriteTimeout = 4002
|
||
ErrCodeHTTPSendConnectFail = 4003
|
||
ErrCodeHTTPSetReadTimeout = 4004
|
||
ErrCodeHTTPReadRespFailed = 4005
|
||
ErrCodeHTTPProxyAuthFailed = 4006
|
||
|
||
// TLS错误代码
|
||
ErrCodeTLSTCPConnFailed = 5001
|
||
ErrCodeTLSHandshakeFailed = 5002
|
||
)
|
||
|
||
// =============================================================================
|
||
// HTTP协议常量 (从HTTPDialer.go迁移)
|
||
// =============================================================================
|
||
|
||
const (
|
||
// HTTP响应状态码
|
||
HTTPStatusOK = 200
|
||
|
||
// HTTP协议常量
|
||
HTTPVersion = "HTTP/1.1"
|
||
HTTPMethodConnect = "CONNECT"
|
||
|
||
// HTTP头部常量
|
||
HTTPHeaderHost = "Host"
|
||
HTTPHeaderProxyAuth = "Proxy-Authorization"
|
||
HTTPHeaderAuthBasic = "Basic"
|
||
)
|
||
|
||
// =============================================================================
|
||
// 网络协议常量 (从各文件迁移)
|
||
// =============================================================================
|
||
|
||
const (
|
||
// 网络协议
|
||
NetworkTCP = "tcp"
|
||
|
||
// 代理协议前缀
|
||
ProxyProtocolSOCKS5 = "socks5"
|
||
|
||
// 认证分隔符
|
||
AuthSeparator = ":"
|
||
)
|
||
|
||
// =============================================================================
|
||
// 错误消息常量
|
||
// =============================================================================
|
||
|
||
const (
|
||
// Manager错误消息
|
||
ErrMsgUnsupportedProxyType = "不支持的代理类型"
|
||
ErrMsgEmptyConfig = "配置不能为空"
|
||
|
||
// SOCKS5错误消息
|
||
ErrMsgSOCKS5ParseFailed = "SOCKS5代理地址解析失败"
|
||
ErrMsgSOCKS5CreateFailed = "SOCKS5拨号器创建失败"
|
||
ErrMsgSOCKS5ConnTimeout = "SOCKS5连接超时"
|
||
ErrMsgSOCKS5ConnFailed = "SOCKS5连接失败"
|
||
|
||
// 直连错误消息
|
||
ErrMsgDirectConnFailed = "直连失败"
|
||
|
||
// HTTP代理错误消息
|
||
ErrMsgHTTPConnFailed = "连接HTTP代理服务器失败"
|
||
ErrMsgHTTPSetWriteTimeout = "设置写超时失败"
|
||
ErrMsgHTTPSendConnectFail = "发送CONNECT请求失败"
|
||
ErrMsgHTTPSetReadTimeout = "设置读超时失败"
|
||
ErrMsgHTTPReadRespFailed = "读取HTTP响应失败"
|
||
ErrMsgHTTPProxyAuthFailed = "HTTP代理连接失败,状态码: %d"
|
||
|
||
// TLS错误消息
|
||
ErrMsgTLSTCPConnFailed = "建立TCP连接失败"
|
||
ErrMsgTLSHandshakeFailed = "TLS握手失败"
|
||
)
|
||
|
||
// =============================================================================
|
||
// 缓存键前缀常量 (从Manager.go迁移)
|
||
// =============================================================================
|
||
|
||
const (
|
||
// 缓存键前缀
|
||
CacheKeySOCKS5 = "socks5_%s"
|
||
CacheKeyHTTP = "http_%s"
|
||
)
|
||
|
||
// =============================================================================
|
||
// 格式化字符串常量 (从各文件迁移)
|
||
// =============================================================================
|
||
|
||
const (
|
||
// SOCKS5 URL格式
|
||
SOCKS5URLFormat = "socks5://%s"
|
||
SOCKS5URLAuthFormat = "socks5://%s:%s@%s"
|
||
|
||
// HTTP CONNECT请求格式
|
||
HTTPConnectRequestFormat = "CONNECT %s HTTP/1.1\r\nHost: %s\r\n"
|
||
HTTPAuthHeaderFormat = "Proxy-Authorization: Basic %s\r\n"
|
||
HTTPRequestEndFormat = "\r\n"
|
||
) |