修正 SUSE Linux Enterprise Server 上的 Cockpit Web 控制台無法連線的問題
透過檢查 HTTPS URL、systemd 套接字、已安裝的軟體包、firewalld 區域、憑證和日誌,對 SUSE Linux Enterprise Server 上的 Cockpit 進行故障排除。
如果 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>` 可能會導致重定向或瀏覽器警告,而不是預期的登入頁面。
從 SLES 控制台或可信任清單中確認伺服器的目前位址,並明確包含連接埠號碼:
https://192.0.2.25:9090
在客戶端測試 TCP 連接埠 9090 是否可達。在安裝了 netcat 的 Linux 管理工作站上,執行以下命令:
nc -vz 192.0.2.25 9090
TCP 連線成功僅證明連接埠可達,並不代表登入成功。逾時提示需要檢查伺服器的活動防火牆區域、上游網路防火牆、路由以及 VPN 存取。拒絕連線提示需要檢查 SLES 主機上的監聽器。如果 netcat 不可用,請使用瀏覽器進行測試,或使用其他已核准的 TCP 連線工具,切勿在生產主機上安裝未經核准的公用程式。
透過 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
即使主機防火牆斷開連接,活動監聽器仍然可能無法存取。 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 命令。切勿清除遠端管理的生產伺服器上的防火牆規則或停用防火牆:這可能會暴露服務並中斷您目前的管理路徑。
登入頁面載入完畢後,Cockpit 的網路路徑即可正常運作。 Cockpit 通常會期望瀏覽器連線使用 HTTPS,並提供 TLS 憑證。如果出現自簽名憑證或名稱不符的警告,並不表示套接字已中斷。對於實驗室主機,請在接受警告之前,請透過可信任管道驗證憑證指紋。對於受管系統,請安裝一個主題名稱與管理員使用的主機名稱匹配,且其憑證鏈受管理員瀏覽器信任的憑證。
如果登入頁面出現但憑證被拒絕,請檢查使用者名稱、密碼、帳戶狀態以及伺服器的驗證原則。 Cockpit 通常使用系統帳戶進行身份驗證,它並非獨立的使用者資料庫。故障排除時,請勿在指令或日誌中輸入密碼。如果頁面載入但介面空白或登入後斷開連接,請檢查瀏覽器的開發者控制台和最近的 Cockpit 日誌。如果反向代理不支援 WebSocket 連線或轉送了錯誤的協定或主機訊息,也可能導致故障。
在嘗試建立新連線的同時,捕捉一個較短的日誌視窗:
sudo journalctl -u cockpit.socket -u cockpit.service --since "10 minutes ago" --no-pager
尋找綁定錯誤、權限或憑證錯誤,以及與測試時間相符的訊息。如果伺服器在本機監聽但遠端用戶端無法連接,請在變更 Cockpit 設定之前檢查網路路徑和 firewalld 區域。如果直接存取有效但透過代理存取失敗,請暫時透過允許的直接路由進行比較,然後檢查代理程式的 WebSocket 升級支援和轉送標頭。避免先更改 Cockpit 的來源或 TLS 設定;不正確的代理信任設定會降低安全性。
每次只做一項改動,然後驗證以下結果:
systemctl status cockpit.socket顯示套接字處於活動和監聽狀態。https://SERVER_IP:9090並看到駕駛艙登入頁面。如果套接字處於活動狀態且本機檢查成功,但遠端 TCP 測試仍逾時,則剩餘故障可能出在 Cockpit 本身之外,例如上游防火牆、網路路由、DNS 記錄或 VPN 規則。如果該服務在其他方面受支援的 SLES 系統上發生故障,請儲存單元狀態和日誌輸出,並查閱 SUSE 文件或聯絡支援管道以取得確切的服務包配置,而不是套用針對其他發行版的修復程式。
透過檢查 HTTPS URL、systemd 套接字、已安裝的軟體包、firewalld 區域、憑證和日誌,對 SUSE Linux Enterprise Server 上的 Cockpit 進行故障排除。
了解如何透過經過測試的 SLE HA 滾動升級、逐節點檢查以及明確的單一伺服器停機時間注意事項,在 SLES 15 SP5 到 SP6 遷移期間保持服務的可用性。
在 Ubuntu Server 24.04 上設定 Pi-hole,使其使用 dnscrypt-proxy 進行 DNS-over-HTTPS 連接,然後驗證本地上游伺服器,避免常見的 DNS 衝突。
排查 YaST GUI 透過 SSH X11 轉送導致的故障。測試 DISPLAY,修復已記錄的 Qt XIO 錯誤,檢查 SSH 設置,並在必要時切換到 ncurses。
在 SLES 15 上設定 SUSE RMT,同步 SCC 元數據,鏡像選定的儲存庫,透過 HTTPS 註冊客戶端,並了解從 SMT 遷移的限制。
追蹤 Pardus Linux 23 上缺少的音效卡問題。安全地檢查 ALSA 檢測、核心模組、音訊服務、輸出設定檔、韌體和更新。
修正 Pardus KVM 虛擬機器卡在 1024x768 解析度的問題,檢查虛擬 GPU、SPICE 代理、X11 或 Wayland 會話,並正確驗證更高的顯示模式。
使用基於金鑰的 SSH、/etc/fstab、systemd 網路選項、自動掛載和驗證步驟,在 Debian 啟動時自動掛載遠端 SSHFS 目錄。
排查 SLES 升級過程中出現的「無法分配記憶體」問題。檢查 RAM、交換空間、OOM 日誌和進程限制,然後在不中斷軟體包事務的情況下進行復原。
追蹤 Harmonica OS (HamoniKR) 平板電腦的觸控偏移、旋轉和顯示對映問題。比較 X.Org 和 libinput 的修復方案,安全地進行測試,並了解何時校準無效。