SQLServer不监听TCP1433端口

现象:SQL Server不监听TCP 1433端口,连UDP 1434端口也没有监听。

解决:

1、分析日志发现如下一条:

事件类型:        信息
事件来源:        MSSQLSERVER/MSDE
事件种类:        无
事件 ID:        1
日期:                2006-2-27
事件:                12:17:54
用户:                N/A
计算机:        XUJUN-7AHAD9QR9
描述:
您运行的 Microsoft SQL Server 2000 版本或 Microsoft SQL Server 2000 Desktop Engine (也称为 MSDE) 和 Microsoft Windows Server 2003 家族使用时存在已知的 安全弱点。为了减少计算机被某些病毒的攻击,Microsoft SQL Server 2000,MSDE 或 两者的 TCP/IP 和 UDP 网络端口被禁用。要启用这些端口,您必须从 http://www.microsoft.com/sql/downloads/default.asp 或  http://www.microsoft.com/china/sql/downloads/default.asp 安装一个修补程序, 或 Microsoft SQL Server 2000 或 MSDE 的最新服务包。

很明显,由于SQL SERVER存在安全漏洞,服务器自动把它的1433和1434端口屏蔽掉了。  查看它的版本,果然,装完SQL2000后没有打任何SP补丁。打上SP4,重启。发现服务器现在监听UDP1434,但依旧不监听TCP1433端口。

2、打开企业管理器,查看SQL Server服务器属性,打开“网络实用工具”面板。查看已启用的协议,发现已启用命名管道和TCP/IP,打开TCP/IP属性,上面默认端口为1433,隐藏服务器选项为空。

这样配置没有任何问题。


3、在网上查资料,说是启用一下Windows Socket代理。 ip设置为服务器IP,端口设置为1433,重启服务器,无效。

4、在注册表里寻求解决之道。

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServerSuperSocketNetLib]
"ProtocolList"= np tcp  (原来是用十六进制代码写)
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServerSuperSocketNetLibTcp]
"TcpHideFlag"=dword:00000000
"TcpPort"="1433"
"TcpDynamicPorts"=""
原来TcpPort上没有任何值,(我本机上也没有任何值,且是可以正常工作的)
同时我在[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServerSuperSocketNetLib]项下看到一个VIA的项,我删除了它下面的所有值,保留了一个默认值为(数值未设定)。这个时候,再回头看TcpPort一项,上面便自动填写了一个1433端口。奇怪。注册表里到处看了看,但是再也没有动过。

重启一下,很奇怪,服务器不监听1433,但发现有一个进程监听2433端口。更奇怪了。 打开SQL server的网络工具,查看Tcp/IP属性,果然是2433。 下载一个端口连接查看器,的确是SQL Server在监听它。

5、在注册表和企业管理器里同时确保端口是tcp 1433,然后重启,生效!


问题解决了,但是知其然,还未知其所以然。要努力学习呀!

你可能感兴趣的