Like Share Discussion Bookmark Smile

J.J. Huang   2025-11-16   Linode OpenVPN   瀏覽次數:次   DMCA.com Protection Status

Cloud | Linode VLAN 架構下的 OpenVPN + Nginx

💬 前言

這篇文章主要是我在 Linode 上建置 OpenVPN Server + VLAN 架構 的過程紀錄,算是一份技術筆記,方便自己與後續需要的人參考。

由於時間與精力有限,無法像過去那樣撰寫非常詳細的教學,也沒有辦法補上太多圖片或逐步截圖。
因此本文的重點會放在 核心流程、關鍵設定檔、以及常見注意事項,而不是完整的圖文教學。
如果你需要更完整的操作細節,建議搭配 Linode 官方文件與 OpenVPN 官方指南一起參考。

這篇筆記的目的在於:

  • 紀錄:保留我自己在實作過程中的設定與思路,方便未來回顧。
  • 分享:讓有類似需求的人能快速理解架構與操作方向。
  • 提醒:補充一些容易忽略的細節與安全性考量,避免常見錯誤。

📌 為什麼需要這套架構?

在雲端環境中,許多服務(例如 Web、資料庫、API)不適合直接暴露在公網上,否則容易成為攻擊目標。
因此需要一個安全的方式,讓使用者能 遠端連線到內部網段,同時保持服務的隔離性與可控性。

這套架構的需求主要來自以下幾點:

  • 安全性:避免內部服務直接暴露在公網,透過 VPN + VLAN 隔離流量。
  • 可控性:所有用戶端必須先通過 OpenVPN Server 驗證,才能進入 VLAN 網段。
  • 擴展性:支援多用戶、多裝置,並可進一步整合雙因子驗證或自建 DNS。
  • 實用性:適合 DevOps、測試環境、小型企業,甚至個人專案的安全連線需求。

換句話說,這篇筆記的核心目標是:
👉 在 Linode 上快速建置一個安全的 OpenVPN Server,並透過 VLAN 架構來隔離與保護內部服務。


🧭 架構說明

本手冊針對以下架構進行建置與驗證:

  • 雲端平台:Linode(可替換為任意支援 VLAN 的雲服務)

  • 虛擬機配置:

    • vpn-server:OpenVPN Server,負責用戶端連線與內部路由
    • nginx-server:內部服務節點,僅開放 VLAN 內部存取
  • 網路拓撲:

    • VLAN:192.168.100.0/24,作為內部服務網段
    • VPN Client:10.8.0.0/24,OpenVPN 分配給用戶端的虛擬網段
    • VPN Server 透過 NAT 與路由,讓 VPN Client 可存取 VLAN 內部資源
1
2
[VPN Client] ←→ [vpn-server] ←→ [nginx-server]
10.8.0.x 192.168.100.10 192.168.100.20

⚙️ 環境雙機架構

🖥️ VM1:OpenVPN Server

項目 設定值
主機名稱 vpn-server
作業系統 Ubuntu 22.04 LTS
公網 IP 自動分配(供 VPN Client 連線)
VLAN IP 192.168.100.10
功能 提供 OpenVPN 服務,負責用戶端連線與路由轉送
開放 Port 1194/UDP(VPN)、22/TCP(SSH 管理)

🖥️ VM2:內部服務節點(nginx)

項目 設定值
主機名稱 nginx-server
作業系統 Ubuntu 22.04 LTS
公網 IP 自動分配(僅限 VLAN 內部存取)
VLAN IP 192.168.100.20
功能 提供內部 Web 服務(nginx welcome page)
開放 Port 80/TCP(僅限 VLAN 內部)

🌐 VLAN 設定

項目 設定值
VLAN 名稱 vlan100
CIDR 範圍 192.168.100.0/24
用途 內部服務網段,VPN Client 可透過路由存取

📡 VPN Client 設定(連線後)

項目 設定值
分配網段 10.8.0.0/24
路由推送 192.168.100.0/24
DNS 推送 8.8.8.8(可自訂)

📝 筆記章節

👌 結語

本文主要紀錄在 Linode 上建置 OpenVPN Server + VLAN 架構 的過程。
這不是完整的教學,而是技術筆記,方便自己與後續需要的人快速理解架構與操作方向。