###### tags: `Windows Server 筆記` # Windows Netsh [![](https://hackmd.io/_uploads/H1SwEcIct.jpg)](https://hackmd.io/_uploads/H1SwEcIct.jpg) ## 調整 MaxUserPort 設定 >MaxUserPort 值會控制應用程式向系統要求任何可用的使用者埠時,所使用的最大端口號碼。 通常,短期的埠會配置在1025到65535的範圍內。 埠範圍現在是具有起點和端點的範圍。 新的預設開始埠是49152,而預設的終端埠是65535。 除了服務和應用程式所使用的知名埠之外,此範圍也是。 伺服器所使用的埠範圍可以在每部伺服器上修改。 * 此命令會設定 TCP 的動態埠範圍。 [開始] 埠為 [數位],而 [埠總數] 為 [範圍]。 ```bash= netsh int ipv4 set dynamicport tcp start=1025 num=64511 netsh int ipv4 set dynamicport udp start=1025 num=64511 netsh int ipv6 set dynamicport tcp start=1025 num=64511 netsh int ipv6 set dynamicport udp start=1025 num=64511 ``` * 可以使用 netsh 命令來動態埠範圍,如下所示: ```bash= netsh int ipv4 show dynamicport tcp netsh int ipv4 show dynamicport udp netsh int ipv6 show dynamicport tcp netsh int ipv6 show dynamicport udp ``` ## 調整 TcpTimedWaitDelay 設定 >TcpTimedWaitDelay 值會決定連接在關閉時維持 TIME_WAIT 狀態的時間長度。 當連線處於 TIME_WAIT 狀態時,無法重複使用通訊端配對。 這也稱為2MSL 狀態,因為此值應該是網路上最大區段存留期的兩倍。 * 修改註冊表 | Value | TcpTimedWaitDelay | | --------- | ---------------------------------------------------------------------- | | 資料類型 | REG_DWORD | | 擊鍵 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters | | 建議值 | 30 | | 預設值 | 0x78 (120十進位) | * 另存註冊表檔 (TIME_WAITto30s.reg) ```bash= Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters] "TcpTimedWaitDelay"=dword:0000001e ``` ## 調整 appConcurrentRequestLimit > 調整appConcurrentRequestLimit,避免產生503.2超過同時要求限制此。 > appConcurrentRequestLimit 屬性設定為小於目前同時要求數目的值。 IIS 7.0 和更新版本不允許超出appConcurrentRequestLimit屬性值的同時要求。 #### 1. 調整IIS應用程式集區隊列長度 由原來的預設1000改為65535。 ![](https://hackmd.io/_uploads/H191f5Uqt.png) #### 2. 調整IIS的appConcurrentRequestLimit設定 由原來的預設5000改為100000。 ![]([https://hackmd.io/_uploads/H1vSG9U5t.png](https://hackmd.io/_uploads/H1vSG9U5t.png)) ```bash= c:\windows\system32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000 ``` :::info C:\Windows\System32\inetsrv\Config\applicationHost.config 中可以查看到該設定 ```xml= <serverRuntime appConcurrentRequestLimit="100000" /> ``` [![](https://hackmd.io/_uploads/HkDFMqIqK.png =800x400)](https://hackmd.io/_uploads/HkDFMqIqK.png) ::: #### 3. config中的processModel>requestQueueLimit的設定 位置: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config ```xml= 將 processModel 元素替換為以下值: <processModel autoConfig="true"/> ↓ <processModel enable="true" requestQueueLimit="100000" minIoThreads="250"/> ``` [![](https://hackmd.io/_uploads/B1ZR1sI5Y.png =800x500)](https://hackmd.io/_uploads/B1ZR1sI5Y.png) #### 4. 修改註冊表,調整IIS 7支援的同時TCPIP串連數 在cmd命令中運行命令: ```bash= reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000 ``` [![](https://hackmd.io/_uploads/rkWrNc8qt.png)](https://hackmd.io/_uploads/rkWrNc8qt.png) #### 5. Credential Manager服務改為自動 >憑證管理器停止服務。 [![](https://hackmd.io/_uploads/rJTJgBDqt.png =300x150)](https://hackmd.io/_uploads/rJTJgBDqt.png) * 同時按下Win+R,執行“services.msc”,進入服務管理