Like Share Discussion Bookmark Smile

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

Cloud | Nginx Server 建置手冊(Linode + VLAN 架構)

💬 前言

這篇文章是一份技術筆記,紀錄我在 Linode 上建置 Nginx Server + VLAN 架構 的過程。
內容僅涵蓋核心流程與設定檔,沒有完整的手把手教學或大量圖片,主要方便自己與後續需要的人快速參考與重現。

這個 Nginx Server 的角色定位是 內部服務節點,僅允許 VLAN 內部或透過 VPN 存取,避免直接暴露在公網上。

📝 筆記

建立 Linode VM(nginx-server)

  1. 登入 Linode 控制台
  2. 點選「Create → Linode」
  3. 設定以下參數:
    • Region:選擇離用戶最近的地區
      • 例:JP, Tokyo 3 (jp-tyo-3)
    • Image:Ubuntu 22.04 LTS
    • Linode Plan:Shared CPU → 最小即可(如 Nanode 1 GB)
    • Labelnginx-server
    • Root Password:設定安全密碼
    • VLAN
      • VLAN 名稱vlan100
      • IPAM Address (optional)192.168.100.20/24
  4. 建立完成後,記下公網 IP(供 VPN Client 連線)
  5. 關閉 Linode 的自動網路設定(Auto-configure networking)
    • 在 Linode 控制台中,點選該 VM → Configurations → Edit
    • 找到「Network Helper」或「Auto-configure networking」選項,取消勾選

      📝 這樣可以避免 Linode 在開機時自動覆蓋你的 /etc/network/interfaces 或 netplan 設定;避免自動插入 iptables NAT/MASQUERADE 規則,確保你的手動防火牆設定不被干擾;適合需要自訂 VLAN、VPN、防火牆、靜態 IP 的架構

  6. 修改後請重新啟動 VM 讓設定生效

連線至 VM

1
ssh root@<你的公網 IP>

安裝 nginx

1
2
apt update
apt install nginx -y

啟動 nginx:

1
2
systemctl enable nginx
systemctl start nginx

準備一個靜態頁面供驗證使用

建立一個簡單的 HTML 頁面,放在 nginx 的預設目錄 /var/www/html/

1
2
3
4
5
6
7
8
9
10
11
12
13
tee /var/www/html/index.html > /dev/null <<EOF
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8">
<title>主系統測試頁面</title>
</head>
<body>
<h1>✅ VPN 連線成功!</h1>
<p>你已成功透過 OpenVPN 存取 VLAN 內部服務。</p>
</body>
</html>
EOF

重新啟動 nginx 以確保設定生效:

1
systemctl restart nginx

🔥 防火牆設定

⚠️ 防火牆如果不設定,外網、VLAN 和 VPN 都是可以正常開啟 nginx 的。

清除舊規則

觀看目前 iptables INPUT 設定:

1
iptables -L INPUT -v -n

清除 INPUT 規則:

1
iptables -F INPUT

建立規則:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 允許 VLAN 來源的所有連線(內部設備)
iptables -A INPUT -s 192.168.100.0/24 -j ACCEPT

# 允許已建立或相關的回應封包
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# 允許本機 loopback
iptables -A INPUT -i lo -j ACCEPT

# 允許外部 SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 允許外部 MySQL(若你要遠端連資料庫)
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

# 允許外部 連到主系統 (http 80 https 443 對外)
#iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 拒絕其他所有進來的封包(預設封鎖)
iptables -A INPUT -j DROP

儲存規則(讓開機自動套用)

使用 iptables-persistent 套件:

1
apt install iptables-persistent

⚠️ 安裝過程中會提示你是否要儲存目前的規則,選「是」。

手動儲存指令:

1
netfilter-persistent save

📝 紀錄的位置:/etc/iptables/rules.v4

👌 結語

本文主要紀錄了在 Linode 上建置 Nginx Server + VLAN 架構 的過程,包含 VM 建置、Nginx 安裝、靜態頁面驗證,以及防火牆規則設定。
這不是完整的教學,而是一份技術筆記,重點在於 核心流程與安全性考量

⚠️ 提醒

  • 請依照自身需求調整防火牆規則(是否開放 80/443、MySQL 等)。
  • 建議搭配 Linode 官方文件與 Nginx 官方指南,確保設定符合最新版本與最佳實踐。
  • 若與 OpenVPN Server 搭配,務必確認 VLAN 與路由設定正確,避免流量無法通過。

這份筆記的目的在於提供一個可重現的基礎架構,讓內部服務能安全地透過 VPN 存取,同時保持網路隔離與安全性。