修正 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 文件或聯絡支援管道以取得確切的服務包配置,而不是套用針對其他發行版的修復程式。

官方參考資料

留下評論

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

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

透過檢查 HTTPS URL、systemd 套接字、已安裝的軟體包、firewalld 區域、憑證和日誌,對 SUSE Linux Enterprise Server 上的 Cockpit 進行故障排除。

如何在不停機的情況下將 SLES 15 SP5 移轉到 SP6

如何在不停機的情況下將 SLES 15 SP5 移轉到 SP6

了解如何透過經過測試的 SLE HA 滾動升級、逐節點檢查以及明確的單一伺服器停機時間注意事項,在 SLES 15 SP5 到 SP6 遷移期間保持服務的可用性。

如何在 Ubuntu Server 24.04 上設定 Pi-hole DNS-over-HTTPS

如何在 Ubuntu Server 24.04 上設定 Pi-hole DNS-over-HTTPS

在 Ubuntu Server 24.04 上設定 Pi-hole,使其使用 dnscrypt-proxy 進行 DNS-over-HTTPS 連接,然後驗證本地上游伺服器,避免常見的 DNS 衝突。

如何修復 YaST GUI 無法透過 SSH X11 轉送啟動的問題

如何修復 YaST GUI 無法透過 SSH X11 轉送啟動的問題

排查 YaST GUI 透過 SSH X11 轉送導致的故障。測試 DISPLAY,修復已記錄的 Qt XIO 錯誤,檢查 SSH 設置,並在必要時切換到 ncurses。

如何設定本地 SUSE RMT 伺服器(SMT 替代方案)

如何設定本地 SUSE RMT 伺服器(SMT 替代方案)

在 SLES 15 上設定 SUSE RMT,同步 SCC 元數據,鏡像選定的儲存庫,透過 HTTPS 註冊客戶端,並了解從 SMT 遷移的限制。

修正 Pardus Linux 23 上無法偵測到音效卡驅動程式的問題

修正 Pardus Linux 23 上無法偵測到音效卡驅動程式的問題

追蹤 Pardus Linux 23 上缺少的音效卡問題。安全地檢查 ALSA 檢測、核心模組、音訊服務、輸出設定檔、韌體和更新。

修正 Pardus KVM 虛擬機器中顯示解析度卡在 1024x768 的問題

修正 Pardus KVM 虛擬機器中顯示解析度卡在 1024x768 的問題

修正 Pardus KVM 虛擬機器卡在 1024x768 解析度的問題,檢查虛擬 GPU、SPICE 代理、X11 或 Wayland 會話,並正確驗證更高的顯示模式。

如何在 Debian 系統中開機時自動掛載遠端 SSHFS 目錄

如何在 Debian 系統中開機時自動掛載遠端 SSHFS 目錄

使用基於金鑰的 SSH、/etc/fstab、systemd 網路選項、自動掛載和驗證步驟,在 Debian 啟動時自動掛載遠端 SSHFS 目錄。

修正 SLES 系統升級期間出現的「無法分配記憶體」錯誤

修正 SLES 系統升級期間出現的「無法分配記憶體」錯誤

排查 SLES 升級過程中出現的「無法分配記憶體」問題。檢查 RAM、交換空間、OOM 日誌和進程限制,然後在不中斷軟體包事務的情況下進行復原。

修復 Harmonica OS 平板電腦的觸控螢幕校準問題:選擇合適的 Linux 修復方案

修復 Harmonica OS 平板電腦的觸控螢幕校準問題:選擇合適的 Linux 修復方案

追蹤 Harmonica OS (HamoniKR) 平板電腦的觸控偏移、旋轉和顯示對映問題。比較 X.Org 和 libinput 的修復方案,安全地進行測試,並了解何時校準無效。