0%

一种基于Nginx的域名解析与内网穿透方案

背景

上文局域网自定义域名介绍了如何基于dnsmasq服务去管理局域网过多的服务与对应的IP和端口的问题。

本文记录一种基于Nginx的域名解析与内网穿透方案。用于解决如何更优雅的将家庭网络服务向公网提供的问题。

大环境

由于众所周知的原因,普通的家用网络有一些限制:

  1. 无法访问google.com等一众网站。
  2. 本身IP地址为运营商提供的二级或多级IP,本身并不能向互联网提供服务。
  3. 无法固定IP,运营商会定时重新分配IP。
  4. 运营商禁用80 443等端口。

哪里有墙哪里就会有梯子,如何解除这些枷锁可以根据如下关键字检索:

  1. 向运营商申请公网IP
  2. DDNS
  3. 反向代理

但无论如何枷锁始终存在,而且大有愈来愈紧的趋势,这里不再展开。

物料准备

  1. 一固定IP的公网服务器 如果是国内服务器则需要备案
  2. 域名
  3. 公网IP
  4. 一台私有服务器

方案

这里以内网和共网分别访问music.myDomain.com(自有域名,将)为例介绍,各个关键路径以及其对应的服务。

image-20230130175555309

缺陷

公网向内网做反向代理的原理为:公网服务器向内网服务器发送请求,并将请求结果转发至客户端。

  1. 访问公网的客户端无法直达内网服务器,流量会在公网服务器同时产生一遍上传和下载,公网上的流量又是一种比较珍贵的资源,无法做到多快好省。
  2. 路由器或交换机直接将外网的某个端口映射到内网的Nginx服务,会将内网Nginx管理的有所服务全部暴露至公网,有一定安全问题。