CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
计算机网络入门/课时/NAT 与反向代理
RawBlame
课时目录12 节

计算机网络入门

  1. 01网络为什么重要
  2. 02分层模型
  3. 03IP 地址与子网
  4. 04TCP 与 UDP
  5. 05端口与服务
  6. 06诊断工具
  7. 07防火墙概念
  8. 08负载均衡
  9. 09NAT 与反向代理
  10. 10VPN 与隧道
  11. 11排障流程
  12. 12综合练习

NAT 与反向代理

内网 IP、DNAT、宝塔反代。

25 分钟

NAT 与反向代理

NAT(Network Address Translation)把私网地址与公网地址互相映射,让多台内网设备共用一个公网 IP。反向代理则在应用层替后端收请求——Nginx 同时承担「公网入口」角色,与 NAT 常一起出现在家庭路由与云 VPC 中。

学习目标

  • 理解 SNAT/DNAT 与「端口转发」直觉
  • 区分 NAT 与 Nginx 反向代理各解决什么问题
  • 对照宝塔/Nginx 反代 CodeRoadMap 的配置思路

核心内容

NAT 两种方向

类型方向例子
SNAT内网 → 公网服务器访问 npm registry,源 IP 被换成公网 IP
DNAT公网 → 内网路由器 :443 转发到内网 192.168.1.10:443

云 VPS 通常直接绑 公网 IP 到 eth0,Nginx 监听 0.0.0.0:443,不经过家用路由 DNAT;但 127.0.0.1 反代 仍是「逻辑上的内网转发」。

反向代理 vs NAT

【NAT / 端口转发】          【Nginx 反向代理】
改 IP/端口映射              懂 HTTP,改 Host/Path/头
通常 L3/L4                  L7
客户端不知内网 IP           客户端只知 coderoadmap.cn

本站:https://coderoadmap.cn/api/* → Nginx 改写 upstream 为 http://127.0.0.1:8080(ngx-proxy)。

CodeRoadMap 路径

用户公网
   │  TCP 公网IP:443
   ▼
Nginx(公网网卡)──── DNAT 式「转发」到回环 ────► 127.0.0.1:3000 / :8080
   │                                              │
   │                                              └──► 127.0.0.1:3306
   └── TLS 证书在 Nginx 终止(http-https)

Spring Boot 不需要公网 IP;数据库更不应映射端口(linux-firewall)。

宝塔反代

面板 → 网站 → 反向代理:图形化生成 proxy_pass,等价于手写 Nginx location。改配置后 nginx -t 再 reload。

curl -H "Host: coderoadmap.cn" http://127.0.0.1/api/tracks -I

练习

  • 解释为何 MySQL 不需要做「端口转发到公网」
  • NAT 能否读懂 HTTP 路径 /api?Nginx 呢?
  • 画出「公网 :443 → Nginx → :8080」逻辑图

小结

NAT 解决地址不够用;Nginx 反代解决「一个域名多个后端」。 下一课简介 VPN 与隧道。

加载本节练习…
← 上一课负载均衡下一课 →VPN 与隧道