Complete Bidirectional Bandwidth Control (Web / Mail / FTP / VoIP) In this article, we’ll build a Linux-based gateway that not only routes traffic between your LAN and the Internet but also provides precise QoS and bandwidth shaping using HTB, iptables, and IFB. This setup is ideal for small offices, labs, or home networks where…
Category: Linux
About Linux Tech
Linux Gateway 上的 HTB 雙向頻寬控制實作
一、環境設定 介面 方向 說明 eth0 外網(WAN) 連接 Internet(例如 PPPoE、NAT 出口) eth1 內網(LAN) 內部使用者連線的網卡,例如 192.168.10.0/24 Gateway Linux 主機 同時負責路由與 NAT 目標 控制內部使用者上 / 下行頻寬與分類(Web/Mail/FTP/VoIP) 二、邏輯說明 流量方向定義: 類型 封包方向 實際控制介面 上傳 LAN → WAN 控制 eth0 的 egress 下載 WAN → LAN 控制 eth1 的 ingress(轉發前)→ 用 IFB 重導再整形 因此: 重點:雖然下載的流量「進入 eth0」再被轉送到 eth1,但我們控制的是「eth0 的 ingress」,不是 eth1 的…
Using Apache 2.4 on AWS as a Reverse Proxy: Debugging 502s & Hardening in Practice (with vhost-scoped logs and rotatelogs)
This post summarizes a real troubleshooting session; all company/domain details are anonymized.Example domains use demodomain.com, e.g., wmsadmin.demodomain.com. Architecture Overview Typical vhost (simplified): Symptom Troubleshooting Flow (quick checklist) Raise timeouts only on long-running paths Avoid setting a huge global timeout that can tie up workers. Relax timeouts per URI: If mod_reqtimeout is enabled, prevent slow uploads…
在 AWS 上用 Apache 2.4 做反向代理:502 問題排查與實戰調校(含 vhost 分檔與 rotatelogs)
本文整理自一段真實排查經驗,所有公司與網域資訊已去識別化。範例網域以 demodomain.com 表示,例如 wmsadmin.demodomain.com。 架構概述 典型 vhost(簡化示意): 問題現象 排查思路(速查) 針對長耗時路徑「差異化」放寬 timeout 不要全站一刀切放到很長,避免把 worker 綁死;只對特定 URI 提高 timeout: 若有啟用 mod_reqtimeout,避免慢速上傳被切斷: 如何判讀「滿版的 trace 訊息」? 看到像這樣的行: 代表只是 偵錯等級很高時,Apache 把上游回應 header 與傳輸流程寫進 error log。不是錯誤。要看真正異常,請降回 LogLevel warn,或在 access log 先找 502 再對照 error log 該時段的 warn/error 級別訊息。 vhost 各自分檔記錄(擺脫 other_vhosts_access.log) 在每個 vhost 內指定 ErrorLog/CustomLog,最簡單: 如不想再用全域 other_vhosts_access.log,可停用: (注意:停用後,沒自訂 CustomLog 的 vhost…
自建防火牆,不干擾其他系統服務的防火牆規則
— 以 Docker、Fail2Ban 為例 — 在實際維運環境中,我們常會自己寫一份防火牆腳本來控管流量,例如 NAT、DNAT、上網白名單、時間限制等。但如果主機同時運行 Docker、Fail2Ban、libvirt 等服務,這些服務也會在 iptables 中自動產生規則。若不小心「清空整個防火牆」,就會把它們的規則一併刪除,導致容器、SSH、甚至 fail2ban 全部失效。 本文介紹一個簡潔安全的方式: 建立自有鏈 (custom chains),在不影響其他服務的前提下,自行維護防火牆邏輯。 🧩 為什麼會互相影響? 因為許多服務(像 Docker、Fail2Ban)啟動時都會自動執行: 或建立自己的鏈: 如果我們的腳本中也執行 iptables -F、iptables -X,那就會清空這些鏈的規則,導致: ✅ 解決原則:用「自有鏈」管理,不清整表 我們不再動系統原生的 INPUT、FORWARD、OUTPUT 等預設鏈,而是在它們裡面「插入一次跳轉」到我們自己的鏈,例如: 這樣: 🔧 實作架構範例 建立自有鏈(只清自己的鏈) 🔍 各表的職責清楚分工 Table 主要職責 我們自有鏈功能 filter ACL(放行、封鎖) FW-INPUT, FW-FORWARD(包含上網白名單、時間控管) nat 位址轉換 FW-PREROUTING(DNAT)、FW-POSTROUTING(MASQ / Hairpin) mangle 封包修改 FW-FORWARD(MSS Clamp for PPPoE)…
Understanding VLAN Configuration in Proxmox VE — A Practical Guide
Introduction In a virtualized environment, VLANs (Virtual LANs) play a crucial role in network isolation and segmentation.Within Proxmox VE (PVE), VLANs can be managed through Linux bridges (e.g., vmbr0) combined with VLAN tagging, allowing multiple VMs to share a single physical NIC while staying securely separated across different subnets.This article summarizes my hands-on experience configuring…
Proxmox VE 中的 VLAN 架構與 VM 網路設定實戰指南
前言 在虛擬化環境中,VLAN(Virtual LAN) 是網路隔離與分流的核心機制。在 Proxmox VE (PVE) 裡,透過 Linux Bridge(例如 vmbr0)搭配 VLAN tag,就能讓多個 VM 共用一張實體網卡,卻依然區隔不同子網。這篇文章記錄了我在實際部署過程中對 VLAN 架構的理解與設定步驟,作為日後參考筆記。 一、VLAN 的基本概念 在實體交換器(例如 Unifi、Juniper、Cisco)上,只要對 port 設為 Trunk 模式,允許多個 VLAN 通過,就能讓 Proxmox 的一張 NIC(例如 enp3s0)同時承載多個 VLAN。 二、Proxmox 中的網路邏輯 Proxmox 的網路基礎是 Linux Bridge。當你建立 vmbr0 時,它就像一個虛擬交換器,VM、Container 與實體網卡都能接在上面。 範例: 🔹 說明: 三、在 VM 上設定 VLAN Tag 每台 VM 的網卡(例如 net0)都可以指定 VLAN tag。當…
軟體定義儲存與 Ceph —— 現代資料管理的核心理念
前言 在現代 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,企業能以標準…
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 端設定範例 🔸 系統層設定…