共享出口与访问规则

在上一个示例中,源 IP 地址在转发过程中并没有改变。但在实际网络环境中,家庭和企业内部通常大量使用 192.168.x.x 这类私有地址。这些地址不能直接在互联网骨干网上路由,也就是说,公网无法识别也无法送达。

那么,家庭或企业里这么多设备,是如何共用一个公网地址访问互联网的呢?答案就在于 NAT、端口映射、防火墙策略,以及必要时的 VPN 等机制。

NAT 与 NAPT 地址与端口转换

NAT(Network Address Translation,网络地址转换) 的核心作用,是在数据包经过网关或边界设备时,对 IP 头部中的地址或端口进行修改,使私有网络中的设备能够与公网主机通信。

家庭宽带中最常见的是 NAPT(Network Address Port Translation,网络地址端口转换),也常被称为 PAT(Port Address Translation,端口地址转换)。

NAPT 的思路很简单:多台内网设备共享同一个公网 IP,而网关通过为每条外发连接分配不同的公网端口,来区分不同设备之间的通信。

例如,家庭宽带的公网出口 IP 为 203.0.113.5。现在有两台内网电脑,都使用本地端口 51842 去访问同一个公网 HTTPS 网站 198.51.100.20:443。

内部原始发起端点经过网关 NAT 转换后的外网端点目标外部服务器端点
192.168.12.170:51842203.0.113.5:40001198.51.100.20:443
192.168.12.180:51842203.0.113.5:40002198.51.100.20:443

整个过程可以这样理解:

  1. 电脑 A 的数据包经过路由器时,路由器会将源 IP 改为 203.0.113.5,源端口改为 40001,并在内部的 NAT 会话映射表中记录一条映射关系:203.0.113.5:40001 ↔ 192.168.12.170:51842。
  2. 电脑 B 的数据包经过路由器时,路由器会将源 IP 改为 203.0.113.5,源端口改为 40002,并记录另一条映射关系:203.0.113.5:40002 ↔ 192.168.12.180:51842。
  3. 外部 Web 服务器看到两个来自同一个公网 IP、但端口不同的请求,会把响应分别发送回 203.0.113.5:40001 和 203.0.113.5:40002。
  4. 路由器收到回包后,查询 NAT 会话映射表,将目的地址还原成对应的内网设备地址,再把数据包交给正确的电脑。

两台内部设备共享出口,回复按端口映射返回各自设备

通过这种方式,成百上千台内网主机只需要一个公网 IPv4 地址,就可以同时访问互联网。这也是 IPv4 地址仍然能够支撑今天庞大网络规模的重要原因之一。

从外部主动访问内网服务:端口映射

默认情况下,NAT 更像是一种“单向通行”机制:内网设备可以主动访问公网,但外部主机不能随意主动访问内网设备。

这是因为公网来的数据包如果直接到达路由器,而路由器在 NAT 会话映射表中找不到对应记录,就无法判断这个数据包应该交给内网中的哪台设备。为了安全起见,路由器通常会直接丢弃这些数据包。

但有些场景确实需要从外部主动访问内网服务。比如,你在家里搭建了一台 Web 服务器,地址是 192.168.12.180:80,希望在公司或外出时也能访问它。这时,就需要在路由器后台配置一条 端口转发(Port Forwarding,也叫端口映射) 规则:

凡是外部访问 203.0.113.5 的 TCP 8080 端口
一律转发给内网 192.168.12.180 的 TCP 80 端口

配置完成后,外部用户访问 http://203.0.113.5:8080 时,路由器就会把请求正确转发到内网的 192.168.12.180:80,从而实现从公网访问内网服务。

需要注意的是,端口映射本质上是在防火墙上打开一个入口,因此应当谨慎使用,尽量只暴露必要端口,并做好服务认证、更新和权限控制。

防火墙的安全过滤策略

防火墙(Firewall) 是网络边界上的安全屏障。它根据管理员预先配置的安全规则,对每一个进入或离开的网络流量进行检查,并决定应该 放行(Allow / Accept),还是 丢弃或拒绝(Drop / Reject)。

防火墙规则通常按照从上到下的顺序逐条匹配。一旦数据包命中某条规则,就会执行该规则对应的动作,并停止继续匹配后面的规则。 因此,规则顺序非常关键。

规则序号流量匹配条件执行动作
Rule 1属于已有合法连接的后续/回复流量(ESTABLISHED)放行
Rule 2源 IP 属于运维管理网 192.168.12.128/26 且目的端口为 TCP 22(SSH)放行
Rule 3目的端口为 TCP 80 或 443(公网 Web 访问)放行
Rule 4所有其他入站流量(Default Drop)直接拒绝

这套规则体现了一种常见的安全思路:先允许必要流量,最后默认拒绝所有流量。这样即使管理员漏配某条规则,也不会轻易让未知流量进入网络。

现代防火墙普遍支持 有状态检测(Stateful Inspection)。它不只是简单看数据包的 IP 和端口,还会跟踪 TCP 连接的完整状态。

例如,当内网主机主动发起外网访问时,防火墙会记住这条连接。外部服务器返回的数据包虽然是从公网进入内网,但因为它属于已有合法连接的回包,防火墙可以自动允许通过,而不需要为外部公网 IP 单独开放大量入站规则。

VPN:穿越公网的安全加密隧道

如果企业员工在家办公,但又需要安全访问公司内部系统,最常用且最标准的方案是 VPN(Virtual Private Network,虚拟专用网络)。

VPN 的目标很明确:在不可信的公共互联网上,建立一条逻辑上的专用安全通道。

员工电脑运行 VPN 客户端,与公司的 VPN 网关之间建立端到端加密的虚拟隧道。原本要访问公司内网的数据包会被高强度加密,并封装在普通公网数据包中传输。数据穿过互联网后,到达公司 VPN 网关,再由网关解密并还原出原始内网数据包,最终交付给内部服务器。

远程电脑把内层数据包送入 VPN 隧道,再由网关送往校内服务

从公网中间设备或攻击者角度看,这些流量往往只是普通加密数据,难以直接判断其真实内容和目的地。这样,企业就不需要为每一位远程员工开放端口映射,也不必让员工直接暴露公网攻击面,就能实现安全的内网远程访问。