> For the complete documentation index, see [llms.txt](https://docs.ipcheck.ing/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ipcheck.ing/knowledge-base/zh-tw/concepts/public-private-cgnat.md).

# 公用、私有與 CGNAT 位址

哪些 IP 範圍屬於私有、NAT 實際上做了什麼，以及為什麼你的供應商可能會讓你處於第二層位址共享之後。

你的路由器顯示你的位址是 `192.168.1.14`。某個網站則顯示是 `203.0.113.42`。哪一個才是真的？

兩者都是。它們是不同層級的位址，而理解這個差異能很好地解釋家用網際網路是如何運作的。

## 兩種位址

把它想成一棟辦公大樓。這棟大樓有一個郵政系統知道的街道地址。大樓裡的每張桌子都有一個只有在這棟大樓內才有意義的房號。

IP 位址的運作方式也是一樣的。

* A **公用位址** 在整個網際網路上是唯一的。網站看到的就是它。
* A **私有位址** 只在某個區域網路內有意義。數百萬個家庭可以在同一時間使用完全相同的私有位址，而且這完全沒問題，因為這些位址永遠不會穿越網際網路。

某些 IPv4 範圍保留供私人使用。它們定義在一份名為 RFC 1918 的文件中，你會認得它們：

| 範圍                                | 寫作               | 你通常會在哪裡看到     |
| --------------------------------- | ---------------- | ------------- |
| `10.0.0.0` – `10.255.255.255`     | `10.0.0.0/8`     | 較大的家用、辦公與校園網路 |
| `172.16.0.0` – `172.31.255.255`   | `172.16.0.0/12`  | 企業網路、容器網路     |
| `192.168.0.0` – `192.168.255.255` | `192.168.0.0/16` | 幾乎每台家用路由器     |

還有幾個其他範圍也很特別。 `127.0.0.1` 永遠表示「這台裝置本身」。以 `169.254` 開頭的位址表示你的裝置無法取得正常位址，於是自己編了一個。

如果你電腦上的位址以這些開頭，那它就是私有位址。它無法直接接收來自網際網路的流量。

## NAT：接待員

如果你的筆電有一個網際網路無法直接到達的私有位址，網頁又要怎麼回到你這裡？

你的路由器會執行 **網路位址轉譯**，也就是 NAT。

當你的筆電送出請求時，路由器會把送出端位址從私有位址改寫成路由器自己的公用位址，並記下這個請求是從哪台內部裝置來的。當回覆到達時，路由器會查閱它的紀錄，並把回覆轉交給正確的裝置。

這就像那棟辦公大樓裡的接待員。寄出的郵件會帶著大樓的街道地址。收到的郵件會先送到櫃檯，而接待員知道要把它送到哪個房間——因為他們記下了原始信件是誰寄出的。

```mermaid
flowchart LR
    A["筆電<br/>192.168.1.14"] --> R
    B["手機<br/>192.168.1.22"] --> R
    C["電視<br/>192.168.1.31"] --> R
    R["家用路由器<br/>NAT"] --> I["網際網路<br/>看到 203.0.113.42"]
```

這就是為什麼你家裡的每台裝置在網站眼中都會顯示為同一個位址。

NAT 並不是為了安全而發明的，但它有一個像安全機制一樣的副作用：因為路由器的紀錄中沒有任何人請求過的流量註記，未經請求的進站連線沒有地方可去，於是就會被丟棄。

## CGNAT：第二位接待員

現在再加上 [IPv4 與 IPv6](/knowledge-base/zh-tw/concepts/ipv4-vs-ipv6.md)中的 IPv4 位址短缺。沒有足夠的公用位址讓每位客戶都擁有一個。

因此許多供應商會在自己的網路中第二次套用 NAT。你的路由器仍然會把家中裝置轉譯到一個位址上——但那個位址也不是公用的。它是另一個共享位址，而供應商的設備會再把它轉譯成與許多其他客戶共享的公用位址。

這就是 **業者級 NAT**，通常縮寫為 CGNAT。

```mermaid
flowchart LR
    D["您的裝置<br/>192.168.x.x"] --> R["家用路由器"]
    R --> C["ISP 位址<br/>100.64.x.x"]
    C --> G["業者 NAT"]
    G --> P["公用位址<br/>與<br/>其他客戶共享"]
    P --> I["網際網路"]
```

中間層有一段專用的位址範圍： **`100.64.0.0/10`**，涵蓋 `100.64.0.0` 到 `100.127.255.255`。這段範圍是專門保留給業者級 NAT 使用的，所以如果你路由器自己的「WAN」或「internet」位址落在這個範圍內，就表示你位於 CGNAT 之後。有些供應商會改用其他範圍，所以反過來並不能證明什麼。

## 供應商為什麼要這麼做

* IPv4 位址既稀少又昂貴。讓數十或數百位客戶共享一個公用位址，可以省下非常多成本。
* 行動網路多年來一直都採用這種方式，因為它們有龐大的訂戶數量，卻只有很少的位址。
* 一般瀏覽時幾乎看不出來，所以大多數客戶從來不會注意到。

## CGNAT 會帶來的代價

對於看新聞和看影片來說，沒什麼影響。對於任何需要外界能夠到達 *在*裡面的東西，就有影響了。

* **埠轉發無法運作。** 你無法在家用路由器上開啟某個埠，然後期待外部能連到它，因為供應商的 NAT 位在它上層，而且不知道你的規則。
* **自架服務會變得很困難。** 家用伺服器、想遠端查看的監視攝影機、個人檔案共享——這些都會變得難以使用。
* **某些遊戲與點對點應用程式會變差。** 它們仍然能用，但連線可能會退回中繼伺服器，因而增加延遲。這通常會被報告為「嚴格」或「中等」NAT 類型。
* **你會共用一個聲譽。** 如果同一個公用位址後面的其他客戶行為不良，CAPTCHA 或封鎖也可能落到你頭上。
* **你看起來所在的位置可能會偏移。** 供應商的出口點可能在與你不同的城市。參見 [為什麼我的 IP 位置錯了？](/knowledge-base/zh-tw/diagnose/why-is-my-ip-location-wrong.md).

通常的解法是向你的供應商申請一個公用 IPv4 位址（有時免費，有時需付費），或使用 IPv6，因為 IPv6 的位址數量足夠，不需要 CGNAT。

## 常見誤解

**「私有位址表示我很匿名。」** 不是。網站永遠看不到你的私有位址；它們看到的是公用位址。你的私有位址不是偽裝，它只是一個房號。

**「我的路由器顯示 192.168.1.1，所以我沒有位於 CGNAT 之後。」** 那是你的路由器在 *內部*的位址。真正重要的是它面向網際網路那一側的位址。

**「NAT 就是防火牆。」** 它確實會因副作用而阻擋未經請求的進站連線，這真的很有用，但它不是安全產品，也無法處理出站流量，或任何已經在你網路內的東西。

**「CGNAT 代表我的連線很慢。」** 不直接是。它只會增加一點點處理負擔，但你感受到的影響主要是可達性，而不是速度。

{% hint style="info" %}
**在 MyIP 上親自看看**

不確定自己屬於哪一邊嗎？請查看 [我是否位於 CGNAT 之後？](/knowledge-base/zh-tw/diagnose/am-i-behind-cgnat.md)，它會比較你的路由器回報的位址與 MyIP 看到的公用位址，並向你展示 `100.64.x.x` 位址在實際上代表什麼。
{% endhint %}

## 相關概念

* [IPv4 與 IPv6](/knowledge-base/zh-tw/concepts/ipv4-vs-ipv6.md) —— 為什麼位址一開始會不夠用
* [什麼是 WebRTC？](/knowledge-base/zh-tw/concepts/what-is-webrtc.md) —— 應用程式如何繞過 NAT 直接連線
* [GeoIP：IP 地理定位如何運作](/knowledge-base/zh-tw/concepts/geoip-explained.md) —— 為什麼共享出口會改變你看起來的位置
* [為什麼網站看到不同的 IP？](/knowledge-base/zh-tw/diagnose/why-do-sites-see-a-different-ip.md)
* [IP 計算器](/knowledge-base/zh-tw/lookup-privacy/ip-calculator.md) —— 貼上任何位址，就能查看它屬於哪個保留區塊，以及定義它的 RFC


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ipcheck.ing/knowledge-base/zh-tw/concepts/public-private-cgnat.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
