環境: win11
錯誤信息:
MySQL ERROR: dial tcp X.X.X.X:3306: connectex: Only one usage of each socket address (protocol/network address/port) is normally permitted.
場景: 高并發,使用yakit進行SQL盲注爆破。
首先,該錯誤不是MySQL的鍋,而是win10系統的問題。
一個連接由5個元素確定,即{ Protocol, Local IP, Local Port, Remote IP, Remote Port} ,當一個連接被關閉時,默認情況下會進入TIME_WAIT狀態240s。
這里,我們使用的Protocol是TCP,Local IP,Remote IP和Remote Port都是固定的,那么問題肯定出在Local Port上。
當一個應用被部署在windows服務器且每次請求都要進行數據庫事務操作時,在高并發情況下,會導致win10下本地端口占用過多,導致本地可用端口急速耗盡就會出現該報錯信息。
1、部署到Linux服務器
這個錯誤目前在Linux環境下還未發現,部署應用到Linux服務器,妥妥的。如果非要在本地做壓測,可以嘗試以下方法。
2、修改win10動態端口的范圍
#打開注冊表
#win10下快捷鍵 win + R,輸入regedit
#修改HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
#創建DWORD類型鍵值對
TcpTimedWaitDelay
REG_DWORD: 0000001e (hex)
MaxUserPort
REG_DWORD: 0000fffe (hex)
TcpNumConnections
REG_DWORD: 00fffffe (hex)
TcpMaxDataRetransmissions
REG_DWORD: 00000005 (hex)
#備注:十六進制數(hex)、HKLM:HKLM:HKEY_LOCAL_MACHINE
#命令行修改:
netsh int ipv4 set dynamicport tcp start=2000 num=63000
netsh int ipv4 set dynamicport udp start=2000 num=63000
netsh int ipv6 set dynamicport tcp start=2000 num=63000
netsh int ipv6 set dynamicport udp start=2000 num=63000
#ps:start后面填寫動態端口開始地址,num填寫動態端口數量,總數量是固定的;此處建議將start設定在10000以上,2000可能會造成sql端口被動態端口占用(3306)
#查看可用端口:
netsh int ipv4 show dynamicportrange tcp
3、修改win10連接TIME_WAIT時間
IT之家3月2日消息 今日,微軟面向Windows 10 19H1快速預覽通道推送了18348版本更新,這一版本更新與此前20H1通道更新內容基本一致。除此之外,微軟還面向Windows 10更新十月版(1809版)推送了一個累積更新。
這一更新的具體版本號為KB4482887,將系統版本號提升至17763.348。此次的更新沒有帶來新功能,而是專注于常規更新和問題修復,以下為更新日志。
更新內容:
在某些設備上為Windows啟用“Retpoline”,將有助于提高防御“Spectre”(幽靈)變體2性能(CVE-2017-5715)。
解決了可能導致操作中心突然出現在屏幕的錯誤一側(左側),然后再顯示在正確的一側(右側)的問題。
解決了在Microsoft Edge中某些墨跡書寫內容的PDF無法保存問題。如果你在開始使用墨跡書寫后快速擦除了一些墨跡,然后繼續添加更多書寫,則會發生這種情況。
解決了在服務器管理器中為存儲類內存(SCM)磁盤顯示介質類型為“未知”的問題。
解決遠程桌面訪問Hyper-V Server 2019的問題。
解決了導致重新發布BranchCache占用的空間超過分配空間的問題。
解決了從Web遠程桌面客戶端到Windows Server 2019建立遠程桌面連接時出現的性能問題。
解決了一個可靠性問題。如果在將筆記本電腦從擴展塢斷開連接時關閉筆記本電腦蓋,可能會導致屏幕在從睡眠狀態恢復后保持黑屏。
解決了由于“拒絕訪問”錯誤導致共享文件夾上的文件覆蓋失敗的問題。安裝篩選器驅動程序時會發生此問題。
為某些藍牙無線電啟用外設支持。
解決了在遠程桌面會話期間可能導致打印到PDF失敗的問題。嘗試保存文件并從客戶端系統重定向驅動器時,會發生此問題。
解決可能導致主筆記本電腦屏幕從睡眠狀態恢復時閃爍的可靠性問題。如果筆記本電腦連接到具有間接顯示的擴展塢,則會出現此問題。
解決了在使用某些VPN連接時顯示黑屏并導致遠程桌面會話停止響應的問題。
更新智利的時區信息。
解決了在開箱即用體驗(OOBE)設置后無法為Windows Hello正確注冊USB攝像頭的問題。
解決了阻止微軟增強的Point and Print兼容性驅動程序在Windows 7客戶端上安裝的問題。
解決了當遠程桌面配置為使用硬件編碼器進行高級視頻編碼(AVC)時,Termservice停止工作的問題。
解決了使用App-V將應用程序移動到共享平臺時鎖定用戶帳戶的問題。
提高了UE-VAppmonitor的可靠性。
解決了阻止App-V應用程序啟動并在日志中生成錯誤0xc0000225的問題。設置以下DWORD值,以自定義驅動程序等待卷可用的最長時間:“HKLM\Software\Microsoft\AppV\MAV\Configuration\MaxAttachWaitTimeInMilliseconds”。
解決了Windows生態系統兼容性狀態的評估問題,以確保所有Windows更新的應用程序和設備兼容性。
解決了可能會阻止某些應用程序正確顯示“幫助”(F1)窗口的問題。
解決了使用用戶配置文件磁盤設置后,Windows Server 2019終端服務器上的桌面和任務欄閃爍的問題。
解決了在先前發布連接組之后在連接組中發布可選包時無法更新用戶配置單元的問題。
提高與不區分大小寫的字符串比較函數相關的性能,例如Universal C Runtime中的_stricmp。
解決了解析和回放某些MP4內容的兼容性問題。
解決了Internet Explorer代理設置和開箱即用體驗(OOBE)設置時出現的問題。初始登錄在Sysprep之后停止響應。
解決了如果圖像比上一個圖像舊或與之前圖像名稱相同,則組策略設置的桌面鎖定屏幕圖像不會更新的問題。
解決了如果圖像與上一圖像具有相同名稱,則組策略設置的桌面壁紙圖像不會更新的問題。
解決導致TabTip.exe觸摸屏鍵盤在某些情況下停止工作的問題。替換默認shell后,在自助服務終端場景中使用鍵盤時會出現此問題。
解決了在關閉連接后可能導致新的Miracast連接標志保持打開的問題。
解決了將雙節點Storage Space Direct(S2D)群集從Windows Server 2016升級到Windows Server 2019時可能導致虛擬磁盤脫機的問題。
解決了無法將日語時代名稱的第一個字符識別為縮寫,以及可能導致的日期解析問題。
解決了可能阻止Internet Explorer加載其相對源路徑中具有反斜杠(\)的圖像的問題。
解決可能導致使用具有Microsoft Access 95文件格式的Microsoft Jet數據庫的應用程序隨機停止工作的問題。
解決了Windows Server 2019中使用Get-StorageReliabilityCounter查詢SMART數據時導致輸入和輸出超時的問題。
如果您安裝了早期更新,則只會下載并安裝此軟件包中包含的新修補程序。
已知問題:
問題 | 應對方法 |
安裝此更新后,Internet Explorer 11可能會出現身份驗證問題。當兩個或更多人在同一臺Windows Server計算機上使用同一用戶帳戶進行多個并發登錄會話(包括遠程桌面協議(RDP)和終端服務器登錄)時,會發生這種情況。 用戶報告的問題包括但不限于以下:
| 創建唯一的用戶帳戶,以便兩個人在登錄Windows Server計算機時不共同一個用戶帳戶。此外,為特定Windows Server的單個用戶帳戶禁用多個RDP會話。 微軟正在制定解決方法,并將在即將發布的版本中提供更新。 |