跳转到正文

命令行参考 ​

honk-core 提供引擎命令行接口,honk-tool 提供诊断工具。

honk-core ​

honk-core 加载配置、初始化控制面,并选择真实 eBPF 后端或 mock 后端。

调用格式 ​

text
honk-core [OPTIONS] [COMMAND]
参数默认值作用
-c, --config PATH/etc/honk/config.dae配置入口文件。使用 --store db 时,仅在数据库为空或 API 导入时读取。文件模式下 mode、proxy 和 delay 也读取此路径。reload 忽略此项,仅向运行中实例发送信号;运行实例重载其启动时使用的路径。
--log-file PATH未设置仅为本次引擎进程覆盖 global.log_file,不重写配置文件。相对路径在 global.data_dir 下解析,控制台日志保持启用。设置后,SIGHUP 会忽略被遮蔽配置值的变化,除非实际生效的目标发生改变。
-b, --bpf-object PATH内嵌目标文件覆盖 ebpf 构建内嵌的目标文件。仅真实后端使用。
--bpf-pin-root PATH/sys/fs/bpfeBPF map 的 pin 根目录。
--disable-timestamp关控制台日志行不再带时间戳。在 systemd 或其他自带时间戳的日志系统下使用;--log-file 或 global.log_file 指定的文件仍带时间戳。
-d, --debug关当 RUST_LOG 未提供有效过滤器时,选择 debug 作为默认控制台过滤器。
--mock-ebpf关使用 MockEbpfBackend,不加载内核 eBPF。若配置请求 global.nfqueue_enable: true,honk 会记录警告并仅在本进程关闭 NFQUEUE 暂存。
--store file|dbfiledb 从 <data-dir>/state/honk.db 中的修订版本加载配置,数据库为空时导入 -c。见配置数据库。
--data-dir PATH/var/lib/honk数据目录,状态数据库位于其下的 state/honk.db,必须与 global.data_dir 相同。供 --store db、config export 与 admin reset 使用。

两个二进制都提供 -h/--help 和 -v/--version。

请使用匹配版本的 core、honk-tool 和 BPF 对象;不兼容对象及 pinned handoff 布局按数据路径 ABI 契约拒绝。

CLI 与 Clash API 共用构建时版本号:发布构建使用 GitHub 标签名。本地 Git 构建使用 git describe --tags --always --match 'v*'(标签,或最近标签加提交距离与哈希)。没有可用 Git 元数据时使用 Cargo 包版本。运行时不依赖 Git。

日志级别优先级 ​

源码注释记载的预期顺序是 --debug → RUST_LOG → global.log_level → info。当前可执行文件会先选择 debug/配置默认值,再调用 EnvFilter::try_from_default_env(),因此有效的 RUST_LOG 目前优先:

当前优先级来源行为
1RUST_LOG有效的 tracing 过滤条件覆盖所有默认值,包括 --debug。
2--debugRUST_LOG 不存在或无效时使用 debug。
3global.log_level未指定 --debug 且没有有效 RUST_LOG 时使用。
4infoglobal.log_level 为空时使用。

log_level 见全局配置参考。

各级别含义固定,因此默认的 info 保持低频:

级别含义
error配置要求的功能在人工处理前无法恢复:激活已提交但降级、进程停止、子系统永久停止,或内部不变量被破坏。
warn降级但仍在运行,进入该状态时记一次:采用回退路径、资源达到上限、节点或组变为不可用、新配置被拒但旧配置继续运行。每个 DNS 查询都会重复的失败(SERVFAIL、singleflight 饱和)最多每 10 秒告警一次。
info启动、停止、激活、运维操作,以及从告警状态恢复。
debug单个连接、请求和 DNS 查询的结果,包括单次拨号与转发失败,以及周期维护结果。native flows 也记录同样的逐 flow 结果。

子命令 ​

命令当前行为持久化 / 运行时影响
reload从已加锁的 /run/honk-core.lock 读取 PID 并发送 SIGHUP。只报告信号成功送达;运行中进程随后记录 applied 或 rejected。mock 实例不持有该锁。
mode <rule|global|direct>加载 --config,将参数字符串赋给 experimental.clash_api.default_mode,并在重写结构化格式文件前完成校验。.dae 文件会被拒绝且保持不变,因为 writer 无法保留 dae 语法、注释或 include;请直接编辑这些源文件,或使用 .toml、.yaml、.json。仅修改文件;不联系运行中的引擎,也不更改 dial mode。接受的字符串不同于正常 dial mode 值 ip、domain、domain+、domain++。
proxy <group> <node>检查组名和节点名各自存在,然后打印请求的选择;不检查节点是否属于该组。不写入任何内容,也不联系运行中的引擎。
config export --out PATH [--without-secrets]把配置数据库的当前修订版本写成一份 .dae 文件;未给 --without-secrets 时补回监听凭据。无论守护进程是否运行,都通过以读写方式打开的 query-only 连接读取数据库。关闭该连接不会执行检查点,也不会删除 honk.db-wal;除 SQLite 可能创建的 -shm 索引外,唯一可能的写入是回滚崩溃遗留的日志。文件写完后才发布。以 0600 权限新建 PATH,拒绝已存在的文件。
admin reset从 --data-dir 下的状态数据库删除密码模式管理员,下次启动时重新开放 setup。任何 honk-core(包括 mock 模式)打开该状态数据库时拒绝执行。
delay <node> [-u|--url HOST:PORT]建立一次原始 TCP 连接,超时五秒,并打印耗时毫秒数。未给 --url 时使用节点服务端地址。不经过代理,不是 HTTP URLTest,也不联系运行中的引擎。

编译路由发布计数器耗尽后需重启;它与普通 SIGHUP 及 DNS 运行时重载分开计数。

使用 --store db 时,proxy 与 delay 读取当前修订版本,mode 拒绝执行。

真实数据面进程在其生命周期内持有该锁。reload 会先确认文件仍被锁定,再信任其中的 PID;kill(2) 成功送达并不表示候选配置通过校验或需重启字段检查。

环境变量 ​

变量作用范围当前行为
RUST_LOG两个二进制Tracing 过滤条件。对 honk-core 采用上述当前有效优先级;honk-tool 在未设置时默认 warn。
HONK_UI_DOWNLOAD_URL启用 clash-api 的 honk-coredashboard ZIP URL 的最高优先级覆盖;已配置的外部 UI 目录需要下载时,它会覆盖 assets.ui.url。
HONK_POOL_DISABLE=1honk-core绕过 Ready 流与裸 TCP 两类池,每次全新拨号。代码也接受不区分大小写的 true;首次使用后缓存该值。
HONK_QUIC_GSO=0|1QUIC 出站强制关闭/开启 UDP GSO。未覆盖时,保守的 1252-byte MTU 保持关闭;显式设置更大的 mtu 时自动开启,并把批量限制为最多 16 个 segment。
HONK_QUIC_BBR=v1|v3QUIC 出站选择 bbr 拥塞控制背后的实现:TUIC congestion_control: bbr、Juicity,以及未设上传速率的 Hysteria2。v3 是 BBRv3。v1 是 quinn 原有的 BBR,不响应丢包;在高带宽时延积路径上,quinn-proto 0.11.16 及以上的接收端可能以 too many gaps in stream buffer 中止其上传。默认 v3;其它值会告警并保持默认。
HONK_MI_COLLECT_SECS启用 mimalloc 的 honk-core每个 owner 工作线程的空闲回收间隔。周期性 rendezvous 仅在其余工作线程均空闲时唤醒持续 park 的 owner,强制回收仍由各 owner 的 park 钩子执行。默认 60;0 同时关闭钩子与 rendezvous;无效值回退为 60。
MIMALLOC_PURGE_DELAY启用 mimalloc 的 honk-coremimalloc 自带的 purge 延迟(毫秒):已释放页面在归还 OS 前保持 committed 的时间。honk 启动时设为 100(mimalloc v3 默认 1000),在连接、探测与 DNS 的频繁分配场景下降低 RSS,批量 relay 的吞吐与 CPU 无可测量变化。环境变量中设置的任何值都优先,包括无法解析的值(此时保持 mimalloc 的 1000)。0 立即归还(RSS 最低、CPU 略增),-1 从不归还。
TOKIO_WORKER_THREADShonk-coreTokio 自带的工作线程数量;honk-core 使用默认多线程运行时,默认数量等于核数。必须是正整数:0 或非数字会使 Tokio 在启动时 panic。每个工作线程持有独立的分配器堆,在多核网关上调低该值可降低 RSS。实验室测量采用 4 核主机、120 条连接和 DNS:16 个工作线程约 85 MiB,8 个约 66 MiB,4 个约 60 MiB。CPU 差异在噪声内。中继路径运行在这些工作线程上,应按流量设置。
HONK_VMLINUX_BTF启用 ebpf 的 honk-core覆盖进程名路由和原生 UDP 接收追踪共用的原始内核 BTF。文件必须匹配运行中的内核。显式指定的文件不可读或无效时,拒绝真实后端启动,不会静默回退到其他文件。TCP 归属证明不读取内核结构,也不依赖它。
DAE_LOCATION_ASSET两个二进制的 Geo 加载最先检查其中的 geoip.dat 与 geosite.dat。

UDP NFQUEUE 没有环境变量开关,默认由 global.nfqueue_enable 开启;设置为 false 可关闭。见全局配置参考与 NFQUEUE 设计。

eBPF 与运行时路径 ​

项控制方式当前不变量
eBPF 目标文件内嵌目标文件或 --bpf-object PATH启用 ebpf 特性时,build.rs 提供由 include_bytes! 内嵌的目标文件;该参数在运行时替换这些字节。对象声明的 ByName pinning 会在 probe/loading 前被拒绝:需使用未 pin 的 map 重新构建,将 pin 路径交由 core 管理。未启用 ebpf 的构建使用 mock 后端。
内核 BTFHONK_VMLINUX_BTF、/sys/kernel/btf/vmlinux 或 /usr/lib/debug/boot/vmlinux未覆盖时读取 /sys/kernel/btf/vmlinux,不可读时再读取 /usr/lib/debug/boot/vmlinux(OpenWrt vmlinux-btf 包)。只接受原始 BTF;若只有 ELF 格式的 debug vmlinux,需先提取其 .BTF 段,再用该变量指向提取结果。所选 BTF 统一提供内核字段偏移、Aya loader 的目标 BTF 和接收追踪的函数签名。BTF 缺失或无效时拒绝启动。内核 argv 捕获不可用时仍可回退到线程 comm。原生 UDP 接收追踪另需内核自带 BTF 与 ftrace,缺少时降级运行;外部文件不能替代它们。
Pin 根目录--bpf-pin-root PATH默认 /sys/fs/bpf,传给真实后端用于 pin map。
Bypass markglobal.so_mark_from_dae拨号、探测、DNS 与下载使用的精确套接字 mark;零值选择默认 0x100。修改需重启,见套接字 mark。
TPROXY mark编译期常量与配置校验TPROXY_MARK = 0x08000000;global.tproxy_mark 必须等于该值。
Geo 资源运行时路径搜索依次检查 DAE_LOCATION_ASSET、global.data_dir、旧根目录 /var/share/honk、工作目录、/usr/local/share/honk、/usr/share/honk、/usr/local/share/dae、/usr/share/dae、/etc/dae;每个候选都必须是普通文件。

honk-tool ​

honk-tool 用于订阅探测、已固定 map 检查、引擎健康检查与离线 Geo 资源搜索,不加载或挂载 eBPF 程序。

构建与部署 ​

普通开发构建:

bash
cargo build --release -p honk-tool

部署到网关时,使用仓库的 Zig 包装器构建静态 musl 目标,并复制单个二进制:

bash
ZIGCC_TARGET=x86_64-linux-musl \
CC_x86_64_unknown_linux_musl=$PWD/ci/zigcc \
CXX_x86_64_unknown_linux_musl=$PWD/ci/zigcxx \
CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER=$PWD/ci/zigcc \
CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C link-self-contained=no" \
BINDGEN_EXTRA_CLANG_ARGS="$(ci/zig-bindgen-env x86_64-linux-musl)" \
cargo build --release -p honk-tool --target x86_64-unknown-linux-musl
scp target/x86_64-unknown-linux-musl/release/honk-tool root@GATEWAY:/tmp/

当前 just build-musl 与 just deploy-vyos 任务只构建和部署 honk-core,不包含 honk-tool。GNU 链接的构建可能无法在纯 musl 网关上执行。

命令族 ​

命令族用途
sub拉取或解析节点,并探测 TCP 地址族、URLTest 与受支持的 UDP 路径。
bpf读取并解码运行中引擎已经 pin 的 map。
diagnose执行只读的引擎、网络设施、map 与 API 健康检查。
geosite列出、检查和反向搜索 geosite.dat。
geoip列出、检查和最长前缀搜索 geoip.dat。

二进制提供 -h/--help 和 -v/--version。每个命令族与操作也有帮助信息。构建版本与 honk-core 一致。

sub ​

text
honk-tool sub <url|file|-> [--target HOST:PORT] [--url TEST_URL]
              [--udp-check HOST[:PORT]]
              [--timeout SECS] [--concurrency N] [--limit N] [--ua UA]
              [--tls-implementation tls|utls] [--utls-imitate PROFILE]
              [--v4-target IP:PORT] [--v6-target [IP]:PORT]
参数默认值含义
<url|file|->必填HTTP(S) 订阅 URL、已有本地订阅文件,或 -。- 从 stdin 读取且只接受一个 HTTP(S) 订阅 URL;不会从 stdin 读取订阅正文。
--target HOST:PORTcp.cloudflare.com:443主机用于地址族探测的 HTTPS 请求 URL(TLS SNI 和 Host 标头);主机和端口用于 QUIC 探测。未指定 --v4-target/--v6-target 地址覆盖时,地址族探测解析此主机并使用此端口。UDP DNS 探测目标由 --udp-check 单独指定。
--udp-check HOST[:PORT]dns.google:53、8.8.8.8、2001:4860:4860::8888UDP DNS 检查目标,默认取自 honk-config 中的引擎列表。可重复指定或用逗号分隔。优先采用首个可解析为 IP 地址或套接字地址的目标,否则仅在节点支持 UDP DNS 探测时解析列表首项。省略端口时使用 53。
--url TEST_URLhttps://www.gstatic.com/generate_204经代理的 URLTest 目标。
--timeout SECS5每项探测的超时。
--concurrency N10并发节点探测任务上限。
--limit N0仅探测前 N 个节点;0 表示全部。
--ua UA未设置远程订阅拉取使用的 User-Agent。
--tls-implementation tls|utlstls探测使用的进程级 TLS ClientHello 实现。
--utls-imitate PROFILEchrome_autoutls 使用的指纹配置方案;当前校验器只接受以 chrome 开头的名称。
--v4-target IP:PORT1.1.1.1:443v4 连通性探测使用的显式 IPv4 地址。
--v6-target [IP]:PORT[2606:4700:4700::1111]:443v6 连通性探测使用的显式 IPv6 地址。

远程订阅与本地文件共享引擎的自动格式识别:

  • 编码或原始分享链接。
  • Clash YAML/JSON、SIP008 和 sing-box JSON。
  • 受支持的 Surge/Surfboard/Loon/Quantumult X 记录。

不支持的节点会被跳过,不打印原始输入。使用 - 可避免把含凭据的订阅源 URL 放入 argv 和进程列表。

对每个节点,命令报告:

  • 服务端地址族。
  • 完整的代理 IPv4/IPv6 交换。
  • 经代理的 URLTest 延迟。
  • 经数据包处理器的 DNS 查询。
  • 经该处理器的真实 QUIC 握手。

VLESS 行使用以下脱敏格式,不包含端点、UUID、REALITY 密钥、SNI 或 URL 查询参数:

text
vless/{plain|tls|reality}/{tcp|ws|grpc|xhttp}[/vision]/tcp={plain|h2mux|mux-cool}/{udp-fallback=auto|native|xudp|uot-v2|udp=disabled}[/padding=true|false][/mux=TCP:UDP:POLICY]
VLESS 输出字段含义
tcp=有效 TCP 路径。
udp-fallback=规范化后的回退值,即使 H2MUX 或 Xray 多路复用已接管目标 UDP 路径。
udp=disabled禁止数据包拨号。
padding=仅在 H2MUX 中出现。
Xray 多路复用 TCP每条 TCP 承载连接的有效逻辑子流并发数;0 表示关闭。
Xray 多路复用 UDPprotocol、shared,或独立 UDP 池中每条承载连接的逻辑子流并发数。
Xray 多路复用 POLICYUDP/443 策略:reject、skip 或 allow。

输出格式示例:

  • vless/tls/tcp/tcp=plain/udp-fallback=native
  • vless/reality/grpc/tcp=h2mux/udp-fallback=auto/padding=true
  • vless/tls/tcp/vision/tcp=plain/udp-fallback=auto/mux=0:8:allow

xhttp 表示 H2 XHTTP 传输;该行不暴露 path、HTTP host、自定义标头或填充内容。模式及支持参数见节点参考。

探测资格状态码网络操作
supported可执行探测。
invalid-uuid、invalid-reality、invalid-config条目仍显示,但不执行网络操作。
unsupported-transport、unsupported-flow、vision-without-tls、vision-non-tcp条目仍显示,但不执行网络操作。

Vision 的 TCP 要求符合条件的直接承载连接;仅 UDP 的 Xray 多路复用仍然有效。VLESS Encryption 可以与 Vision 组合。只有未加密 Vision 还要求裸 TCP 使用 TLS 1.3 或 REALITY。

n/a 表示探测不适用,例如数据包拨号被关闭,或 UDP/443 策略拒绝该目标。本地承载连接容量拒绝是已尝试后的 terminal failure,显示为 FAIL(...) 而不是 n/a,且不影响远程端点健康状态。共享的全局文件描述符预算所能接纳的物理 VLESS 承载连接可能少于各节点 mux 上限之和。

UDP DNS 目标解析、数据包传输建立、发送与接收共用一个 --timeout 预算。解析失败或超时只体现在 DNS 列,TCP、URLTest 和 QUIC 探测继续执行。不支持 UDP 的节点跳过该解析;主机名解析失败时不会替换为另一个目标。

探测列时限
每个非 QUIC 列各自以 --timeout 加一秒为上限。
QUIC额外留两秒等待清理完成。清理耗时不计入延迟样本。

URLTest 与地址族探测的拨号、目标 TLS 和每次交换各有独立的 --timeout。因此,较慢的冷启动承载连接建立可能达到列时限。该列报告 timeout;UDP 策略拒绝目标时报告 n/a。其他列保留各自结果。

UDP DNS 主机名目标使用共享异步解析器,读取 /etc/resolv.conf 中首个数字形式的 nameserver(UDP 端口 53),并在 /etc/hosts 存在时加载它,不执行阻塞的 NSS 查询。此路径不应用 NSS 插件或解析器搜索后缀。解析器不可用时,DNS 列报告 resolve,不会回退到公共解析器;字面量目标不需要解析器。

VLESS 承载连接和会话按运行时与规范化的线协议形态复用。因此,更改规范 UDP/多路复用查询参数可能改变节点身份与连接池复用。

共享物理承载连接容量是全局的。XUDP 的 8 字节 Global ID 按 honk 的运行时、客户端、路径与目的地源身份确定作用域,不是进程级无碰撞 NAT 键。见节点参考与规范的 VLESS 出站设计。

探测失败码为 resolve、timeout、exchange、handler 与 admission。凭据、端点详情、SNI、REALITY 键、URL 查询参数数据和原始错误绝不会输出。

bpf ​

text
honk-tool bpf show <conn-state|redirect-track|domain-routing|routing-handoff>
                   [--ip IP] [--limit N] [--pin-root PATH]
honk-tool bpf stats [--pin-root PATH]
命令 / 参数默认值含义
show <map>必填解码一个受支持的 pin map。
show --ip IP未设置按源或目的 IP 过滤 tuple map;对 domain-routing 按精确 IP 键过滤。
show --limit N50最多打印的条目数;0 表示全部。
show --pin-root PATH/sys/fs/bpf所选 map 的 pin 根目录。
stats --pin-root PATH/sys/fs/bpf统计 map 的 pin 根目录。
show map解码内容
conn-stateTuple、出站、mark、must 标记、状态与最近出现时间戳。
redirect-track回包改写源/目的地址、出站、WAN 方向、接口与最近出现时间戳。
domain-routing从 DNS 或嗅探结果学习的 IP,以及活动 policy 的域名谓词位图索引;已知但全零的条目仍会显示。
routing-handoffTuple 与待处理的 eBPF 到控制面路由结果。

命令通过原始 bpf(2) 读取 pin,不加载程序或挂载 hook;通常需要 root 或合适的 BPF capability。stats 为下列计数器逐行输出规范标签与计数,并打印 CONN_STATE_OCCUPANCY 插入/删除水位计及非零的每出站包/字节计数。BPF_STATS_MAP 必须有九个槽位:工具/引擎版本不匹配时以 unexpected map layout for BPF_STATS_MAP: expected max_entries=9 found 7 失败(旧版工具则相反),不错误标注计数器。请将工具与引擎/对象一起升级。

Key规范标签计数对象
0udp_conn_overflow不存在已有 tuple 时的 UDP conn-state 插入失败。
1tcp_conn_overflowTCP conn-state 插入失败。
2redirect_track_insert_failureRedirect-track 发布失败:map 插入失败或准备 scratch 不可用。
3routing_handoff_insert_failureRouting-handoff 发布失败:map 插入失败或准备 scratch 不可用。
4socket_identity_capture_failure套接字进程身份捕获或存储失败。
5tcp_child_proof_storage_failure已接受 TCP child 的归属证明存储失败。
6tcp_publisher_claim_failureTCP SYN 发布排他声明插入失败,不含普通的同 tuple 竞争(EEXIST)。
7new_flow_rate_limited被单源、每 CPU 新流限制丢弃的 LAN 流尝试。
8udp_reverse_learning_suspendedconn 压力下,在 conn-state 查询未命中后被跳过的反向 UDP 学习尝试。

routing-handoff 在读取前检查handoff ABI。

stats 要求 /sys/devices/system/cpu/possible 可读且为内核的真实导出文件。每 CPU 缓冲区按该掩码中的 CPU 数量分配,不采用 present 或 online CPU 数量。CONN_STATE_OCCUPANCY 和 OUTBOUND_STATS 必须为每 CPU 数组,键均为 4 字节,值分别为 8 字节和 32 字节。CPU 列表不可读、格式无效或 map 元数据不兼容时,命令在每 CPU 查找前报错,不回退到猜测的 CPU 数量。

diagnose ​

text
honk-tool diagnose [--api URL] [--secret TOKEN] [--pin-root PATH] [--tproxy-mark VALUE]
参数默认值含义
--api URLhttp://127.0.0.1:9090明文 HTTP Clash API 基础 URL。空值跳过 API 检查;内置客户端不支持 HTTPS。
--secret TOKENHONK_API_SECRET(若已设置)Clash API 的 Bearer 令牌。命令行参数优先于环境变量。
--pin-root PATH/sys/fs/bpf检查 pin map 是否存在及读取统计时使用的根目录。
--tproxy-mark VALUE134217728(0x08000000)daens 策略规则中预期的 fwmark。

该命令只读,检查以下项目:

  • 名为 honk-core、honk 或 dae 的引擎进程;
  • /var/run/netns/daens 和 /sys/class/net/dae0;
  • daens 内的 fwmark 规则;
  • 必需的已固定映射,以及可读取的占用/溢出统计;
  • <api>/version 的成功 HTTP 响应。
结果输出
API 返回 2xx[ok],后跟响应正文。
API 返回非 2xx[FAIL],后跟状态文本。
全部检查通过标准输出以 diagnose: all checks passed 结束,退出状态为 0。
存在失败检查标准输出以 diagnose: N issue(s) found 结束,退出状态为 1,错误信息包含问题数量。

统计检查与 bpf stats 对 possible CPU 文件和 pin map 布局的要求相同。准备失败时打印 [FAIL] map stats read,计入问题数量,并以非零状态退出。

geosite 与 geoip ​

text
honk-tool geosite [--file PATH] list [FILTER]
honk-tool geosite [--file PATH] show <category> [--attr ATTR]
honk-tool geosite [--file PATH] find <domain>
honk-tool geoip [--file PATH] list [FILTER]
honk-tool geoip [--file PATH] show <code>
honk-tool geoip [--file PATH] lookup <ip>
命令行为
geosite list [FILTER]列出类目 code 与条目数;可选过滤条件为不区分大小写的子串。
geosite show <category> [--attr ATTR]打印一个类目的条目。--attr 不区分大小写地保留含该属性键的条目,与路由的 category@attr 谓词一致。
geosite find <domain>按类目打印匹配该域名的 full、suffix、keyword 与 regex 条目。
geoip list [FILTER]列出 code 与 CIDR 数;可选过滤条件为不区分大小写的子串。
geoip show <code>打印一个 code 中的全部 CIDR。
geoip lookup <ip>返回最长匹配前缀上并列的全部 code/CIDR。
--file PATH对应 .dat 文件的命令族全局覆盖路径。

未指定 --file 时,工具按以下顺序选择第一个已存在的普通文件:

  1. $DAE_LOCATION_ASSET/<name>.dat
  2. /var/lib/honk/<name>.dat
  3. /var/share/honk/<name>.dat(旧根目录)
  4. ./<name>.dat
  5. /usr/local/share/honk/<name>.dat
  6. /usr/share/honk/<name>.dat
  7. /usr/local/share/dae/<name>.dat
  8. /usr/share/dae/<name>.dat
  9. /etc/dae/<name>.dat

与 honk-core 不同,该工具不加载配置,因此无法获知自定义 global.data_dir。输出每行一条记录。下游管道关闭不会引发 panic。

相关文档 ​


来源:honk 上游文档,采用 GPL-3.0-only 许可证。