Skip to content

v3.3.3

Choose a tag to compare

@larsonzh larsonzh released this 03 Sep 05:28
· 6 commits to master since this release

whois v3.3.3

本次版本在 v3.3.2 之上完成项目许可证由 GPL-3.0-or-later 迁移至 MIT(WP-12)、Windows/跨平台可移植性收口,以及完整的代理访问 RIR 站点能力(WP-13A–WP-13D:HTTP/HTTPS CONNECT 与 SOCKS4/4a/5/5h,含静态 OpenSSL 3.5.8 的 HTTPS proxy TLS);官方远程静态构建与 release 制品默认启用 TLS,--help 直接报告当前 HTTPS proxy TLS backend,终端用户无需了解内部构建开关。默认直连、stdout/stderr、RIR referral、DNS-health、batch strategy 与 retry metrics 契约保持不变。
This release builds on v3.3.2 with the project license migration from GPL-3.0-or-later to MIT (WP-12), Windows/cross-platform portability closure, and the complete proxy-access capability for RIR endpoints (WP-13A–WP-13D: HTTP/HTTPS CONNECT and SOCKS4/4a/5/5h including static OpenSSL 3.5.8 HTTPS-proxy TLS). Official remote static builds and release artifacts now default to TLS-enabled, and --help reports the current HTTPS proxy TLS backend so end users never touch internal build switches. Default direct connect, stdout/stderr, RIR referral, DNS-health, batch strategy, and retry-metrics contracts remain unchanged.

中文概要:

  • 许可证迁移(WP-12):项目许可证由 GPL-3.0-or-later 改为 MIT,同步根 LICENSE、README 许可证说明及 23 个源/头文件的 SPDX/License 标识;第三方代码、数据、工具输出与依赖继续遵守各自许可证,不因根 LICENSE 变更自动重许可。
  • 代理访问 RIR(WP-13):新增 HTTP/HTTPS CONNECT 与 SOCKS4/4a/5/5h 代理协议;--proxy-family 仅控制代理端点,凭据来自专用环境变量或代理 URL userinfo,代理端与目标端 DNS、失败与指标完全分离。HTTPS 代理以静态 OpenSSL 3.5.8 建立经证书/主机名验证的 TLS(TLS 1.2 下限、CONNECT 前 TLS、peer/SNI/hostname/IP 验证),信任源为嵌入式 Mozilla CA 2026-08-13(121 张证书,SHA-256 f66dff1bdf8f96060b8177976f8b7d9254bc89bc4db933d769f7384d28480bc9,MPL-2.0);SSL_CERT_FILE 可显式覆盖且读取失败 fail-close;socks5h/socks4a 由代理远程解析,socks5/socks4 保留本地解析。socks5 会在单个地址返回 general-failure 或 address-type-unsupported 时继续下一个本地候选;socks4 与严格 IPv6-only 目标模式组合会在查询前报错,允许 IPv4 回退的偏好模式仍可用;远程解析模式因目标 IP 不可观测而显示 unknown。A/B 阶段已并入共享 deadline、partial I/O 处理与 per-hop NO_PROXY 绕过;socks5h/socks4a 不调用本地目标 DNS。
  • Windows/跨平台可移植性:集中 wc_strings.h 大小写比较映射,修正 ssize_t、平台头、sleep 与 64 位毫秒计时的条件编译,并补齐 nanosleep 的 POSIX feature-test macro、显式零初始化 retry metrics 的 timespec 起点。
  • 产品交付收口:官方远程静态构建与 full/one-click release 默认或显式启用 WHOIS_TLS=1,普通本地 make 与显式 WHOIS_TLS=0 保留无 OpenSSL 兼容路径;中英文 USAGE 提供公网 CA 与私有 SSL_CERT_FILE 的 HTTPS 代理示例。受静态 OpenSSL 与嵌入 CA 影响,官方制品体积显著增大(各架构约 2–6 MiB),这是单文件零运行时依赖策略的固有代价。
  • 验证(2026-09-03):WP-13B-1/2/3、WP-13C、WP-13D 的 Vx A/B 均 8/8 PASS;最终 Strict lto-auto 九架构构建/9 hash/Golden/referral、Batch 4/4、Selftest 5/5、12×6 redirect 72/72 与 CIDR body 4/4+draft 9/9 全 PASS;最终默认 TLS 同步轮无告警(out/artifacts/20260903-045122,360s),九制品 SHA-256 独立复算与清单一致、双 release 目录清单逐字一致、Windows 两目标均为 full-static。

已知限制 / Known limitation:

  • 官方制品因静态链接 OpenSSL 3.5.8 并嵌入 121 张 CA 证书而体积增大(x86_64 约 2.1 MiB、win64 约 6.4 MiB 等);HTTPS 代理依赖嵌入式 CA,除非设置 SSL_CERT_FILE,否则需要信任源内所含的根证书。
  • 响应读取仍以 --buffer-size(默认 512 KiB)为实际接收上限,超限时静默截断且不标记截断状态(继承自 v3.3.2,本版未改变行为)。
  • Official binaries grow (roughly 2.1 MiB for x86_64 and 6.4 MiB for win64, etc.) because OpenSSL 3.5.8 is statically linked and 121 CA certificates are embedded; HTTPS proxies trust the embedded CA unless SSL_CERT_FILE is set.
  • The actual receive cap remains --buffer-size (512 KiB by default); when a response exceeds it, the current release silently truncates without a truncation marker (inherited from v3.3.2; behavior is unchanged in this release).

English summary:

  • License migration (WP-12): changes the project license from GPL-3.0-or-later to MIT and synchronizes the root LICENSE, README license notice, and SPDX/License identifiers across 23 source/header files; third-party code, data, tool output, and dependencies remain under their respective licenses and are not automatically relicensed.
  • Proxy access to RIR (WP-13): adds HTTP/HTTPS CONNECT and SOCKS4/4a/5/5h proxy schemes. --proxy-family selects only the proxy endpoint, credentials come from dedicated environment variables or proxy-URL userinfo, and proxy-side DNS/failures/metrics are fully separated from the target. HTTPS proxies use static OpenSSL 3.5.8 with verified TLS (TLS 1.2 minimum, TLS before CONNECT, peer/SNI/hostname/IP verification) trusting the embedded Mozilla CA of 2026-08-13 (121 certificates, SHA-256 f66dff1bdf8f96060b8177976f8b7d9254bc89bc4db933d769f7384d28480bc9, MPL-2.0); SSL_CERT_FILE overrides explicitly and fails closed on read errors. socks5h/socks4a resolve remotely while socks5/socks4 keep local resolution. socks5 advances to the next local candidate after general-failure or address-type-unsupported for one address; socks4 fails before lookup with a strict IPv6-only target mode while preference modes retaining IPv4 fallback remain valid; remote-resolution modes show unknown because the selected target IP is unobservable. The A/B stages also deliver a shared deadline, partial-I/O handling, per-hop NO_PROXY bypass, and no local target DNS for socks5h/socks4a.
  • Windows/cross-platform portability: centralizes case-insensitive comparison in wc_strings.h and fixes conditional handling for ssize_t, platform headers, sleeps, and 64-bit millisecond timing, plus the POSIX feature-test macro required by nanosleep and explicit zero-initialization of the retry-metrics timespec origin.
  • Product delivery closure: official remote statics and full/one-click releases default to or explicitly set WHOIS_TLS=1, while normal local make and explicit WHOIS_TLS=0 retain an OpenSSL-free compatibility path; the bilingual usage guides provide public-CA and private SSL_CERT_FILE HTTPS-proxy examples. Official binaries grow to roughly 2–6 MiB each because of static OpenSSL and the embedded CA — the inherent cost of the single-file zero-runtime-dependency policy.
  • Verification (2026-09-03): Vx A/B pass 8/8 for WP-13B-1/2/3, WP-13C, and WP-13D; the final Strict lto-auto nine-architecture build/9-hash/Golden/referral, Batch 4/4, Selftest 5/5, 12x6 redirect 72/72, and CIDR body 4/4 plus draft 9/9 all pass. The final default-TLS synchronized round is warning-free (out/artifacts/20260903-045122, 360s), all nine artifact SHA-256 hashes recompute to the manifest, both release directories match byte-for-byte, and both Windows targets are full-static.

下载 / Downloads