SQLServer不监听TCP1433端口

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,然后重启,生效!

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