windows Server 2019:解決防火墻導(dǎo)致websocket連接失敗的問題
許多開發(fā)者在將spring Boot應(yīng)用部署至Windows Server 2019服務(wù)器后,常常遇到WebSocket連接無法在啟用防火墻的情況下正常工作的問題。即使已在Windows防火墻中允許7076端口(例如:ws://192.168.1.2:7076/showabe/frontEndWebSocket?category=tv),連接仍然失敗,必須關(guān)閉防火墻才能正常通信。本文將指導(dǎo)您如何解決此問題,確保在啟用防火墻的情況下,WebSocket連接也能正常運(yùn)行。
問題:在Windows Server 2019上運(yùn)行的spring boot應(yīng)用,前端嘗試連接后端WebSocket服務(wù)器時(shí),僅在防火墻關(guān)閉的情況下才能成功。即使已在Windows防火墻中添加了7076端口的入站規(guī)則,問題依然存在。
原因:Windows防火墻并非應(yīng)用層防火墻,它不直接識別或處理WebSocket協(xié)議。因此,單純放行7076端口通常已足夠。如果連接仍然失敗,則需要進(jìn)一步排查以下兩個(gè)方面:
-
防火墻規(guī)則優(yōu)先級: 可能存在其他優(yōu)先級更高的規(guī)則阻止了7076端口的訪問。請仔細(xì)檢查所有入站規(guī)則,確保沒有沖突的規(guī)則阻止WebSocket連接。建議臨時(shí)禁用其他規(guī)則進(jìn)行測試,以找出沖突規(guī)則并進(jìn)行調(diào)整。
-
服務(wù)器網(wǎng)絡(luò)配置文件: 服務(wù)器的網(wǎng)絡(luò)配置文件會影響防火墻規(guī)則的應(yīng)用。“域”、“專用”和“公開”三種網(wǎng)絡(luò)配置文件模式會影響規(guī)則的生效范圍。添加防火墻規(guī)則時(shí),務(wù)必根據(jù)服務(wù)器當(dāng)前的網(wǎng)絡(luò)配置文件類型選擇相應(yīng)的規(guī)則范圍,確保規(guī)則正確應(yīng)用于當(dāng)前網(wǎng)絡(luò)環(huán)境。請仔細(xì)核對服務(wù)器的網(wǎng)絡(luò)配置文件類型,并在添加防火墻規(guī)則時(shí)選擇匹配的配置文件。規(guī)則與服務(wù)器實(shí)際網(wǎng)絡(luò)配置文件不匹配,即使端口已放行,也可能導(dǎo)致連接失敗。
通過仔細(xì)檢查防火墻規(guī)則優(yōu)先級和服務(wù)器網(wǎng)絡(luò)配置文件,您應(yīng)該能夠解決此WebSocket連接問題,并在啟用Windows Server 2019防火墻的情況下,確保您的Spring Boot應(yīng)用的WebSocket功能正常運(yùn)行。