Sql-Server
限制 SQL Server 可用的動態埠範圍
有沒有辦法從數據庫端或數據庫伺服器端限制 SQL Server 可用的動態埠範圍?我們的 SOP 是跨網路防火牆使用靜態埠,而供應商在鎖定其埠時遇到了麻煩。從理論上講,如果我們允許動態範圍 (49152–65535) 內的 1000 個埠跨過防火牆,我將如何限制 SQL Server 僅分配該範圍內的動態埠?
正如 Cougar9000 自己發現的那樣,臨時(動態)埠的使用不是由應用程序管理,而是由作業系統管理。您只能為整個伺服器更改它。
這個問題的答案確實為您提供了所需的資訊和連結。
簡而言之,你可以做
netsh int ipv4 set dynamicport tcp start=50000 num=1000
請注意,將範圍設置得太小可能會導致TCP/IP 埠耗盡。
這是我在評論中提到的 PowerShell 解決方案的開始:
$instanceId = "<Instance ID>"; $registryKey = "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$instanceId\MSSQLServer\SuperSocketNetLib\TCP\IPAll" $portNumber = (Get-Item $registryKey).GetValue("TcpDynamicPorts"); netsh advfirewall firewall add rule action=allow localport=$portNumber protocol=TCP dir=in name="SQL Server Database Engine ($instanceId)"
我不確定這是否適合確切的情況,但它可能會幫助那裡的人。