易君召
发布于 2026-08-25 / 作者:易君召 / 2 阅读
0

端口映射(Port Mapping)基本概念介绍

别名:端口转发、NAT 端口映射,最常见就是路由器做的端口映射。

一句话通俗理解

外网的机器想访问你家里局域网内部某台设备的某个端口,路由器不知道把流量发给内网哪台电脑,端口映射就是告诉路由器:只要收到访问我公网 IP 的 X 端口的流量,全部转发给内网某台机器的 Y 端口

举生活类比: 家里是一栋大楼(内网),大楼只有 1 个对外总门牌号(公网 IP),楼里面每个房间没有对外门牌。外面信件只能寄给大楼总门牌号。 端口映射 = 在门卫(路由器)登记:凡是寄到大楼【8080 号信箱】的信件,全部转给 302 房间的【80 号信箱】

核心名词拆解

  1. 内网(局域网 LAN):家里 / 公司路由器下面的设备,比如你的 NAS、开发电脑、树莓派,IP 一般是 192.168.x.x10.x.x.x这些 IP 互联网不能直接访问

  2. 公网 IP(WAN 口 IP):路由器对外的互联网地址,互联网上其他设备可以找到这个 IP。

  3. 端口:一台机器上的服务编号,一台主机可以跑很多服务,靠端口区分:80 网页、22SSH、3389 远程桌面等。

  4. NAT:路由器的网络地址转换,负责内网多台设备共用一个公网 IP 上网。NAT 默认外网不能主动进来,端口映射就是 NAT 的 “开门规则”

端口映射四要素(配置的时候必须填)

参数

含义

外部端口

公网访问用的端口,外网用户访问 公网IP:外部端口

内网 IP 地址

局域网里面那台设备的 IP,如192.168.1.100

内部端口

内网机器上服务真正监听的端口

协议

TCP / UDP / TCP+UDP,看你的服务用什么

示例配置:

外部端口:9000,内网 IP:192.168.1.50,内部端口:80,协议 TCP

效果: 外网访问 你的公网IP:9000 → 路由器收到 → 转发给内网 192.168.1.50:80

✨外部端口和内部端口可以不一样,也可以填一样。

两种容易混淆的东西

1)路由器端口映射(DNAT,目的地址转换)

  • 方向:外网 → 内网

  • 用途:外网访问家里内网服务(NAS、家里的网站、远程 ssh 家里电脑)

⚠️风险:把内网服务暴露互联网,会被扫描爆破,尽量不要随便开。

2)本地端口转发(比如 docker 端口映射、ssh -L)

这个是本机层面的端口映射,不走路由器。 典型:Docker -p 8080:80

访问宿主机的 8080 端口,转发到容器内部的 80 端口。 只作用在这一台机器,互联网外部无法直接访问,除非宿主机本身对外暴露

常见误区

  1. ❌ 做了端口映射,但是没有公网 IP,没用

运营商给的是内网 IP(大内网 CGNAT),就算路由器填了端口映射,外网依旧进不来。需要向运营商申请公网 IP。

  1. ❌ 只改内部端口,忘记外部端口

  2. ❌ 防火墙没放行:内网机器本身防火墙、路由器防火墙没有放开对应端口,映射配了也不通。

  3. ❌ 混淆方向:端口映射是外网主动访问内网;内网访问外网不需要端口映射,普通 NAT 就够用。

简单对比记忆

  • 普通上网:内网机器主动往外访问,NAT 自动处理,不需要端口映射

  • 端口映射:外网主动来找内网机器,必须手动配置转发规则。

补充:和 DMZ 主机区别

DMZ 主机:把某一台内网机器全部端口全部暴露外网,相当于把所有端口都做映射,风险更高;端口映射是只开放指定少数端口,更安全。


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/port-mapping-basic-concepts-guide

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/