迈思工作室

Hi, 请登录

如何将内网电脑映射至公网,端口映射:原理、配置、排障

15 分钟吃透端口映射:原理、配置、排障,16 张图一次讲清

图片

很多人第一次接触 端口映射(Port Mapping / Port Forwarding) 的时候,真正容易卡住的地方,往往并不是某条命令或者某个配置界面不会操作,而是前面的网络关系没有完全想明白:为什么外网不能直接访问内网里的私有地址?公网 IP、私网 IP 和端口之间,又是通过什么方式对应起来的?

比如在家里或者公司内网搭了一台 Web 服务器、NAS、摄像头,或者其他需要从外部访问的服务。外面的用户真正能够访问到的,通常是出口路由器或者 NAT 网关上的公网地址,但后面实际提供服务的设备,使用的可能只是 192.168.x.x10.x.x.x 这一类私网地址。

这个时候,就需要通过 NAT 设备建立一条对应的转发规则。

简单理解,就是有人访问某个“公网 IP:端口”以后,网关根据提前配置好的映射关系,再把这条连接转到指定的“内网 IP:端口”上。这样外部访问的是公网入口,真正处理请求的却是后面的内网设备。

把这一层关系理解以后,端口映射本身其实并没有那么复杂。

不过真正往下学习时,还会碰到一批名字看起来很接近的概念,比如 静态端口映射、端口触发、UPnP,以及 SSH Local / Remote / Dynamic Forwarding

这些东西表面看起来都像是在做一件事,也就是“把某个地方的流量转到另外一个地方”。但如果从实际工作方式来看,它们并不属于完全相同的一套机制。

比如静态端口映射通常是在 NAT 网关上长期建立一条固定的转发关系;端口触发会根据内部主机主动发起的通信,临时开放相对应的入站端口;UPnP 则允许应用或者终端向网关申请动态建立映射。

而 SSH 的 Local、Remote、Dynamic Forwarding,更多属于通过 SSH 连接建立隧道来转发应用流量,和传统路由器上的 NAT 端口映射虽然最终都能够实现“流量转发”,但实际所在层次以及适用场景还是存在比较明显的区别。

所以这次我也把端口映射这一块比较容易混在一起的知识重新整理了一遍。

前面会先从 IP 地址和端口到底分别代表什么、NAT 映射是怎样建立的,以及一条外网访问请求完整经过哪些环节开始,再继续往下看静态映射、端口触发、UPnP 和 SSH 隧道分别是怎样工作的。

后面还会把一些真实使用过程中比较容易遇到的问题放进来,比如端口应该怎么设置更加合理、开放服务以后有哪些安全风险,以及为什么有时候明明已经把端口映射配置好了,从外网测试却依然访问不到

因为实际排障的时候,问题不一定就出在端口映射这一条规则上。公网 IP 是否真实可达、上级网络是否存在 CGNAT、系统防火墙有没有放行、服务有没有正常监听、内网地址有没有变化,以及运营商是否限制相关端口,都有可能影响最终结果。

如果你平时做网络工程、运维,或者自己折腾过 NAS、自建服务、远程访问这一类场景,可以顺着这套内容往下看。

先把 公网入口 → NAT 映射 → 内网设备 → 实际服务端口 这一整条链路理解清楚,后面再遇到端口映射、端口转发以及各种隧道相关的问题,基本就不会只停留在“配置照着做了,但不知道为什么能通或者为什么不通”的阶段。

图片
图片
图片
图片
图片
图片
图片
图片
图片
图片
图片
图片
图片
图片
图片


相关推荐

评论

  • 昵称 (必填)
  • 邮箱
  • 网址
二维码
评论