You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ngrok无法登录SQL Server,错误码18456状态码1求助

解决ngrok TCP隧道连接本地SQL Server出现18456错误码(状态码1)的问题

针对你通过ngrok TCP隧道连接本地SQL Server时出现错误码18456、状态码1,但本地常规方式可正常登录的情况,可按以下步骤排查解决:

1. 确认身份验证模式及登录方式匹配

  • SQL Server状态码1的错误通常关联身份验证方式不兼容:若你本地用Windows身份验证(MACHINE\SERVERNAME这类格式)登录,通过ngrok公网隧道无法直接使用Windows身份验证(无法跨公网传递域凭据),需切换为SQL Server身份验证账户登录。
  • 检查SQL Server身份验证模式:在SSMS中右键服务器 → 属性 → 安全性,确认已勾选“SQL Server和Windows身份验证模式”,若未开启需重启SQL Server服务生效。

2. 验证SQL Server远程连接配置

  • 启用TCP/IP协议:打开SQL Server配置管理器 → SQL Server网络配置 → 对应实例的协议 → 启用TCP/IP,重启SQL Server服务。
  • 允许远程连接:在SSMS中右键服务器 → 属性 → 连接,勾选“允许远程连接到此服务器”。

3. 确保连接字符串格式正确

通过ngrok连接时,服务器地址需填写ngrok提供的公网地址,端口号(例如0.tcp.ngrok.io,12345),而非本地机器名/实例名。连接工具需选择SQL Server身份验证,输入对应的账户名和密码。

4. 检查登录账户权限

  • 若使用SQL Server身份验证账户:确认该账户已启用、密码正确,且在服务器层面拥有登录权限(在SSMS的“安全性 → 登录名”中查看),同时目标数据库拥有对应的用户映射权限。
  • 若坚持使用Windows身份验证:需配置Kerberos约束委派或使用VPN替代ngrok,但公网场景下不推荐,优先使用SQL Server身份验证。

5. 排查防火墙与安全软件拦截

  • 本地Windows防火墙:添加入站规则,允许SQL Server服务(默认端口1433)和ngrok进程的网络访问权限。
  • 第三方安全软件:暂时关闭杀毒软件、防火墙类工具,测试是否能正常连接,排除拦截可能。

6. 验证ngrok隧道连通性

执行以下PowerShell命令测试ngrok隧道是否正常连通:

Test-NetConnection [ngrok公网地址] -Port [ngrok端口号]

若返回“TcpTestSucceeded : True”则隧道正常,否则需检查ngrok配置或网络环境。

内容的提问来源于stack exchange,提问作者Dorian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:55:23