网络基础回顾:公网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) | 家庭、小型办公室 |
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”,外网根本找不到他的内网设备。解决方法是把光猫改成桥接模式,让路由器直接拨号。
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解析流程,我简化一下:
- 你在浏览器输入
www.example.com。 - 系统先查本地hosts文件,有就直接用。
- 没找到,就问你电脑上配置的DNS服务器(通常是运营商的或公共的,比如8.8.8.8)。
- DNS服务器如果不知道,就一级一级往上问,直到找到权威DNS服务器。
- 返回IP地址,你的浏览器发起连接。
做内网穿透时,DNS的作用很关键。你想想看:你的穿透服务跑在某个公网IP上,但IP可能会变(比如家庭宽带重启后IP变了)。这时候,你就需要一个动态DNS(DDNS)服务,把你的域名始终指向最新的公网IP。
我常用的DDNS方案有两种:
- 路由器自带DDNS:很多家用路由器(华硕、小米、TP-Link)都支持,配置一下账号就行。
- 第三方DDNS客户端:比如
ddclient、inadyn,跑在Linux服务器上,定时更新DNS记录。
5. 知识体系总览
下面这张图,把本章的核心逻辑串起来了。你一看就明白:公网IP、私网IP、NAT、端口转发、DNS,它们之间是怎么配合的。
这张图里,你重点关注三个流向:
- 用户请求流向:公网用户 → DNS解析 → NAT路由器 → 内网服务器
- 地址转换流向:NAT路由器把公网IP:端口映射成私网IP:端口
- 动态更新流向:DDNS客户端把变化的公网IP同步到DNS记录
好了,这一章的基础概念就讲到这里。你把这些搞懂了,后面讲具体的穿透工具(比如frp、Ngrok、WireGuard)时,就不会觉得云里雾里了。网络这东西,底层逻辑通了,上层工具就是换汤不换药。