VPN 与隧道
远程访问、WireGuard 概念。
25 分钟
VPN 与隧道
VPN(Virtual Private Network)在公网上建立 加密隧道,让远程设备像接入内网一样访问资源。运维常用 VPN 或 SSH 隧道 管理仅监听 127.0.0.1 的服务;与 CodeRoadMap 公网 HTTPS 入口是互补关系。
学习目标
- 理解 VPN 与端口转发的使用场景
- 知道 SSH 本地转发访问本机 8080/3306 的方法
- 区分「用户访问网站」与「管理员远程运维」两条路径
核心内容
典型场景
| 场景 | 方案 | 本站关联 |
|---|---|---|
| 远程运维服务器 | SSH | linux-ssh |
| 访问未暴露的 MySQL | SSH -L 隧道 | 3306 仅回环 |
| 团队内网互通 | WireGuard / 云 VPN | 多机部署时 |
| 用户访问站点 | 公网 HTTPS | 443 → Nginx,不需 VPN |
普通学员通过 DNS + HTTPS 学课程;开发者 SSH 上机维护,不应对外开 3306。
SSH 本地转发
# 在本机执行:把本地 18080 转到服务器 127.0.0.1:8080
ssh -L 18080:127.0.0.1:8080 root@your-server-ip
# 另开终端
curl http://127.0.0.1:18080/actuator/health
等效于临时打通「你的电脑 → 加密 SSH → 服务器回环端口」。
隧道 vs 公网入口
【用户】 DNS → 公网 IP:443 → Nginx → 3000/8080
【管理员】 SSH/VPN → 服务器 shell → curl 127.0.0.1:8080
└── mysql -h 127.0.0.1 -P 3306
WireGuard 等全隧道 VPN 可让多台 VPS 组成虚拟内网;K8s 集群网络另见 kubernetes track。
安全注意
- 勿把 VPN 密钥或 SSH 私钥提交仓库
- VPN 不能替代 防火墙 与 127.0.0.1 绑定
- 生产数据库永远不经公网直连
练习
- 用 SSH -L 从本机访问服务器上的 :8080 health 端点
- 说明普通用户学 CodeRoadMap 是否需要 VPN
- 对比 VPN 隧道与 Nginx 443 入口各服务谁
小结
VPN/SSH 隧道给运维走内网端口;用户仍走 443 与 Nginx。 下一课串联排障流程。
加载本节练习…