内网穿透全局 HTTPS 的一种思路

最近经常折腾一些 VPS 然后在 AppNode 部署一些服务, 折腾的过程中发现有 反向代理 这个选项

02-15-26-1636481726-1636481726639-Zji4ny-hfFQRs

于是突发奇想, 我能不能在内网有一个这样的 反向代理 中心, 将所有的端口映射出去的服务器通过这个 反向代理 中心映射出去

经过尝试, 方案可行

这是一个非常令人兴奋的方案,可以完全将家里的服务器全部聚焦到一个服务器上, 接着在用这个服务器统一的去管理 HTTPS 证书和需要映射出去的端口;

假设现在有一台 CentOS 安装了 AppNode 名叫 Center, 它的地址是 192.168.1.101

  • Center 可以反向代理 家里任何局域网的服务,假设Center 使用 10086 代理了 openWrt 192.168.1.1:80, 那么我们可以用 192.168.1.101:10086 来访问 openWrt
  • 通过 DDNS 将 10086这个端口原封不动的映射出去,并且对 DDNS域名 进行了端口映射, 所以理论上我们可以通过 DDNS域名 :10086 来访问openWrt
  • Center 上安装的 AppNode 可以使用证书管理工具对某个域名生成 SSL证书[如果没有 80 端口可以通过 DNS 解析的方式生成证书], 然后再将该反向代理开启 HTTPS,在对该代理的 10086 端口进行端口监听, 然后不出意外就可以通过https://xxxx.cn:10086 来访问openWrt

优点

  • 安全性高: 不对外暴露真正服务器的端口和 IP,对外暴露的 IP 和端口统一收口到 CentOS
  • HTTPS 证书管理方便: 真正的服务器可以是任何 HTTPS 或者 HTTP 协议,因为 CentOS 最终对外都是 HTTPS 服务
  • 端口映射整齐划一, 方便管理

具体怎么操作呢

准备条件

  • 在域名中心将域名 A 记录指向家里的公网 IP [DDNS]
  • AppNode 里生成该域名的 SSL 证书 [也可以手动导入]

开始工作

  • 在 AppNode 里建立反向代理的网站, 后端服务是需要代理的 IP:PORT
  • 在该网站详情里添加监听的端口 譬如: 10086
  • 在爱快端口映射该端口, 最好和网站的端口一样, 如上: 10086
  • 开启https

这样就可以通过 域名:10086 访问该代理的家庭局域网服务了

本文链接:

https://blog.qianlicao.cn/index.php/archives/4/
1 + 7 =
快来做第一个评论的人吧~