Ubuntu系统使用DataGrip连接远程MSSQL服务器出现连接超时错误求助
解决Ubuntu上DataGrip连接远程MSSQL超时问题
刚看到你在Ubuntu上用DataGrip连接远程MSSQL时碰到了TCP/IP连接超时的错误,我之前帮同事排查过几乎一模一样的情况,给你列几个一步步排查的关键点,应该能定位到问题:
先确认网络基础连通性
别先急着查数据库配置,先在Ubuntu终端里用工具验证网络能不能到目标主机:- 先ping主机:
ping xx.xxx.xx.xx,如果ping不通,说明你的Ubuntu机器和目标主机之间的网络链路有问题,先找运维或者云服务商确认主机是否在线、是否在同一个网络(比如VPC),或者公网IP是否可访问。 - 再测试端口连通性:用
nc -zv xx.xxx.xx.xx 1443(没装nc的话先装sudo apt install netcat)。如果显示“Connection refused”或者超时,那要么是端口配置错了,要么是防火墙把这个端口拦了。
- 先ping主机:
核对SQL Server的端口配置
远程MSSQL默认端口是1433,你这里用的是1443,得确认这个端口是真的配置给SQL Server了:
让数据库管理员在SQL Server所在机器打开SQL Server配置管理器,依次找到「SQL Server网络配置」→「对应实例的协议」→「TCP/IP」,右键打开属性:- 确保TCP/IP协议是启用状态;
- 切换到「IP地址」标签,拉到最下面的「IPAll」部分,确认「TCP端口」是1443,没有填错。
检查防火墙(两个方向都要查)
这是最容易踩坑的点,两个地方的防火墙都要确认:- 目标主机的防火墙:不管是Windows自带防火墙,还是云服务商的安全组(比如AWS Security Group、阿里云安全组),都要确保1443端口是对外开放的,并且允许你的Ubuntu机器的IP地址访问;
- 本地Ubuntu的防火墙:如果开了ufw,用
sudo ufw status查看规则,要是有拦截 outbound 1443端口的规则,就添加一条允许:sudo ufw allow out to xx.xxx.xx.xx port 1443。
再核对DataGrip的连接参数
有时候只是手滑输错了参数:- 确认主机地址完全正确,没有多打少打字符;
- 端口确实是1443,不是默认的1433;
- 认证方式选对:如果是SQL Server认证,用户名和密码有没有输错;如果是Windows认证,远程连接可能需要额外配置Kerberos,建议优先用SQL Server认证测试。
另外可以多等一会儿再看测试结果,偶尔网络延迟也会导致超时,但如果多次测试都失败,还是回到前面的网络排查环节。
额外检查:SQL Server是否允许远程连接
让管理员在SQL Server里执行以下SQL语句,确认远程连接是开启的:EXEC sp_configure 'remote access'; GO RECONFIGURE; GO如果查询结果里的
value_in_use是0,就执行sp_configure 'remote access', 1;再重新配置,然后重启SQL Server服务生效。
最后补充个小提醒:如果目标主机是云服务器,一定要优先检查云平台的安全组规则——很多时候主机防火墙开了,但安全组没放行端口,照样连不上。
内容的提问来源于stack exchange,提问作者ashok poudel
相关产品推荐
相关产品推荐

