# netutils-cli **Repository Path**: dreamszhu/netutils-cli ## Basic Information - **Project Name**: netutils-cli - **Description**: 🔧 A cross-platform network diagnostic CLI tool — interfaces, routing, egress detection, ping, DNS, traceroute, port scan, connectivity check, and one-click diagnostics. Supports i18n (Chinese/English), JSON output, and system proxy detection. - **Primary Language**: Rust - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-26 - **Last Updated**: 2026-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # netutils — 本地网络检测工具集 [English](README_EN.md) | 中文 --- 一个用 Rust 编写的跨平台命令行网络诊断工具。涵盖网络接口、路由、出口检测、代理检测、Ping、DNS、Traceroute、端口扫描、连通性测试和一键诊断。 ### 功能 | 子命令 | 说明 | 示例 | |--------|------|------| | `(无)` | 显示全部网络信息 | `netutils` | | `iface` | 网络接口列表 | `netutils iface` | | `egress` | 流量出口 + 选路逻辑 | `netutils egress` | | `route` | 路由表 | `netutils route` | | `proxy` | 代理设置 | `netutils proxy` | | `ping` | Ping 主机 (ICMP/TCP) | `netutils ping baidu.com --count 4` | | `dns` | DNS 查询 | `netutils dns baidu.com --type mx` | | `trace` | 路由追踪 | `netutils trace baidu.com` | | `scan` | 端口扫描 | `netutils scan 192.168.1.1 80,443` | | `check` | 连通性测试 | `netutils check https://baidu.com` | | `diag` | 一键诊断 | `netutils diag` | ### 快速开始 ```bash # 编译 cargo build --release # 运行 ./target/release/netutils # 查看帮助 ./target/release/netutils --help ``` ### 一键诊断 ```bash $ netutils diag 🔍 网络诊断报告 2026-06-25 14:30:00 ✅ [出口] 网络连接正常 (出口: 以太网 192.168.50.4) ✅ [国内 DNS] DNS 解析正常 (baidu.com → 111.63.65.247, 45ms) ✅ [国际 DNS] DNS 解析正常 (google.com → 142.250.69.174, 180ms) ✅ [网关] 默认网关可达 (192.168.50.1, 0.5ms) ⚠️ [代理] 系统代理已启用 (127.0.0.1:7897) ✅ [国内连通] HTTPS 连通正常 (baidu.com → 200, 54ms) [经代理] ✅ [国际连通] HTTPS 连通正常 (google.com → 200, 1096ms) [经代理] ❌ [IPv6] IPv6 不可用 诊断耗时: 8.2s ``` ### 核心特性 - **国际化**: 自动检测系统语言(中英文),`--lang zh|en` 可覆盖 - **JSON 输出**: `--json` 全局参数,所有子命令支持,便于脚本处理 - **颜色高亮**: 出口绿色、错误红色、虚拟网卡黄色 - **命令别名**: `i`/`e`/`r`/`p`/`pg`/`d`/`t`/`s`/`c`/`dx` - **跨平台**: Windows (PowerShell)、Linux (`ip`)、macOS (`ifconfig`) - **系统代理感知**: HTTP 检测自动走系统代理,标注 `[经代理]`/`[直连]` - **出口检测**: UDP 探测识别实际流量出口 + 解释选路逻辑 - **端口范围语法**: `netutils scan host 80-100,443,8080-8090` ### 系统选路原理 Windows 选择出口接口时按以下顺序决策: 1. **最长前缀匹配**:目标 IP 先匹配最精确的路由条目 2. **有效跃点比较**:`有效跃点 = RouteMetric + InterfaceMetric`,越低越优先 3. **接口优先级**:跃点相同时按接口绑定顺序决定 TUN/VPN 工具(如 Mihomo、Clash)通常在启动时将自己的 `InterfaceMetric` 设为 0,确保流量优先走虚拟网卡。 ### 许可 MIT