✅ 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
⚙️ 操作流程(簡化):
你電腦要上
www.xxx.com
,發出請求1
2複製編輯
從 192.168.1.8:55234 → xxx.com:443路由器接收到,做「地址轉換」:
- 把來源 IP 改為自己嘅公共 IP(
126.34.12.87
) - 把來源 port 換成 NAT 表入面一個可用 port(例如:
61312
)
- 把來源 IP 改為自己嘅公共 IP(
傳出去:
1
2複製編輯
從 126.34.12.87:61312 → xxx.com:443網站返回資料:
1
2複製編輯
返回給 126.34.12.87:61312路由器查返 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 上網。你每次打開網頁、打機、傳訊息,路由器就喺背後不停地幫你做地址轉換!