Ater.Free.EscapeHole 0.2.3

dotnet tool install --global Ater.Free.EscapeHole --version 0.2.3
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Ater.Free.EscapeHole --version 0.2.3
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Ater.Free.EscapeHole&version=0.2.3
                    
nuke :add-package Ater.Free.EscapeHole --version 0.2.3
                    

Ater.Free.EscapeHole

NuGet

Ater.Free.EscapeHole 是一个基于 Mihomo (Clash Meta) 的 dotnet tool 命令行代理工具。它支持订阅管理、节点测速、交互式节点选择、本地代理启动/停止、自定义域名规则,以及 Windows/Linux 下的用户级全局代理环境变量配置。

当前工具内置 Windows x64 与 Linux x64 运行时资源;Linux 端会使用内置的 winnet.gz 压缩包部署 Mihomo 兼容运行时。

运行要求

  • 操作系统:Windows 10/11 或 Linux x64
  • .NET 10 Runtime

escape connect 的本地代理模式支持 Windows 与 Linux。使用 --global 时:

  • Windows:设置 Windows 当前用户系统代理,并设置用户环境变量 http_proxyhttps_proxyno_proxy
  • Linux:写入用户环境变量配置 ~/.config/environment.d/escape-proxy.conf,并尽量同步到 systemd user environment。
  • 停止代理、发现代理进程异常退出,或启动失败回滚时,会恢复/清理这些代理设置。

安装

dotnet tool install --global Ater.Free.EscapeHole

安装后,全局命令为 escape

快速开始

添加 Clash/Base64 订阅:

escape sub add mysub https://example.com/subscribe

也可以添加一个带用户名和密码的 HTTPS Proxy 单节点订阅(Password 模式,不查询权益或用量):

escape sub add freeway https://proxy-user:proxy-password@proxy.example.com:8080

Authorization 模式使用 token URI;工具会在连接前验证权益并在 refresh 时刷新用量:

escape sub add freeway https://proxy.example.com:8080/{base64(Guid::email)}

刷新订阅并查看节点:

escape sub refresh mysub
escape node list mysub

连接代理:

escape connect mysub

工具会启动临时 Mihomo 实例并发测速;单个节点 5 秒内无响应会被标记为不可达。存在多个可达节点时,会列出延迟并让你选择。

使用全局代理模式:

escape connect mysub --global

查看和停止当前代理:

escape status
escape stop

可以直接运行 escape connect 连接上次使用的订阅和节点;如果没有历史连接,工具会自动从已保存订阅中寻找可达节点。

命令参考

订阅命令

escape sub add <名称> <URL>

添加一个订阅。

  • <名称>:订阅名称,用于后续管理。
  • <URL>:Clash/Base64 订阅链接,或 https://用户名:密码@服务器:端口 格式的 HTTPS Proxy 单节点。

HTTPS Proxy 的凭据会保存在本地配置中;sub list 会隐藏密码。

escape sub refresh <名称>

重新下载并解析订阅,更新节点列表。

escape sub list

列出所有订阅,包括名称、URL、节点数量和最后更新时间。

escape sub delete <名称>

删除指定订阅。如果删除的是当前活动订阅,会自动切换到剩余订阅或清空当前选择。

节点命令

escape node list <名称>

列出指定订阅中的所有缓存节点及其最近一次测速状态。

连接命令

escape connect [名称] [--global]

测速、选择并启动代理。

  • [名称]:可选。指定订阅名称;不指定时优先恢复上次连接。
  • --global:可选。启用用户级全局代理设置。

执行流程:

  1. 启动临时 Mihomo 实例。
  2. 以更高并发测试节点延迟;单节点超时为 5 秒。
  3. 自动选择唯一可达节点,或在多个可达节点中交互选择。
  4. 启动正式代理并保存 CLI 会话。
  5. 如果使用 --global,同步设置系统/用户代理环境。
escape status

显示当前 CLI 管理的代理会话,包括 PID、订阅、节点、端口、模式和启动时间。若进程已异常退出,会自动清理会话和全局代理设置。

escape stop

停止当前 CLI 管理的 Mihomo 代理进程。

  • 本地模式只停止代理并清理会话。
  • --global 模式会恢复 Windows 系统代理设置,并恢复/清理 http_proxyhttps_proxyno_proxy
  • 如果代理进程已经退出,也会执行同样的会话和代理设置清理。

规则命令

自定义规则会写入 Mihomo 配置并优先于订阅规则。默认添加代理规则;加 --no 或兼容写法 -no 时添加直连规则。

escape rules add <域名> [--no]

添加域名规则。

escape rules add google.com
escape rules add intranet.example.com --no
escape rules remove <域名> [--no]

删除域名规则。

escape rules list

列出所有自定义代理和直连域名规则。

配置命令

escape config proxy_port <端口号>

配置本地代理端口,默认值为 7890

所有连接统一使用 Mihomo 规则分流:自定义 rules 优先,其次局域网和国内域名/IP 直连,然后继续匹配订阅自带规则,最后使用订阅的兜底策略。智能分流依赖工具内置的 geosite.datgeoip.dat

escape config loopback <enable|disable>

开启或清除 Windows 回环白名单。

  • enable:为当前用户已安装的 Windows App 包添加 loopback exemption,便于 UWP/商店应用访问 127.0.0.1 本地代理。
  • disable:清除 Windows loopback exemption 列表。
  • Linux 不支持该功能,执行时会提示仅支持 Windows。

English: escape config loopback enable enables Windows loopback exemptions for installed app packages; escape config loopback disable clears the exemption list.

数据文件

配置和会话数据存储在:

%LOCALAPPDATA%\EscapeService\

Linux 通常对应:

~/.local/share/EscapeService/
文件 说明
config.json 订阅、端口、规则和最近连接设置
escape-session.json CLI 活动代理会话记录
winnet\ Winnet/Mihomo 可执行文件、GeoIP 数据和配置

--global 在 Linux 上还会写入:

~/.config/environment.d/escape-proxy.conf

排查问题

查看帮助:

escape --help
escape connect --help

如果命令异常,错误信息会直接打印到终端。代理启动失败时,工具会尽量停止已启动的进程并清理全局代理设置。

许可证

MIT

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.2.3 0 7/21/2026
0.2.2 99 7/6/2026
0.2.1 116 6/16/2026
0.2.0 124 5/27/2026
0.1.4 112 5/15/2026
0.1.2 113 5/11/2026
0.1.1 114 5/9/2026
0.1.0 111 5/9/2026

1. Support credentialed HTTPS Proxy URLs through sub add.
2. Remove the connect-http command.