完成auth token配置及所有步骤后Ngrok在blackeye中无法运行如何解决
Blackeye工具中Ngrok无法正常运行排查方案
异常运行状态参考:
按以下顺序逐步排查,绝大多数配置完成后无法启动的问题都能解决:
- 先校验Ngrok配置有效性
执行命令ngrok config check,确认返回配置合法无报错。重点核对auth token是否写入了Ngrok默认读取的配置路径:Linux/macOS对应路径为~/.config/ngrok/ngrok.yml,Windows对应路径为C:\Users\当前用户名\.ngrok2\ngrok.yml,不要把token写到blackeye目录下的自定义配置文件里,默认启动逻辑不会读取该路径下的配置。
同时执行ngrok version确认版本,Blackeye多数旧版本脚本仅适配Ngrok v2参数,如果你装的是v3版本,要么降级到v2稳定版,要么手动修改Blackeye目录下的Ngrok启动脚本,替换不兼容的启动参数。 - 排查端口占用与权限问题
Blackeye默认使用本地80端口承载钓鱼页面,先执行命令检查端口占用:Linux/macOS执行sudo lsof -i :80,Windows执行netstat -ano | findstr :80,如果有其他进程占用80端口,先结束对应进程再启动。
启动Blackeye和Ngrok时必须使用最高权限:Linux/macOS启动命令前加sudo,Windows右键以管理员身份运行终端,否则系统会禁止Ngrok绑定80/443这类特权端口,直接触发启动失败。 - 排查Ngrok连通性问题
免费版Ngrok默认连美国节点,国内网络直连经常超时断连,启动Ngrok时可以加-region ap参数指定亚太节点,大幅提升连通成功率。如果还是连不上,不要反复重试,免费节点被墙的情况下换其他内网穿透方案即可。
启动前先杀干净所有残留的Ngrok进程:Linux/macOS执行pkill ngrok,Windows在任务管理器结束所有ngrok.exe进程,免费版Ngrok同一账号仅允许同时存在1个活跃隧道,残留进程会占用会话导致新隧道被官方强制下线。 - 修复Blackeye脚本本身的路径问题
多数公开版本的Blackeye写死了Ngrok的调用路径为脚本当前目录下的./ngrok,如果你已经把Ngrok加到系统PATH里,会直接报找不到程序的错误。两种修复方式二选一:要么把下载好的Ngrok二进制文件放到Blackeye根目录,执行chmod +x ngrok给执行权限;要么打开Blackeye目录下的ngrok.sh启动脚本,把里面写死的./ngrok调用改成全局命令ngrok。
排查时可以先手动在本地访问127.0.0.1:80,如果能正常打开钓鱼页面,说明Blackeye本身运行正常,问题100%出在Ngrok隧道侧,和Blackeye配置无关。
内容的提问来源于stack exchange,提问作者Volston
相关产品推荐
相关产品推荐



