Gateway 是什麼?網路閘道器完整教學

Gateway 是什麼?網路閘道器完整教學

Gateway(閘道器)是網路通訊中負責「跨網段轉發封包」的關鍵設備。當你的電腦要連上網際網路,或是與不同子網路的設備通訊,封包都必須先經過 Gateway。本文用白話解說 Gateway 的定義、運作原理、查看與設定方式,並示範常見問題排查。

更多網路基礎概念,請參考 IP、Subnet Mask、Gateway 完整教學。

什麼是 Gateway?Gateway 的定義Gateway(閘道器,也稱為預設閘道,Default Gateway)是一台在不同網路之間轉發封包的設備,通常就是你家裡或公司的路由器(Router)。

用生活中的例子來比喻:假設你住在台北,要寄一封信給高雄的朋友。你不會直接跑去高雄投遞,而是先把信投進附近的郵筒(Gateway),再由郵局系統(網際網路路由)一站一站地把信送到目的地。Gateway 扮演的就是這個「第一個郵筒」的角色——你只需要知道它在哪裡,剩下的路由工作交給它處理。

Default Gateway(預設閘道)在實際設定中,我們通常設定的是 Default Gateway(預設閘道)。它的意思是:當設備的路由表中找不到更精確的路由規則時,就把封包送到這個預設的 Gateway,由它決定下一步怎麼走。

家用環境中,Default Gateway 幾乎都是你的 Wi-Fi 路由器,常見 IP 為:

192.168.1.1(最常見)192.168.0.110.0.0.1你可以把 Default Gateway 理解成你的網路「出口」:所有要離開你的區域網路的流量,都要先經過它。

Gateway 的運作原理封包轉發的決策步驟當你的電腦(假設 IP 為 192.168.1.100/24)要發送一個封包到目標 IP,以下是系統的判斷流程:

步驟 1:判斷目標是否在同一個網段

電腦會用自己的 Subnet Mask(255.255.255.0)對自己的 IP 和目標 IP 各做一次 AND 位元運算:

自己的網路位址:

192.168.1.100 AND 255.255.255.0 = 192.168.1.0

目標 IP 142.250.185.78 的網路位址:

142.250.185.78 AND 255.255.255.0 = 142.250.185.0

兩個結果不同 → 不在同一個網段

步驟 2:同網段 — 直接 ARP 查詢

如果目標 IP 和自己在同一個網段(例如目標是 192.168.1.200),電腦會發送 ARP(Address Resolution Protocol)廣播,詢問「誰的 IP 是 192.168.1.200?請告訴我你的 MAC Address」,然後直接在區域網路內傳送。

步驟 3:不同網段 — 送往 Gateway

如果目標不在同一個網段,電腦查詢路由表,找到 Default Gateway(192.168.1.1),用 ARP 查出路由器的 MAC Address,然後把封包的目標 MAC Address 填成路由器的 MAC,將封包送給路由器。

步驟 4:Gateway 查詢路由表繼續轉發

路由器收到封包後,查詢自己的路由表,決定下一個 hop(跳點)是哪裡,再往前傳。這個過程在網際網路上會重複多次,直到封包抵達目的地。

路由表(Routing Table)路由表是每台設備(包含路由器和一般電腦)都有的一份清單,記錄了「要到達某個網段,應該往哪個方向送」。

# Linux 查看路由表

ip route show

# 典型輸出

default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.100 metric 100

# ↑ default = 所有找不到精確路由的封包,都送到 192.168.1.1(Gateway)

192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100

# ↑ 目標是 192.168.1.0/24 網段的封包,直接從 eth0 介面送出(不需要 Gateway)

路由表的匹配規則是最長前綴匹配(Longest Prefix Match):越精確的路由規則優先級越高,只有在所有規則都不符合時,才會落到 default 那條(也就是送往 Gateway)。

如何查看你的 GatewayLinux(使用 ip route)# 方法一:查看完整路由表

ip route show

# 方法二:只看預設路由(Gateway)

ip route show default

# 輸出範例

# default via 192.168.1.1 dev eth0

# 方法三:舊版指令(部分系統仍支援)

route -n

# 輸出範例

# Destination Gateway Genmask Flags Metric Ref Use Iface

# 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0

# 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0

# Destination 為 0.0.0.0(代表 default),Gateway 欄位就是 192.168.1.1

macOS(使用 netstat -nr)# 查看路由表,-n 不解析主機名稱,-r 顯示路由

netstat -nr

# 或者只看 IPv4 預設路由

netstat -nr | grep default

# 輸出範例

# default 192.168.1.1 UGScg en0

# 第二欄 192.168.1.1 就是 Gateway

# macOS 也可以用

route get default

# 輸出範例

# route to: default

# destination: default

# mask: default

# gateway: 192.168.1.1 ← 這就是 Gateway

# interface: en0

Windows(使用 ipconfig)# 查看網路設定,包含 Gateway

ipconfig

# 輸出範例

# 無線區域網路介面卡 Wi-Fi:

# 連線特定 DNS 尾碼 . . . . . .:

# IPv4 位址 . . . . . . . . . . : 192.168.1.100

# 子網路遮罩 . . . . . . . . . . : 255.255.255.0

# 預設閘道 . . . . . . . . . . . : 192.168.1.1

# ↑ 「預設閘道」就是 Gateway

如何設定 Gateway臨時設定(重開機後失效)這種方式適合臨時測試,重開機或重啟網路服務後設定就會消失。

# 新增預設路由(設定 Gateway)

sudo ip route add default via 192.168.1.1 dev eth0

# 如果已有預設路由,需要先刪除再新增

sudo ip route del default

sudo ip route add default via 192.168.1.1 dev eth0

# 驗證

ip route show default

永久設定(Ubuntu,使用 Netplan)Ubuntu 18.04 以後使用 Netplan 管理網路設定,設定為永久生效。

# 找到 Netplan 設定檔

ls /etc/netplan/

# 通常是 01-netcfg.yaml 或 00-installer-config.yaml

# 編輯設定檔

sudo nano /etc/netplan/01-netcfg.yaml

設定靜態 IP 和 Gateway 的範例:

network:

version: 2

ethernets:

eth0:

dhcp4: false # 關閉自動取得 IP

addresses:

- 192.168.1.100/24 # 靜態 IP(CIDR 格式)

routes:

- to: default

via: 192.168.1.1 # 設定 Gateway

nameservers:

addresses:

- 8.8.8.8 # DNS 伺服器

# 套用設定(立即生效)

sudo netplan apply

# 驗證

ip route show

永久設定(CentOS/RHEL,使用 nmcli)# 查看目前連線名稱

nmcli connection show

# 設定 Gateway

nmcli connection modify eth0 ipv4.gateway 192.168.1.1

# 重新連線套用設定

nmcli connection up eth0

# 驗證

ip route show

Gateway 需要搭配 Subnet Mask 使用,詳見 Subnet Mask 是什麼?。

Gateway 常見問題排查問題 1:無法連上網際網路當你無法上網時,先確認 Gateway 是否可達:

# 步驟 1:先確認自己有 IP 位址

ip addr show

# 步驟 2:查看 Gateway IP

ip route show default

# 記下 via 後面的 IP(例如 192.168.1.1)

# 步驟 3:ping Gateway,確認區域網路通訊正常

ping -c 4 192.168.1.1

# 如果有回應:Gateway 可達,問題可能在 Gateway 以外(ISP 或 DNS)

# 如果沒有回應:Gateway 不可達,問題在區域網路層面

問題 2:ping Gateway 沒有回應# 確認自己的 IP 和 Gateway 在同一個網段

ip addr show eth0

# 例如 IP 是 192.168.1.100/24,那 Gateway 應該是 192.168.1.x

# 確認路由表正確

ip route show

# 如果 Gateway 設定錯誤,重新設定

sudo ip route del default

sudo ip route add default via 192.168.1.1 # 替換成正確的 Gateway IP

問題 3:使用 traceroute 追蹤封包路徑traceroute 可以顯示封包從你的電腦出發,每經過一個路由器(hop)的 IP 和延遲:

# Linux/macOS

traceroute google.com

# Windows

tracert google.com

# 輸出範例(簡化)

# traceroute to google.com (142.250.185.78), 30 hops max

# 1 192.168.1.1 (192.168.1.1) 2.345 ms ← 第一跳就是你的 Gateway

# 2 10.20.30.1 (10.20.30.1) 15.234 ms ← ISP 的路由器

# 3 ...

# 10 142.250.185.78 30.123 ms ← 目標伺服器

第一個 hop 通常就是你的 Gateway(家用路由器)。如果第一跳就逾時(* * *),代表 Gateway 有問題。

問題 4:「No route to host」錯誤這個錯誤通常代表路由表中沒有可以到達目標 IP 的路由:

# 查看路由表確認有 default 路由

ip route show

# 如果沒有 default 路由,新增它

sudo ip route add default via 192.168.1.1

# 確認 Gateway 本身可達

ping -c 2 192.168.1.1

Gateway 與 NAT 轉換家用路由器除了當 Gateway 轉發封包,還負責 NAT(Network Address Translation) —— 將區域網路的私有 IP 轉換為公有 IP,讓所有內部設備共用一個公網 IP 上網。

NAT 的運作流程你的電腦 路由器(Gateway + NAT) Internet

192.168.1.100:54321 → [來源 IP 替換為公有 IP] → 203.75.100.50:54321 → 8.8.8.8:443

← [目標 IP 還原為私有 IP] ← 203.75.100.50:54321 ← 8.8.8.8:443

NAT 轉換表(路由器內部維護):

┌──────────────────────┬─────────────────────────┬───────────────┐

│ 內部位址 │ 外部位址 │ 目標 │

├──────────────────────┼─────────────────────────┼───────────────┤

│ 192.168.1.100:54321 │ 203.75.100.50:54321 │ 8.8.8.8:443 │

│ 192.168.1.101:60001 │ 203.75.100.50:60001 │ 8.8.8.8:443 │

│ 192.168.1.102:45678 │ 203.75.100.50:45678 │ 1.1.1.1:53 │

└──────────────────────┴─────────────────────────┴───────────────┘

路由器靠「來源 Port」區分不同內部設備的連線,這就是為什麼多台電腦能同時上網卻只用一個公有 IP。

封包經過 Gateway 時的 MAC 位址變化封包穿過 Gateway 時,IP 位址不變(NAT 情況除外),但 MAC 位址會被改寫:

PC (192.168.1.100) → 路由器 (192.168.1.1) → 目標 (142.250.185.78)

第一段(LAN 內):

來源 MAC: PC 的 MAC

目標 MAC: 路由器的 MAC ← Gateway 的 MAC

來源 IP: 192.168.1.100

目標 IP: 142.250.185.78

第二段(WAN):

來源 MAC: 路由器的 WAN MAC

目標 MAC: 下一跳路由器的 MAC ← 每一跳都會改變

來源 IP: 203.75.100.50 ← NAT 後的公有 IP

目標 IP: 142.250.185.78

這就是為什麼 Gateway 需要先透過 ARP 查詢取得下一跳的 MAC 位址。

雲端環境中的 Gateway在 AWS、GCP、Azure 等雲端環境中,Gateway 的概念被延伸為多種類型:

Gateway 類型用途對應場景Internet Gateway(IGW)VPC 連接 Internet 的出口公有子網路的 EC2 上網NAT Gateway讓私有子網路存取 Internet私有 EC2 下載套件、更新Virtual Private GatewayVPC 連接 VPN / Direct Connect混合雲架構Transit Gateway多個 VPC 間的中樞路由大型企業多帳號架構API GatewayHTTP API 的統一入口微服務架構的 API 管理雲端 VPC 架構中的 Gateway:

┌─────────────────────────────────────────────────────┐

│ VPC: 10.0.0.0/16 │

│ │

│ ┌─────────────────────────┐ Internet Gateway │

│ │ Public Subnet 10.0.1.0/24 │──────────────────→ Internet

│ │ Web Server (有 Public IP) │ │

│ └─────────────────────────┘ │

│ │

│ ┌─────────────────────────┐ NAT Gateway │

│ │ Private Subnet 10.0.2.0/24│──────────────────→ Internet

│ │ App Server (僅內部 IP) │ (只能出不能入) │

│ └─────────────────────────┘ │

│ │

│ ┌─────────────────────────┐ Virtual Private GW │

│ │ Private Subnet 10.0.3.0/24│──────────────────→ 企業機房

│ │ DB Server │ (VPN/專線) │

│ └─────────────────────────┘ │

└─────────────────────────────────────────────────────┘

要點:雲端的路由表設定方式和 Linux 相似,只是透過 Console/CLI 設定。例如 AWS 中將 0.0.0.0/0 指向 Internet Gateway 等同於 Linux 中 ip route add default via

常見問題(FAQ)Q1: 路由器和 Gateway 是同一件事嗎?在家用環境中,兩者通常指的是同一台設備。路由器(Router)是設備名稱,Gateway(閘道器)是功能描述。你家的路由器同時承擔了 Gateway(對外連線的出口)、DHCP 伺服器(分配 IP 給區域網路設備)、DNS 轉發等多種功能。在企業網路中,Gateway 可能是獨立的防火牆設備,和一般的路由器分開。

Q2: 為什麼需要 Default Gateway?直接連網際網路不行嗎?你的電腦連接的是區域網路(LAN),區域網路使用的是私有 IP(如 192.168.1.100),這個 IP 在網際網路上是無效的。Default Gateway(路由器)負責:

把你的私有 IP 透過 NAT 轉換成公有 IP在你的封包和網際網路之間做橋接管理進出的流量(防火牆功能)如果沒有設定 Default Gateway,你的電腦就像一個沒有出口的房間,只能和同一個房間(同一個網段)裡的設備通訊。

Q3: 可以設定多個 Gateway 嗎?可以,但需要搭配路由規則(Policy Routing)管理。一般情況下,一台設備只設定一個 Default Gateway(預設所有流量走這條)。如果有多條網路連線(例如同時接了兩個 ISP),可以透過路由表設定不同目標網段走不同的 Gateway,或是使用 ip rule 設定更進階的策略路由。這在企業或伺服器環境中較常見,家用環境幾乎不需要。

延伸閱讀:

IP、Subnet Mask、Gateway 完整教學 — 網路基礎三劍客一篇搞懂Subnet Mask 是什麼? — 搞懂子網路遮罩與 CIDR 劃分Cron Job 完整教學 — 用排程自動監控 Gateway 可達性Backoff 退避策略教學 — 網路請求失敗時的重試與退避機制

猜你喜欢 💖

Freestyle伴奏/不止新手使用的Battle Beat
365会被黑吗

Freestyle伴奏/不止新手使用的Battle Beat

📅 10-29 👁️ 2213
菜鸡狗app
365会被黑吗

菜鸡狗app

📅 01-31 👁️ 5689
放马过来英语怎么说
365会被黑吗

放马过来英语怎么说

📅 07-18 👁️ 5555