网关 (Gateway)

1. 定义

网关 (Gateway) 是连接两个不同网络、在它们之间转发流量的网络节点。日常最常用的是默认网关 (Default Gateway)——你的设备要访问”本局域网之外”的任何地址(比如互联网)时,包都会先发给它,由它再往外出。它是你这台设备和外部世界之间的”出口”。

类比:网关像小区的大门 / 出口。你家和邻居(同一局域网的各设备)互相串门,在小区内部直接走(二层直连,不用出门);但你要出小区去外面上网、点外卖,必须经过大门(网关),由它把你的包转发出去再路由到目的地。

⚠️ “Gateway” 这词被复用了好几层,别混

  • 网络层网关(本笔记主角):L3 路由器角色,转发 IP 包,是网络的”出口设备”。
  • API 网关:应用层(L7)架构组件,管 API 流量(认证/路由/限流),见 server.md 反向代理一节。
  • OpenClaw 的 Gateway:某个应用(OpenClaw)内部的中央服务进程(WebSocket 服务),和我们这里的网络网关不是一回事,见 ../ai-agent-guide/openclaw.md

2. 核心概念

概念含义
默认网关设备的”下一跳”,通常是家庭/公司路由器的 LAN IP(如 192.168.1.1
路由表 (Routing Table)系统里”去某网段走哪个出口”的规则表;匹配不到具体路由的流量,一律走默认网关
子网 (Subnet)同一子网内设备靠 MAC 二层直连;跨子网才需要经过网关(三层转发)
NAT家庭网关常顺手做 NAT:把内网私有 IP 转成公网 IP 再出网,让多台设备共用一个公网地址
下一跳 (Next Hop)网关收到包后,按自己的路由表决定转发给谁(可能是另一个网关,直至抵达目标)

3. 工作原理:一个包怎么”出门”

设备A 192.168.1.10 ─┐
设备B 192.168.1.11 ─┼─▶ 交换机(二层) ─▶ 网关 192.168.1.1 ─▶ 互联网 / 其他网络
设备C 192.168.1.12 ─┘        (同网段直连)     (三层转发,跨网段才走这)

设备发包时的判断逻辑:

目标 IP 与我很子网?
   ├─ 是(同网段)──▶ ARP 查对方 MAC,二层直送,不过网关
   └─ 否(跨网段/外网)──▶ 发给默认网关,由网关继续路由出去

网关自己也有路由表:它收到跨网包后,看目标网段该走哪个”下一跳”,逐跳转发,直到到达目标网络(或目标主机)。你用 traceroute(Windows tracert)看到的第一跳通常就是你的默认网关

4. 怎么看 / 配置网关

# Linux / macOS:看路由表,default via 后面就是默认网关
ip route                  # 或老命令 route -n
# 输出示例:default via 192.168.1.1 dev eth0
 
# Windows:看 "默认网关"
ipconfig
 
# 验证第一跳是不是网关(traceroute 首跳)
traceroute 8.8.8.8        # macOS/Linux
tracert 8.8.8.8           # Windows
 
# 网关通常由 DHCP 自动分配;也可手动设静态 IP 时填"默认网关"一栏

家庭里网关几乎就是那台无线路由器的 LAN 口 IP;它一身兼多职(路由 + 网关 + NAT + 交换机 + AP),所以你感觉不到”网关”是个独立设备。

5. 辨析:网关 vs 路由器 vs 交换机 vs API 网关

概念工作层干什么例子
交换机 (Switch)L2(数据链路)同网段内靠 MAC 转发家里那台接很多网线的盒子
路由器 / 网关L3(网络)跨网段靠 IP 转发,连接不同网络无线路由器、企业核心路由器
API 网关L7(应用)管 API 流量:认证、路由、限流、聚合Nginx、Kong、云 API Gateway
应用内 Gateway 组件应用层某应用内部的中央服务(如 OpenClaw)../ai-agent-guide/openclaw.md

一句话:交换机管”小区内部串门”,网关/路由器管”出小区去外网”,API 网关管”应用接口的进出口”。 家庭路由器把前两者(交换机+网关)物理上合在一个盒子里了。

6. 典型场景

  • 家庭上网:手机/电脑 → 网关(路由器) → ISP → 互联网。路由器还做 NAT 让全家共用一个公网 IP。
  • 企业网:办公 PC → 三层网关(VLAN 间互访) → 核心网关 → 出口防火墙 → 互联网。
  • 云上:VPC 的 Internet Gateway / NAT Gateway 是云网络里”出网”的网关角色。

7. 常见坑 / 误区

  • ❌ “网关就是路由器” → 网关是角色(网络边界出口),路由器是实现它的设备;家庭路由器同时还是 NAT、交换机、AP。别把角色和设备划等号(呼应 server.md 里”服务器三层含义”的坑)。
  • ❌ “同网段通信也要过网关” → 同子网内是二层直连,不过网关;只有跨子网/出网才走网关。
  • ❌ “网关一定是硬件” → 网关是逻辑角色,软件也能当网关(Linux 开 ip_forward + iptables 转发、容器网络的网关 IP 都是软网关)。
  • ❌ “API 网关和本笔记的网关一样” → 层级不同:网络网关在 L3 转发 IP 包;API 网关在 L7 管 API 流量(见 server.md 反向代理)。
  • ❌ “配了默认网关就一定能上网” → 还要有正确 DNS(域名解析,见 dns-binding.md)和到外网的路由/NAT,三者齐了才通。
  • ❌ “把 OpenClaw 的 Gateway 当成网络网关” → 它只是 OpenClaw 应用里的中央服务进程(WebSocket 服务),不是网络层的出口设备,见 ../ai-agent-guide/openclaw.md

8. 延伸阅读 / 关联概念

  • Socket(套接字) — 通信端点,bind/listen/accept 的底座;见 socket.md
  • TCP / UDP — 网关转发的是这两个传输层协议的包;见 tcp-udp.md
  • HTTP / HTTPS — 出网关后跑的应用层协议;见 http.md
  • DNS 解析绑定 — “配了网关还上不了网”常是 DNS 没配好;见 dns-binding.md
  • ping / traceroutetraceroute 首跳即默认网关,用来验证出口;见 ping.md
  • 服务器原理 — 反向代理/负载均衡是应用层的”流量入口”,与 API 网关呼应;见 server.md
  • 网络安全 — 网关常和防火墙、NAT 一起构成网络出口的安全边界;见 network-security.md
  • OpenClaw 的 Gateway 组件 — 同名但属应用层,别混淆;见 ../ai-agent-guide/openclaw.md