MS SQL Server防火墙端口

最近我发现自己在SQL Server 2008(EXPRESS)上快速部署生产应用程序,在运行ASP.NET应用程序和我们的数据库服务器的Web服务器之间configuration防火墙规则时遇到了一些问题。

我在互联网上可以find的所有东西都声称,我只需要在数据库服务器上可以访问TCP端口1433/1434和UDP端口1434即可。 但是,我们无法使用这些端口在Web应用程序和数据库之间build立连接。 在我们的数据中心的一个人的帮助下,我们发现数据库服务器上的stream量也是TCP端口2242。 打开这个港口后,一切正常,但我们不知道为什么。

后来,由于一些磁盘空间的问题,我不得不重新安装SQL Server,发现问题已经重现了 – 在使用数据包嗅探器的另一个会话之后,我们发现这次数据stream将进入数据库服务器上的TCP端口4541。 我的问题是,有一些configuration选项,我在SQL服务器,使其select随机端口丢失? 我希望尽可能locking我们的防火墙规则,当然,我们希望避免将来出现任何神秘的连接问题,特别是在应用程序正常运行时。

两台服务器都运行Windows 2003 R2 X64。

要回答我自己的问题,似乎默认情况下,SQL Server 可能会使用端口1433,但在我的设置中,它被设置为使用dynamic端口。 本文介绍如何configuration固定端口:

http://msdn.microsoft.com/en-us/library/ms345327%28v=SQL.100%29.aspx

那么,默认情况下,端口1433上的侦听器被禁用。 你需要启用1433监听器才能工作。 另外,如果您使用“sa”帐户,我认为该帐户默认情况下是禁用的。 你基本上只需要在TCP上打开1433端口。 除非你做了不同的事情,否则你不需要通过防火墙打开1434 udp端口。

检查运行SQL Server端口的快速方法是检入SQL Server错误日志。 有一行说SQL Server正在侦听….这个实例是默认还是一个命名实例? SQL默认情况下为1433/1434安装默认实例,每个连续实例都有dynamic端口。