前言 在現代 IT 基礎架構中,資料是企業的命脈。隨著虛擬化、容器化與雲端應用的普及,傳統儲存架構逐漸難以滿足高擴充性與高可靠性的需求。軟體定義儲存(Software-Defined Storage, SDS) 因此誕生,透過軟體將儲存控制邏輯從昂貴的專用硬體中解放出來。而在眾多 SDS 解決方案中,Ceph 是最具代表性的開源系統之一。 一、什麼是軟體定義儲存 (SDS) 🔹 定義 軟體定義儲存(SDS)是指將儲存管理的智慧邏輯從硬體中抽離,透過軟體來統一管理與分配儲存資源。它不再依賴昂貴的儲存控制器,而是利用多台普通伺服器的硬碟、SSD,形成一個高可用、高擴充的分散式儲存系統。 簡單來說: SDS = 「用軟體」定義並管理「儲存資源」。 二、傳統儲存 vs. 軟體定義儲存 項目 傳統 SAN / NAS 軟體定義儲存 (SDS) 架構 專用儲存控制器 普通伺服器 + 軟體管理 擴充方式 垂直擴充(加大硬體) 水平擴充(加節點) 容錯機制 RAID 節點間複製 / 編碼修復 成本 高、受廠商限制 低、硬體自由搭配 管理方式 手動設定、專用介面 軟體集中管理、API 自動化 常見產品 EMC、NetApp、Synology Ceph、GlusterFS、TrueNAS SCALE 透過 SDS,企業能以標準…
Category: Linux
About Linux Tech
Avoiding Disconnection When Redirecting Default Gateway in OpenVPN Static Key Mode
💡 Introduction In small office environments or for quick site-to-site links, it’s common to deploy OpenVPN in Static Key Mode.This setup is simple — it only requires a shared key file and no certificate authority. It’s ideal for lightweight, point-to-point encrypted tunnels. However, when you want laptop users to route all traffic through the OpenVPN…
OpenVPN Static Key 模式下設定 Default Gateway 的陷阱與正確做法
💡 前言 在企業內部或小型環境中,我們有時會為了簡化設定,採用 OpenVPN 的靜態金鑰模式(Static Key Mode)。這種架構只需要一個 secret key,不需憑證與 CA 架構即可建立安全的點對點加密通道,非常適合固定主機間的連線。 不過,若希望讓使用者(特別是筆電使用者)所有網路流量都經由 OpenVPN 伺服器轉送,就會遇到一個經典問題: 一旦使用者接受 default gateway,VPN 反而會斷線。 本文將深入分析問題的根源與正確的設定方式,讓你能穩定實現「全流量走 VPN」的需求。 🔍 問題現象:為什麼會斷線? 在 OpenVPN 中,如果客戶端把預設閘道改成 VPN(例如 route 0.0.0.0 0.0.0.0 10.40.0.1),那麼所有封包——包含控制通道本身(UDP 37000)——都會被導進 VPN 隧道。 由於連線尚未完全建立,控制封包出不去,VPN 立即中斷。這就是論壇上常見的「設定 default gateway 後無法連線」問題。 ⚙️ Static Key 模式的特性 靜態金鑰模式是最精簡的 OpenVPN 架構: 換句話說,「讓流量全走 VPN」這件事,在 static key 模式中只能靠客戶端手動完成。 ✅ Server 端設定範例 🔸 系統層設定…
Hairpin NAT vs. Split DNS — Which Is the Right Choice for Your Network?
💡 Hairpin NAT (NAT Loopback) — Allow Internal Users to Access Internal Servers Using Public Domain Names 🧱 1. The Scenario In many corporate or home networks, administrators use NAT (Network Address Translation) to expose internal servers to the Internet.For example: External users can access mail.example.com without issues.However, when internal users try to access the…
Hairpin NAT vs Split DNS:哪種才是正確做法?
🧱 一、發生的情境 在企業或家庭網路中,我們常透過 NAT(Network Address Translation) 將內部伺服器對外提供服務。例如: 這時候,外部用戶從網際網路訪問 mail.example.com 一切正常。但公司內部用戶如果也輸入相同網址(mail.example.com),卻發現: ❌ 無法連線、逾時、或導向錯誤的主機。 這就是典型的 Hairpin NAT(又稱 NAT Loopback) 問題。 🧭 二、問題的本質 NAT 裝置(例如 Router、防火牆、OPNsense、Linux Gateway)收到封包時的邏輯如下: 簡單說,NAT 預設只處理外部 → 內部 的轉換,而不會自我迴圈。這就像你寄信到自己的郵局地址,但郵差不知道該送回自己家。 ⚙️ 三、Hairpin NAT 的運作原理 Hairpin NAT 讓「內部客戶端 → NAT 公網 IP → 內部伺服器」的封包能正確繞回內網。 流程如下: 最關鍵的部分是第 3 步的 SNAT: 如果不改變來源 IP,Server 看到來源為同網段(192.168.1.20),會直接回封包,不經 NAT,導致連線中斷。 🧩 四、常見環境設定方式 🔹 1️⃣…
Fixing Default Route Override on Ubuntu (WMS Server on AWS)
In our AWS environment, the WMS server (Warehouse Management System) operates strictly within the internal network.All external traffic is routed through a single NAT gateway — TPM1 (172.17.10.10). However, after some time in operation, the WMS server’s default route keeps getting replaced with 172.17.10.1, breaking external connectivity and disrupting communication with other systems. 🔍 Problem…
AWS主機:預設路由被 DHCP 覆寫的解決方案(Ubuntu + Netplan)
在 AWS 上的 WMS 主機僅提供內網服務,所有外部連線都統一經由 TPM1 (172.17.10.10) 這台主機進行 NAT 轉址。但實際運行一段時間後,發現主機的預設路由 (default gateway) 會不定期被系統自動改回 172.17.10.1,導致外部通訊中斷。 問題現象 執行 route -n 或 ip route 觀察到如下狀況: 手動設定的 gateway (172.17.10.10) 經常在系統重新啟動或 DHCP 更新租約後消失。 問題原因 檢視系統日誌 (journalctl -u systemd-networkd -b) 後,發現關鍵訊息: 👉 原因是:systemd-networkd 透過 DHCP 自動取得 IP 時,也同時套用了 DHCP 伺服器提供的 gateway(172.17.10.1)。因此,每當 DHCP 重新租約,就會覆蓋掉手動設定的路由。 解決思路 我們要達成兩個目標: Ubuntu 20.04 之後的版本使用 Netplan + systemd-networkd,所以最佳做法是直接在…
Fixing WordPress REST API Error: cURL Error 28 in Docker Environments
When running WordPress, you might encounter this warning in your Site Health Check page: REST API ErrorThe REST API is one way WordPress and other applications communicate with the server. Error: (http_request_failed) cURL error 28: Connection timed out after 10001 milliseconds This message indicates that your WordPress instance failed to communicate with itself through the…
解決 WordPress REST API 錯誤:cURL error 28 的實戰過程
在使用 WordPress 時,如果在「網站健康檢查」頁面看到以下訊息: REST API 發生錯誤REST API 是 WordPress 及其他應用程式與伺服器進行通訊的一種方式。以區塊編輯器畫面為例,它便是依賴 REST API 來顯示與儲存內容。測試 REST API 時發生錯誤:REST API 回應: (http_request_failed) cURL error 28: Connection timed out after 10001 milliseconds 代表你的 WordPress 無法透過內部網路與自己通訊。這種錯誤看似奇怪,實際上非常常見,尤其當你的網站部署在 Docker 或反向代理環境 中。 🔍 問題現象 WordPress 會在檢查 REST API 時,嘗試透過 HTTP 請求連到自己的網址(例如 https://www.nuface.tw/wp-json/)。但如果容器內的 DNS 無法解析這個網域,就會出現逾時錯誤 cURL error 28。 簡單來說,就是「WordPress 呼叫自己時,找不到自己」。 🧠 問題原因分析 在 Docker…
Adjusting Display Language in Linux (Fixing Locale Issues in Ubuntu 24)
After upgrading to Ubuntu 24, you might find that Vim displays garbled or unreadable Chinese characters.This issue usually occurs when the terminal encoding and Vim’s internal encoding settings don’t match.During the upgrade from Ubuntu 22 → 24, the system’s default locale may have been reset to C or POSIX, which are non-UTF-8 environments. 🔍 Step-by-Step…