【ip】 NAT


✅ 1. NAT 是什麼?

NAT = Network Address Translation(網絡地址轉換)

簡單講就係:

「喺你家中裝置嘅私有 IP(例如 192.168.1.8),要對外連線時,NAT 會幫你轉換成一個公共 IP,再送出去互聯網。」


✅ 2. 點解會出現 NAT 呢?

因為 IPv4 地址唔夠用!🌏

  • 每個裝置都需要一個 IP 才可以上網
  • 但 IPv4 全世界只得大約 42億個地址
  • 如果每個人部手機、電腦、電視都用公共 IP,根本唔夠分!

所以,IETF 提出咗「私有 IP + NAT」解決方法:

  • 每個家庭 / 公司 用私有 IP(例如 192.168.x.x 自己用
  • 一齊共享一個公共 IP(由 ISP 分配)
  • NAT 就係呢個轉換過程嘅「中介人」

✅ 3. NAT 的實際運作流程

我用一個你屋企上網嘅例子講:

🧠 場景:

你電腦 IP:192.168.1.8
你 router 嘅公共 IP:126.34.12.87

⚙️ 操作流程(簡化):

  1. 你電腦要上 www.xxx.com,發出請求

    1
    2
    複製編輯
    從 192.168.1.8:55234 → xxx.com:443
  2. 路由器接收到,做「地址轉換」:

    • 把來源 IP 改為自己嘅公共 IP(126.34.12.87
    • 把來源 port 換成 NAT 表入面一個可用 port(例如:61312
  3. 傳出去:

    1
    2
    複製編輯
    從 126.34.12.87:61312 → xxx.com:443
  4. 網站返回資料:

    1
    2
    複製編輯
    返回給 126.34.12.87:61312
  5. 路由器查返 NAT 表,知道 61312 係對應 192.168.1.8:55234,就幫你轉返資料傳回屋企電腦。


✅ 4. NAT 表是什麼?

NAT 表(NAT Table) 係路由器記住邊個裝置發出咗邊個連線請求嘅清單。

公共 IP Port 對應私有 IP 私有 Port
126.34.12.87:61312 192.168.1.8 55234
126.34.12.87:61313 192.168.1.9 61022

咁網站回傳資料返嚟時,路由器就知「回邊部機,邊個程式」。


✅ 5. NAT 有幾種形式(簡略介紹)

類型 名稱 用途 / 特點
SNAT Source NAT 把來源 IP 轉換成公共 IP(最常見)
DNAT Destination NAT 把目標 IP 改做內部裝置(例如架網站)
PAT / NAPT Port Address Translation 多部機共用同一 IP,靠 port 區分

✅ 6. NAT 的限制與後果

雖然 NAT 好方便,但佢都有以下幾個「副作用」:

限制 / 問題 說明
無法接收主動連線 外界唔知你係邊個 IP(因為唔公開),你只能主動發起連線
P2P、遊戲、架站麻煩 如果要被連接,就要「開 port」或用 UPnP/NAT-PMP
對 IP 追蹤、定位唔準確 多部裝置共用一個 IP,難分辨係邊部機做咩事

✅ 7. IPv6 時代仲需要 NAT 嗎?

既然 IPv6 已經解決咗 IP 不夠用嘅問題,咁仲需要 NAT 嗎?

其實理論上:

  • IPv6 每個裝置都可以有唯一公共 IP,所以唔需要 NAT
  • 但現實上,安全理由 / 傳統設備未支援,仲有部分 NAT 功能仍保留

🔚 總結一段話:

NAT 就係一個幫你轉換私有 IP 同公共 IP 嘅中介人,佢解決咗 IPv4 IP 唔夠用嘅問題,令到你屋企所有裝置可以用同一個公共 IP 上網。你每次打開網頁、打機、傳訊息,路由器就喺背後不停地幫你做地址轉換!