关于mssql/sqlserver不能远程访问却能本地访问的解决办法
电脑系统环境:Windows Server2008 R2 Enterprise
mssql/sqlserver版本:Microsoft SQL Server 2008 R2(SP1) – 10.50.2500.0 (X64)
使用环境:C#winform软件局域网内连接sqlserver【扩展:其他语言如果远程访问出问题应该也是能这样解决的,重要的是排查思路和解决办法】
网上所有关于本地能访问远程不能访问数据库的解决办法都试过了,主要解决办法都是说设置环境和防火墙的,大同小异。
我的解决思路:首先关闭防火墙,然后试试软件是否能正常访问到远程的mssql数据库;如果能访问到,则说明防火墙出了问题;否则是mssql出了问题。
【关闭防火墙后,发现软件能正常取到数据,此时证实了是数据库服务器的防火墙设置不对了!!】
按照网上的方法设置并开启防火墙后,依然无法远程访问,winform程序报错如下图:
怎么设置1433端口都解决不了这个报错!! 然后,无意间发现windows防火墙有自带记录日志功能,然后开启其日志,查看日志,分析记录的日志:日志默认目录:%systemroot%\system32\LogFiles\Firewall2017-10-10 17:02:25 ALLOW TCP 192.168.1.106192.168.1.139 50555 1433 0 - 0 0 0 - - - RECEIVE2017-10-10 17:02:27 DROP UDP 192.168.1.106192.168.1.139 56109 1434 40 - - - - - - - RECEIVE【分析日志得出1433端口TCP设置成功了,也允许访问了!但是还有个1434端口UDP被拦截下来了,猜测是不是因为1434端口UDP影响了远程连接mssql数据库?!?】[注:开启记录日志的方法:开始—>控制面板—>防火墙—>高级设置—>Windows 防火墙属性—>日志的自定义(可选择不同的域配置文件)—>记录被丢弃的数据包—>是—>记录成功的连接—>是—>确定—>然后看其日志] 经过上面的分析,测试入站规则加入1434端口UDP!!设置方法:入站规则—>新建规则—>端口—>UDP(特定本地端口) —>1434—>允许连接—>勾选所有—>命名(随便) 设置完成后,再次打开软件,此时软件正常访问到远程mssql数据库了。 *******************************************************************************扩展延伸:如果缺少入站规则1433端口TCP则会报错如下图:
如何给防火墙添加例外程序:
开始—>控制面板—>防火墙—>允许程序或功能通过Windows 防火墙—>允许运行另一程序(R)…—>浏览—>添加—>完成(即:自动设置其入站规则,但对于mssql来说,这样设置还是无法远程访问的!!)
搜索了下论坛,没有相关文章,好久没发帖子了就发一篇{:1_1:},不知道放的位置对不对,希望对大家有用!附件是本文内容的word版。
网络霸气家族 发表于 2017-10-15 12:14
你这样,服务器要宕机的节奏
感谢提醒,这一般用于局域网应用吧(安全性应该没什么问题),对于web的应用肯定不是这样做的(不然真的宕机){:1_893:} 欢迎讨论。 网络霸气家族 发表于 2017-10-16 10:53
其实我又何尝不是在冒险呢
赶快删了这个图,真的,信息我能对出来的。{:1_896:}这也敢发,快改下密码吧,楼上的还是注意下保护隐私啊。 这些数据库我还没试过这种方法远程连接,谢谢楼主,学习了! 以前经常用到,然后去找,找到了又忘了。感谢楼主总结 端口 设置进站规则 一般图省事都是TCP/UDP一并同时设置开关的 一般都是 端口设置有问题 zhete 发表于 2017-10-13 11:41
一般都是 端口设置有问题
是的,一般大部分情况都是因为端口原因~ 基本上连接不上都是端口设置问题,谢谢分享 这些数据库我还没试过这种方法远程连接,谢谢楼主 你这样,服务器要宕机的节奏
页:
[1]
2