部署維運平台報錯:connection refused
報錯語句:ERROR: 2022/05/18 17:33:07 finedb connect error:dial tcp 192.168.1.24:3306: connect: connection refused
部署維運專案報錯:Server IP try to bind ports failed!
報錯語句:Server IP try to bind ports 9114,9100,9200,9080,9070 failed!
待部署的維運平台組件/維運專案組件容器,需要佔用一些埠。
如果這些埠已被佔用/沒有開放,則無法成功部署,會出現以上報錯。
請依次檢查以下三者:
1)檢查該埠是否被伺服器中其他進程佔用
如果埠被佔用,則需要取代一個未被佔用的埠,再檢查新埠的下兩項。
如果埠未被佔用,則需要檢查該埠的下兩項。
2)檢查伺服器防火牆是否放行埠
如果伺服器防火牆未開啟,建議開啟。
如果伺服器防火牆開啟,需要開放所需埠。
如果埠已開放,請檢查下一項。
3)如為雲伺服器,請檢查伺服器安全組是否放行埠
雲伺服器安全組埠放行方式本文不作介紹,請聯絡你的雲伺服器廠商諮詢。
本文提供多種方法檢查Linux系統中的埠是否被其他進程佔用。
需要注意的是,執行以下命令通常需要以root使用者或具有足夠權限的使用者身分運作,以獲取完整的進程資訊。
netstat -tuln | grep <埠號>
將 <埠號> 取代為您要檢查的具體埠號
這條命令將顯示監聽該埠的進程資訊
如果有進程正在使用該埠,您將能夠看到相關的匯出
如果該埠未被佔用,則無任何匯出
lsof -i :<埠號>
這條命令將顯示開啟該埠的進程及其相關資訊。
1)建議伺服器防火牆長期啟動。
2)建議開放且只開放必要的埠,防止不必要的網路曝光。
本範例介紹如何開放防火牆並放行8080埠。
1)啟動防火牆
檢查防火牆狀態:systemctl status firewalld。回傳值為「not running」,說明未啟動防火牆
啟動防火牆:systemctl start firewalld
再次檢查防火牆狀態:systemctl status firewalld。回傳值為「running」,說明已啟動防火牆
2)開放8080埠
檢查埠是否放行:firewall-cmd --zone=public --query-port=8080/tcp。回傳值為「no」,說明未放行8080埠
開放埠:firewall-cmd --zone=public --add-port=8080/tcp --permanent。回傳值為「success」,說明已放行8080埠
更新防火牆規則:firewall-cmd --reload。回傳值為「success」,說明已更新規則
再次檢查埠是否放行:firewall-cmd --zone=public --query-port=8080/tcp。回傳值為「yes」,說明已放行8080埠
問題描述:
部署維運平台/維運專案後,在對應伺服器上會自動部署 Docker。
Docker 在啟動時會自動修改 iptables 規則,確定容器間的網路通訊、埠映射等功能能夠正常工作。
當 firewalld 重啟時,可能會重新整理或改寫這些 iptables 規則,導致 Docker 原先設定的規則失效,造成容器無法正常存取網路或服務埠映射失敗。
解決方法:
重啟 firewalld 後,請重啟 Docker 服務。
重啟 Docker 服務後,Docker 會重新載入並設定所需的 iptables 規則,確定網路功能恢復正常。
該操作會導致維運平台/維運專案不可用,請在非工作時段進行。
該操作需要掌握基礎docker知識,如無法完成,請聯絡帆軟技術支援協助。技術支援聯絡方式:「服務>線上支援」