修正 SUSE Linux Enterprise Server 上的 Cockpit Web 控制台無法連線的問題

如果 Cockpit Web 控制台無法連接到 SUSE Linux Enterprise Server (SLES) 主機,請先嘗試連接https://SERVER_IP:9090,然後驗證 Cockpit 服務是否cockpit.socket正在監聽,以及防火牆是否允許伺服器網路介面所用區域中的 Cockpit 服務存取網路。在標準安裝中,這些檢查可以解決最常見的問題:URL 或連接埠錯誤、套接字未啟動、缺少 Cockpit 軟體包或入站連接被阻止。

本指南適用於使用 systemd 且已在其配置的產品儲存庫中安裝了 Cockpit 的 SLES 系統。 SUSE 目前的 SLES 16 Cockpit 指南記錄了以下安裝模式和套接字啟動指令。軟體包的可用性和名稱可能因 SLES 服務包、模組和支援權限而異,因此在較舊的 SLES 15 主機上,請先確認其已啟用的 SUSE 儲存庫中是否提供了 Cockpit,然後再將安裝錯誤視為服務故障。

從症狀入手。

利用瀏覽器中的錯誤訊息縮小故障範圍。逾時或「網站無法存取」通常指向路由、防火牆規則或未啟動的監聽器。連線被拒絕通常意味著所選地址和連接埠上沒有任何服務接受連線。 Cockpit 登入頁面表示 Web 服務可存取;之後的驗證錯誤則可能是其他帳戶或政策問題。憑證警告表示 HTTPS 協商已到達伺服器,但瀏覽器不信任該憑證或其名稱。

例如,假設管理員無法開啟位址為 `<server_address>` 的伺服器192.0.2.25。https://192.0.2.25:9090請從有權管理該伺服器的機器上進行測試。 Cockpit 通常使用 9090 連接埠上的 HTTPS。僅輸入 IP 位址可能會開啟其他服務,而使用 ` http://<server_address>` 可能會導致重定向或瀏覽器警告,而不是預期的登入頁面。

1. 檢查網址及其可及性

從 SLES 控制台或可信任清單中確認伺服器的目前位址,並明確包含連接埠號碼:

https://192.0.2.25:9090

在客戶端測試 TCP 連接埠 9090 是否可達。在安裝了 netcat 的 Linux 管理工作站上,執行以下命令:

nc -vz 192.0.2.25 9090

TCP 連線成功僅證明連接埠可達,並不代表登入成功。逾時提示需要檢查伺服器的活動防火牆區域、上游網路防火牆、路由以及 VPN 存取。拒絕連線提示需要檢查 SL​​ES 主機上的監聽器。如果 netcat 不可用,請使用瀏覽器進行測試,或使用其他已核准的 TCP 連線工具,切勿在生產主機上安裝未經核准的公用程式。

2. 確認駕駛艙已安裝且其插座已激活

透過 SSH 或本機控制台連線並檢查套接字。 Cockpit 通常使用 systemd 套接字啟動:systemd 代表 Cockpit 監聽傳入連線並按需啟動 Web 服務。因此,需要檢查的關鍵單元通常是 systemd cockpit.socket,而不是持續運行的 Cockpit cockpit.service。

sudo systemctl status cockpit.socket
sudo ss -ltnp | grep ':9090'

尋找活動/監聽套接字和綁定到連接埠 9090 的監聽器。如果缺少該單元,則 Cockpit 可能未安裝。在已啟用儲存庫提供 Cockpit 模式的 SLES 版本中,SUSE 文件提供了使用以下命令安裝 Cockpit 的方法:

sudo zypper refresh
sudo zypper in -t pattern cockpit

如果 Zypper 報告找不到模式,請與您的 SUSE 管理員一起檢查產品、服務包、已啟用模組、儲存庫狀態和支援權限。不要為了使命令成功而添加無關的第三方存儲庫。確認 Cockpit 已安裝後,啟用並啟動其套接字:

sudo systemctl enable --now cockpit.socket
sudo systemctl status cockpit.socket

此--now選項會立即啟動套接字,並使其在以後的啟動中生效。如果 systemd 報告某個單元失敗,請在重複重啟之前檢查特定的錯誤訊息:

sudo journalctl -u cockpit.socket -b --no-pager
sudo journalctl -u cockpit.service -b --no-pager

3. 允許 Cockpit 通過活動防火牆區域

即使主機防火牆斷開連接,活動監聽器仍然可能無法存取。 SLES 在目前版本中使用 firewalld 進行防火牆管理。首先確定活動區域及其指派的介面:

sudo firewall-cmd --get-active-zones

然後將名為 Cockpit 的服務新增到包含管理介面的區域。將替換public為您主機上報告的實際區域:

sudo firewall-cmd --zone=public --add-service=cockpit --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=public --query-service=cockpit

最終命令應該會報告結果yes。如果網路介面位於不同的區域,則開啟該服務public並不能修復該介面的規則。 SUSE 的 Cockpit 文件使用了cockpitfirewalld 服務;開啟該服務比開放所有流量或停用防火牆更可取。如果主機規則正確但用戶端仍逾時,也應檢查雲端安全群組、邊界防火牆、VPN 政策和網路 ACL。

如果您的 SLES 鏡像使用了不同的防火牆管理設置,請遵循該系統的策略,而不是盲目地應用 firewalld 命令。切勿清除遠端管理的生產伺服器上的防火牆規則或停用防火牆:這可能會暴露服務並中斷您目前的管理路徑。

4. 將連線失敗與憑證或登入問題區分開來

登入頁面載入完畢後,Cockpit 的網路路徑即可正常運作。 Cockpit 通常會期望瀏覽器連線使用 HTTPS,並提供 TLS 憑證。如果出現自簽名憑證或名稱不符的警告,並不表示套接字已中斷。對於實驗室主機,請在接受警告之前,請透過可信任管道驗證憑證指紋。對於受管系統,請安裝一個主題名稱與管理員使用的主機名稱匹配,且其憑證鏈受管理員瀏覽器信任的憑證。

如果登入頁面出現但憑證被拒絕,請檢查使用者名稱、密碼、帳戶狀態以及伺服器的驗證原則。 Cockpit 通常使用系統帳戶進行身份驗證,它並非獨立的使用者資料庫。故障排除時,請勿在指令或日誌中輸入密碼。如果頁面載入但介面空白或登入後斷開連接,請檢查瀏覽器的開發者控制台和最近的 Cockpit 日誌。如果反向代理不支援 WebSocket 連線或轉送了錯誤的協定或主機訊息,也可能導致故障。

5. 基本測試通過後,檢查日誌和代理設定。

在嘗試建立新連線的同時,捕捉一個較短的日誌視窗:

sudo journalctl -u cockpit.socket -u cockpit.service --since "10 minutes ago" --no-pager

尋找綁定錯誤、權限或憑證錯誤,以及與測試時間相符的訊息。如果伺服器在本機監聽但遠端用戶端無法連接,請在變更 Cockpit 設定之前檢查網路路徑和 firewalld 區域。如果直接存取有效但透過代理存取失敗,請暫時透過允許的直接路由進行比較,然後檢查代理程式的 WebSocket 升級支援和轉送標頭。避免先更改 Cockpit 的來源或 TLS 設定;不正確的代理信任設定會降低安全性。

確認維修狀況

每次只做一項改動,然後驗證以下結果:

  • systemctl status cockpit.socket顯示套接字處於活動和監聽狀態。
  • SLES 主機在預期連接埠(通常是 TCP 9090)上有一個監聽器。
  • 防火牆規則存在於指派給管理介面的區域。
  • 客戶端可以透過伺服器存取https://SERVER_IP:9090並看到駕駛艙登入頁面。
  • 身份驗證後,頁面保持連線狀態,最近的日誌中沒有符合的啟動或連線錯誤。

如果套接字處於活動狀態且本機檢查成功,但遠端 TCP 測試仍逾時,則剩餘故障可能出在 Cockpit 本身之外,例如上游防火牆、網路路由、DNS 記錄或 VPN 規則。如果該服務在其他方面受支援的 SLES 系統上發生故障,請儲存單元狀態和日誌輸出,並查閱 SUSE 文件或聯絡支援管道以取得確切的服務包配置,而不是套用針對其他發行版的修復程式。

官方參考資料

留下評論

如何在Linux系統上使用Cameractrls更改網路攝影機設置

如何在Linux系統上使用Cameractrls更改網路攝影機設置

使用 Cameractrls 在 Linux 上變更網路攝影機設定:調整曝光、色彩、減少閃爍和其他支援的控件,然後檢查相容的視訊模式。

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

在 Linux 系統上,您可以使用 JetBrains Toolbox 或獨立的 tar.gz 壓縮套件安裝 PhpStorm,此外還有 Snap 和 Arch AUR 版本可供選擇。 Java 已預先安裝。

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

在 Linux 上使用 GNOME Disks 或 dd 建立 CD-ROM ISO。識別光碟機,監控複製過程,驗證鏡像,並了解何時損壞的光碟或音訊光碟需要其他工具。

如何在 XFCE 4 上設定雙面板

如何在 XFCE 4 上設定雙面板

為每個顯示器建立一個單獨的 XFCE 4 面板,將第二個面板指派給正確的輸出,調整其位置和大小,並新增所需的啟動器和狀態項目。

如何在Linux上安裝Cisco Packet Tracer

如何在Linux上安裝Cisco Packet Tracer

下載適用於 Ubuntu 64 位元系統的 Cisco Packet Tracer 9.0.1,使用 APT 安裝 DEB 軟體包,在終端機中接受許可協議,然後登入以啟動實驗環境。

如何在Linux系統下使用GIMP摳圖

如何在Linux系統下使用GIMP摳圖

在 Linux 系統上使用 GIMP 去除照片背景:描繪主體,刪除選定的背景,保持透明度,並匯出可重複使用的 PNG 檔案。

免費下載 FlightGear:官方安裝指南

免費下載 FlightGear:官方安裝指南

從官方網站免費下載 FlightGear。比較 Windows、macOS 和 Linux 版本的軟體包,安裝資料文件,即可開始您的首次飛行。

Google Tasks桌面應用程式:如何在電腦上使用

Google Tasks桌面應用程式:如何在電腦上使用

在瀏覽器中開啟 Google Tasks,新增 Chrome 捷徑或應用程式啟動,並透過行事曆和 Gmail 管理有日期的待辦事項。

OKSampler:一款免費、簡單的鍵盤節拍音樂採樣器

OKSampler:一款免費、簡單的鍵盤節拍音樂採樣器

OKSampler 可以將 MP3 片段對應到鍵盤按鍵,並支援音訊循環播放。了解這款經典免費軟體的功能、其舊功能的缺失以及下載前需要檢查的事項。

如何在 Linux 系統上安裝 Wireshark:Ubuntu、Fedora、Arch 等

如何在 Linux 系統上安裝 Wireshark:Ubuntu、Fedora、Arch 等

使用目前軟體包命令在 Ubuntu、Debian、Fedora、Arch 或 openSUSE 上安裝 Wireshark,然後安全地配置即時資料包擷取。