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

2026/04/27

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.1
  • 10.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)。


如何查看你的 Gateway

Linux(使用 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

常見問題(FAQ)

Q1: 路由器和 Gateway 是同一件事嗎?

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

Q2: 為什麼需要 Default Gateway?直接連網際網路不行嗎?

你的電腦連接的是區域網路(LAN),區域網路使用的是私有 IP(如 192.168.1.100),這個 IP 在網際網路上是無效的。Default Gateway(路由器)負責:

  1. 把你的私有 IP 透過 NAT 轉換成公有 IP
  2. 在你的封包和網際網路之間做橋接
  3. 管理進出的流量(防火牆功能)

如果沒有設定 Default Gateway,你的電腦就像一個沒有出口的房間,只能和同一個房間(同一個網段)裡的設備通訊。

Q3: 可以設定多個 Gateway 嗎?

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