网络基础回顾:公网IP与私网IP、NAT技术原理、端口转发概念、DNS解析基础

做内网穿透,说白了就是在跟“网络地址”打交道。你如果搞不清公网IP和私网IP的区别,不理解NAT怎么工作,那后面配置再多的工具也是白搭。这一章,我把这几个核心概念掰开揉碎了讲清楚。

1. 公网IP与私网IP:互联网的门牌号

每个设备要上网,就得有个IP地址。这就像你家要收快递,得有个门牌号一样。

公网IP,是互联网上唯一的、全球可路由的地址。你的路由器从运营商那里拿到的,通常就是一个公网IP。有了它,全世界任何一台联网的设备都能直接访问你——前提是你没被防火墙拦住。

私网IP,则是在局域网内部使用的地址。这些地址在互联网上不会被路由,说白了就是“内部专用”。

我记得刚入行那会儿,有个同事把公司内网的打印机IP配成了公网地址段,结果打印机死活连不上外网。排查了半天才发现——私网IP和公网IP混用了。嗯,这种低级错误,犯过一次就再也不会忘了。

私网IP有三个标准段,我列个表,你记牢了:

地址类别 地址范围 默认掩码 常见用途
A类私网 10.0.0.0 – 10.255.255.255 255.0.0.0 (/8) 大型企业、数据中心
B类私网 172.16.0.0 – 172.31.255.255 255.240.0.0 (/12) 中型公司、校园网
C类私网 192.168.0.0 – 192.168.255.255 255.255.0.0 (/16) 家庭、小型办公室
一个小技巧: 你家里的路由器,默认LAN口IP通常是192.168.1.1或192.168.0.1。这就是典型的C类私网地址。如果你在公司,大概率用的是10.x.x.x段。

2. NAT技术原理:一个公网IP,养活一屋子设备

IPv4地址早就枯竭了。如果没有NAT,你家里那十几台设备(手机、电脑、电视、智能音箱)根本不可能同时上网。为什么?因为运营商只给你一个公网IP。

NAT(网络地址转换),就是解决这个问题的。它把内网设备的私网IP,映射成路由器的公网IP,同时记录下每个连接的“状态”。

我打个比方:你公司前台只有一个总机号码(公网IP),但全公司几百号人都有分机号(私网IP)。外人打总机,前台问清楚找谁,再转接到分机。NAT干的就是前台这个活儿。

NAT主要有三种类型,我工作中最常遇到的是前两种:

  • 静态NAT:一个私网IP固定映射到一个公网IP。一对一,不节省地址,但常用于服务器对外发布。
  • 动态NAT:多个私网IP共享一个公网IP池。谁先发起连接,谁就占用一个公网IP。用完释放。
  • PAT(端口地址转换):这才是你家里路由器用的方式。所有内网设备共享同一个公网IP,靠端口号区分不同的连接。也叫“端口多路复用”。
核心要点: 做内网穿透,你面对的最大障碍就是NAT。因为NAT默认只允许内网主动访问外网,外网主动访问内网是被挡住的。穿透技术,本质上就是在NAT设备上“打个洞”。

我曾经帮一个客户排查远程访问故障。他家里装了监控,想在外地看。配置了端口转发,就是不行。我远程上去一看——他路由器做了两层NAT。运营商光猫拨号,自己的路由器又做了一次NAT。这叫“双重NAT”,外网根本找不到他的内网设备。解决方法是把光猫改成桥接模式,让路由器直接拨号。

3. 端口转发概念:给内网服务开一扇门

NAT把外网访问挡住了,但有时候你又确实需要让外面的人访问内网的某个服务——比如你家里的Web服务器、SSH服务。怎么办?

端口转发,就是在NAT设备上设置一条规则:当外网访问路由器的某个端口时,路由器把这个流量“转发”给内网指定的IP和端口。

举个例子:

  • 你的内网服务器IP是192.168.1.100,运行着Web服务(端口80)。
  • 你在路由器上设置端口转发:外网端口8080 → 192.168.1.100:80。
  • 外网用户访问你的公网IP:8080,路由器就把请求转给内网服务器。

配置端口转发时,有几个坑我提醒你注意:

避坑指南:
  • 内网设备的IP必须固定(用DHCP静态绑定或手动设置),否则设备重启后IP变了,转发就失效了。
  • 不要转发常用端口(如22、3389)到公网,否则会被扫描工具盯上。换个高位端口,比如2222映射到内网的22。
  • 如果运营商给你的是“大内网IP”(100.64.x.x段),那端口转发基本没用——因为你的公网IP是假的,运营商又做了一层NAT。

我个人习惯,在配置端口转发之前,先用telnet或nc命令测试一下端口是否真的能从外网访问到。很多情况下,你以为配好了,其实运营商或者防火墙在中间拦了一道。

4. DNS解析基础:把IP变成人话

你记不住一串数字(IP地址),但你能记住baidu.com。DNS干的事,就是把域名翻译成IP地址。

DNS解析流程,我简化一下:

  1. 你在浏览器输入www.example.com。
  2. 系统先查本地hosts文件,有就直接用。
  3. 没找到,就问你电脑上配置的DNS服务器(通常是运营商的或公共的,比如8.8.8.8)。
  4. DNS服务器如果不知道,就一级一级往上问,直到找到权威DNS服务器。
  5. 返回IP地址,你的浏览器发起连接。

做内网穿透时,DNS的作用很关键。你想想看:你的穿透服务跑在某个公网IP上,但IP可能会变(比如家庭宽带重启后IP变了)。这时候,你就需要一个动态DNS(DDNS)服务,把你的域名始终指向最新的公网IP。

我常用的DDNS方案有两种:

  • 路由器自带DDNS:很多家用路由器(华硕、小米、TP-Link)都支持,配置一下账号就行。
  • 第三方DDNS客户端:比如ddclient、inadyn,跑在Linux服务器上,定时更新DNS记录。
一个小建议: 如果你用云服务器做穿透中转,那DNS解析的TTL值设短一点(比如60秒)。这样IP切换后,客户端能快速拿到新地址,不会断连太久。

5. 知识体系总览

下面这张图,把本章的核心逻辑串起来了。你一看就明白:公网IP、私网IP、NAT、端口转发、DNS,它们之间是怎么配合的。

内网穿透网络基础结构图 内网穿透网络基础结构图 互联网(公网) 内网(私网) 公网用户 访问域名或公网IP DNS服务器 域名 → IP 解析 NAT路由器 端口转发 / 地址转换 内网服务器 私网IP: 192.168.1.100 内网设备 私网IP: 192.168.1.x DDNS客户端 自动更新公网IP到域名 说明: 公网用户通过DNS获取目标IP → 访问NAT路由器的公网IP → 路由器根据端口转发规则 → 将流量转发到内网服务器。 DDNS客户端在公网IP变化时自动更新DNS记录,保证域名始终指向最新IP。

这张图里,你重点关注三个流向:

  • 用户请求流向:公网用户 → DNS解析 → NAT路由器 → 内网服务器
  • 地址转换流向:NAT路由器把公网IP:端口映射成私网IP:端口
  • 动态更新流向:DDNS客户端把变化的公网IP同步到DNS记录

好了,这一章的基础概念就讲到这里。你把这些搞懂了,后面讲具体的穿透工具(比如frp、Ngrok、WireGuard)时,就不会觉得云里雾里了。网络这东西,底层逻辑通了,上层工具就是换汤不换药。