新闻详情

新闻详情

首页 / 资讯中心 / 详情

公网私网内网外网彻底搞懂:NAT、内网穿透与远程访问实战

发布时间:2026/9/25 12:00:59来源:尧图网络
公网私网内网外网彻底搞懂:NAT、内网穿透与远程访问实战
1. 从一个让人抓狂的排错现场说起你有没有遇到过这种场景同事在群里甩过来一个地址说“你直接连这个就行”结果你 ping 了半天全是超时或者你在家里搭了个 NAS人在外面死活访问不上回到家一测又一切正常再或者你买了个云主机装完服务发现同机房的另一台机器能通自己家里的电脑却怎么都连不上。这些问题的根子十有八九都落在同一组概念上——公网、私网、内网、外网。这四个词在日常沟通里被混着用但它们在网络层面指向的东西并不完全一样。很多人排查网络问题卡住不是因为技术不够而是因为脑子里这四个词的边界是糊的。这篇内容就是把这四个概念彻底拆开讲清楚。我会从地址本身怎么划分讲起再讲到数据包在真实链路上是怎么走的然后落到几个最常见的实操场景家庭宽带怎么拿到公网地址、内网穿透到底在穿什么、NAT 模式和中继模式差在哪、组网工具是不是非得有公网。适合刚入行的运维、后端、嵌入式开发者也适合自己折腾家庭网络、NAS、远程访问的爱好者。看完之后你至少能做到拿到一个 IP 能立刻判断它属于哪一类遇到连不通能顺着链路一层层定位而不是瞎试。2. 先把四个词的边界钉死它们到底在描述什么2.1 公网和私网这是地址属性由 RFC 规定公网地址Public IP指的是在全球互联网路由表里唯一、可被任意一台联网设备直接寻址的 IP 地址。它由区域互联网注册管理机构分配给运营商运营商再分配给你。公网地址的核心特征是全球唯一 可路由。私网地址Private IP是专门预留出来、不允许出现在公网路由表里的地址段。RFC 1918 定义了三个私有地址块地址段范围常见用途10.0.0.0/810.0.0.0 - 10.255.255.255大型企业内网、云厂商 VPC172.16.0.0/12172.16.0.0 - 172.31.255.255中型网络、容器网络192.168.0.0/16192.168.0.0 - 192.168.255.255家庭、小型办公网络除此之外还有两个特殊段要记住127.0.0.0/8是回环地址永远指向本机169.254.0.0/16是链路本地地址通常出现在 DHCP 拿不到地址时的自动配置看到这个段基本可以判定“网络没配好”。私网地址的关键性质是同一个私网地址可以在全世界无数个网络里重复出现。你家路由器的 192.168.1.1 和隔壁老王家的 192.168.1.1 是同一个地址但互不冲突因为它们各自待在自己的网络里从不直接出现在公网上。2.2 内网和外网这是相对位置不是地址属性这两个词最容易和公网/私网搞混。内网和外网描述的是“相对于谁”的位置关系而不是地址本身的属性。举个例子公司有一台服务器地址是 10.1.1.5。对公司的办公电脑来说它是内网对你在家访问来说它是外网。同一台机器同一地址内网还是外网取决于你站在哪一侧看。所以严格来说内网 你当前所处的、受同一管理域控制的网络外网 内网之外、需要经过边界设备才能到达的网络这就解释了一个常见困惑为什么“内网”有时候指 192.168 段有时候又指公司机房的 10 段因为内网的定义跟着“谁在说”走而不是跟着地址走。2.3 一张表把四者关系理清概念描述维度判断依据典型例子公网地址属性是否全球唯一可路由8.8.8.8、云主机弹性 IP私网地址属性是否属于 RFC1918 段192.168.1.100、10.0.0.5内网相对位置是否在同一管理域内公司办公网、家庭局域网外网相对位置是否需要跨边界访问互联网、其他组织的网络记住一句话公网私网看地址内网外网看位置。这句话能解决你八成的概念混淆。3. 数据包从你家到服务器中间到底发生了什么3.1 出口路由器做的第一件事NAT 转换你在家里用 192.168.1.100 访问一个公网服务器。数据包从你的电脑发出源地址是 192.168.1.100目的地址是服务器的公网 IP。这个包到了你家路由器路由器发现源地址是私网地址不能直接扔到公网上——因为公网上的设备没法把回包送回一个“不存在的”私网地址。于是路由器做了一件事把源地址替换成自己从运营商那里拿到的地址可能是公网地址也可能是运营商大内网的地址同时记录一条映射关系比如“192.168.1.100:52341 ↔ 出口地址:62001”。这个动作就是NAT网络地址转换更准确地说是NAPT网络地址端口转换因为它连端口一起换了。回包到达路由器时路由器查映射表把目的地址从“出口地址:62001”换回“192.168.1.100:52341”再转发给你的电脑。整个过程你的电脑毫无感知。3.2 为什么“外面连不进来”NAT 的单向性NAT 映射表是由内向外发起连接时动态建立的。也就是说只有你先主动往外发过包路由器才知道“这个内网地址对应这个外部端口”。外部设备想主动连进来路由器查表发现没有对应条目包直接被丢弃。这就是“家里 NAS 在外面访问不了”的根本原因——不是 NAS 没开服务而是路由器的 NAT 表里根本没有一条“外部端口 → NAS”的映射。要解决它要么手动做端口映射Port Forwarding要么用内网穿透绕过这个限制。3.3 运营商级 NAT为什么你拿到的“公网 IP”可能是假的很多人查到自己路由器 WAN 口地址是 100.64.x.x 或者 10.x.x.x还以为自己拿到了公网。其实100.64.0.0/10是 RFC 6598 定义的运营商级 NATCGNAT专用段。运营商在骨干网做了一层 NAT你家的“出口地址”只是运营商大内网里的一个私网地址真正的公网地址在运营商那层。判断方法很简单对比路由器 WAN 口地址和你在外部网站查到的出口地址。如果两者不一致说明你处在运营商 NAT 后面没有真正的公网地址。这个判断是后面所有远程访问方案选型的前提。4. 家庭公网地址怎么判断、怎么申请、怎么用起来4.1 三步确认自己是不是真公网第一步登录路由器管理页找到 WAN 口状态记下 IP。 第二步用手机流量不要连 WiFi打开一个查 IP 的网站记下显示的地址。 第三步对比两个地址。完全一致 → 你有公网地址可能是动态的不一致且 WAN 口是 100.64 段 → 运营商 NAT不一致且 WAN 口是 10 或 192.168 段 → 光猫做了 NAT路由器在光猫内网里第三种情况很常见光猫默认是路由模式自己拨号并做 NAT你的路由器只是二级路由。这时候要么把光猫改成桥接模式让路由器拨号要么在光猫上做 DMZ 指向路由器。4.2 申请动态公网地址的实际经验家庭宽带默认给的多半是运营商 NAT 后的地址。想要公网地址通常需要联系运营商客服申请。不同地区政策差异很大有的直接给有的要求说明用途有的需要升级套餐。实操中几个要点明确说“需要公网 IP 用于远程访问自己的设备”不要提任何敏感用途强调“动态的就行”动态公网比固定公网容易批得多如果客服说没有可以尝试换个时间段再问或者通过营业厅渠道拿到后重启光猫确认 WAN 口地址变成公网段注意动态公网地址会随拨号变化重启光猫、运营商调整都可能换地址。所以拿到公网只是第一步还得配合 DDNS 才能稳定使用。4.3 DDNS 把动态地址变成固定域名DDNS动态域名解析的原理很朴素在你家网络里跑一个小程序定时检测当前公网地址一旦发现变了就调用域名服务商的 API 把域名解析更新到新地址。这样你永远用域名访问不用关心 IP 变没变。落地方式有两种路由器自带 DDNS很多家用路由器内置了主流域名服务商的 DDNS 客户端填上域名和密钥即可最省事自建脚本在 NAS 或树莓派上跑一个定时任务用 curl 调用 API 更新解析记录灵活度最高配合端口映射你就能实现“在外面用域名访问家里 NAS”。但要注意很多运营商封了 80 和 443 端口家庭宽带做 Web 服务通常得换高位端口比如 8443、9443。5. 内网穿透到底在穿什么把 NAT 限制绕过去5.1 穿透的本质借一台有公网的机器做中转没有公网地址外部就连不进来。内网穿透的思路是找一台有公网地址的服务器做中转站你的内网设备和这台服务器建立一条长连接外部访问先到服务器服务器再通过这条连接把流量转发给你的内网设备。这里的关键在于内网设备主动连服务器是允许的NAT 允许由内向外连接建立后这条通道就是双向的。外部请求走服务器服务器顺着已有通道推给内网设备回包原路返回。整个过程不需要公网地址也不需要动路由器。5.2 两类主流方案反向代理型和隧道型反向代理型如 frp、ngrok 类工具内网跑一个客户端连到公网服务器的服务端服务端监听某个端口把收到的请求转发给客户端。配置直观适合暴露单个 Web 服务。隧道型如各类组网工具把多台设备组成一个虚拟局域网每台设备拿到一个虚拟地址彼此之间像在同一内网一样直接通信。适合需要多设备互访、点对点传输的场景。选型时问自己三个问题我要暴露的是一个服务还是一整台机器流量大不大中转服务器的带宽扛得住吗需不需要点对点直连来降低延迟5.3 组网工具是不是必须有公网这是被问得最多的问题之一。答案是不一定但取决于工具的实现方式。如果工具有官方的中转服务器那双方都不需要公网流量走官方服务器中转如果工具支持 P2P 打洞那在 NAT 类型友好的情况下可以直连也不需要公网如果工具要求自建服务端那服务端那台机器必须有公网地址所以“组网必须有公网吗”这个问题准确问法是“你选的这个工具它的服务端在哪”。服务端在官方你就不用管公网服务端要自己搭那台机器就得有公网。5.4 穿透方案的稳定性陷阱实测下来穿透方案最容易出问题的地方不是配置而是中转服务器的带宽和线路质量。免费中转服务器通常带宽小、限速严、随时可能停服用来测试可以长期跑业务不靠谱。另一个坑是心跳保活。NAT 映射表有老化时间长时间没流量映射条目会被清除通道就断了。所以穿透客户端一般都要配心跳包间隔通常设在 30 秒以内。如果你发现自己搭的隧道隔一段时间就断先查心跳配置。6. NAT 模式和中继模式名字像用途完全不同6.1 NAT 模式让设备共享一个出口NAT 模式的核心是地址转换。多台设备通过一台做 NAT 的设备共享一个出口地址访问外部。虚拟机软件里的 NAT 网络、路由器的路由模式、光猫的路由模式本质都是这个逻辑。它的优点是配置简单、对外只暴露一个地址、内网设备天然受保护。缺点是外部主动访问内网设备需要额外做端口映射且某些依赖真实源地址的协议如部分 VoIP、游戏联机会受影响。6.2 中继模式把信号原样转发中继模式Repeater常见于无线网络扩展场景核心是信号放大和转发不涉及地址转换。中继设备接收主路由的信号再以相同或不同的 SSID 转发出去终端设备拿到的地址仍然由主路由分配处于同一个网段。两者的根本区别维度NAT 模式中继模式核心动作地址转换信号转发网段通常新建一个子网与主网络同网段终端地址由 NAT 设备分配由主路由分配外部访问内网需端口映射同网段直接可达典型场景虚拟机、路由级联无线覆盖扩展搞混这两个概念会导致你在排查“为什么中继后设备不在同一网段”这类问题时方向完全跑偏。6.3 虚拟机里的 NAT 和 NAT 网络有什么区别这是被高频搜索的问题。以 VirtualBox 为例NAT 模式虚拟机通过宿主机的 NAT 访问外部虚拟机之间互相不可见外部也访问不到虚拟机除非做端口转发NAT 网络多个虚拟机连到同一个虚拟 NAT 网络虚拟机之间可以互相通信但对外仍然是共享宿主机出口区别就在“虚拟机之间能不能互通”。单机测试用 NAT 模式够了要多机联调就得用 NAT 网络或者桥接模式。7. 几个真实场景的完整排查链路7.1 SSH 连不上但 ping 得通这个现象很典型网络层通传输层或应用层有问题。排查顺序应该是确认端口telnet 目标IP 22或nc -zv 目标IP 22看端口是否开放查防火墙目标机的防火墙是否放行了 22 端口云主机还要查安全组查服务目标机ss -tlnp | grep 22确认 sshd 在监听查监听地址如果 sshd 只监听 127.0.0.1外部自然连不上改配置监听 0.0.0.0查中间设备是否有 NAT 设备、是否有 ACL 拦截ping 通只说明 ICMP 能过不代表 TCP 能过。很多防火墙默认放行 ICMP 但拦 TCP这就是“ping 通但连不上”的常见原因。7.2 内网机器装不了软件离线源怎么搭纯内网环境比如某些生产网、隔离网装软件是个高频痛点。以 RHEL 系为例思路是在一台能上网的同版本机器上用reposync把需要的仓库完整同步下来用createrepo生成仓库元数据把整个目录拷进内网配置内网机器的 yum 源指向这个本地目录如果是 aarch64 等非 x86 架构注意同步时指定正确的架构参数Python 项目迁移到内网也是同理在外网机器上pip download把所有依赖包下载到本地目录拷进内网后用pip install --no-index --find-links目录安装。关键是依赖的依赖也要一起下用pip download而不是手动挑包。7.3 WSL 里的代理配置警告在 WSL 里经常看到“检测到 localhost 代理配置但未镜像到 WSL”这类提示。根因是 WSL2 默认跑在 NAT 模式下的轻量虚拟机里和 Windows 宿主不在同一个网络命名空间localhost在两边指向不同的东西。解决办法有两个方向开启 WSL 的镜像网络模式让 WSL 和 Windows 共享网络栈或者在 WSL 里把代理地址改成 Windows 宿主在 WSL 网络里的地址而不是 localhost这个问题的本质还是 NAT 造成的地址隔离理解了 NAT 就理解了为什么 localhost 不通。8. 把这些概念串起来用一套判断流程遇到任何网络连通问题我习惯按这个顺序过一遍第一步看地址。源和目的地址分别是什么段有没有私网段有没有 100.64 段这一步能快速判断是否涉及 NAT。第二步看位置。两台设备各自在哪个管理域中间隔了几层边界设备每层边界做的是 NAT 还是纯转发第三步看方向。连接是谁主动发起的由内向外通常没问题由外向内就要查映射和放行规则。第四步分层验证。从物理层往上一层层确认链路通不通、IP 通不通、端口通不通、应用响应不响应。这套流程的价值在于它不依赖具体工具而是基于公网私网、内网外网这几个基本概念做推理。概念清楚了工具只是实现手段。最后分享一个我自己踩过的坑早期折腾远程访问时一直以为“有公网 IP 就万事大吉”结果忽略了运营商封端口这件事Web 服务怎么都起不来排查了大半天才想到换端口测试。后来养成的习惯是拿到公网地址后第一件事就是测常用端口通不通能省掉大量无效排查。网络这东西概念是地基地基打牢了上面盖什么都不会歪。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

黄白助手 第 083 个开关:启用关键词屏蔽的位置、验证方法与风险边界 2026/9/25 14:05:50

黄白助手 第 083 个开关:启用关键词屏蔽的位置、验证方法与风险边界

🔥 个人主页: 杨利杰YJlio ❄️ 个人专栏: 《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》 《WINDOWS教程》 《Windows PowerShell 实战》 《IOS插件分析测试》 《超简单:用Python让Excel飞起来》…

阅读更多 →
黄白助手 第 082 个开关:启用新群自动备注进群时间的位置、验证方法与风险边界 2026/9/25 14:05:37

黄白助手 第 082 个开关:启用新群自动备注进群时间的位置、验证方法与风险边界

🔥 个人主页: 杨利杰YJlio ❄️ 个人专栏: 《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》 《WINDOWS教程》 《Windows PowerShell 实战》 《IOS插件分析测试》 《超简单:用Python让Excel飞起来》…

阅读更多 →
排序算法工程选型指南:从理论复杂度到线上故障实战 2026/9/25 14:05:36

排序算法工程选型指南:从理论复杂度到线上故障实战

1. 这不是“背公式”的考试题,而是写代码时真正卡住你的那堵墙你有没有过这样的经历:在LeetCode刷到第73题,看到“数组排序”四个字,手指已经条件反射敲出arr.sort(),但面试官突然抬头问:“如果不用内置函数…

阅读更多 →
黄白助手 第 076 个开关:启用群聊艾特提示的位置、验证方法与风险边界 2026/9/25 14:05:30

黄白助手 第 076 个开关:启用群聊艾特提示的位置、验证方法与风险边界

🔥 个人主页: 杨利杰YJlio ❄️ 个人专栏: 《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》 《WINDOWS教程》 《Windows PowerShell 实战》 《IOS插件分析测试》 《超简单:用Python让Excel飞起来》…

阅读更多 →
Fission 有状态函数实战:StateConfig 键控状态 API 与 HRW 粘性路由全解析 2026/9/25 14:05:23

Fission 有状态函数实战:StateConfig 键控状态 API 与 HRW 粘性路由全解析

云原生后端 【免费下载链接】fission Fast and Simple Serverless Functions for Kubernetes 项目地址: https://gitcode.com/gh_mirrors/fi/fission 点击查看 免费下载 本文基于 RFC-0023: Stateful functions — keyed state API and sticky routing 编写&#x…

阅读更多 →
大模型算法之后,为什么产品经理成了最热门的岗位?TaoToken视角下的AI产品经理NPDP能力拆解 2026/9/25 14:05:10

大模型算法之后,为什么产品经理成了最热门的岗位?TaoToken视角下的AI产品经理NPDP能力拆解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉