局域网自定义域名
背景
由于家庭网络环境日渐复杂,服务器上跑的工程项目越来越多。人工强行基于IP+端口的方式来记忆各个服务着实有些费劲。本文简单介绍一下折腾自定义域名的过程。
拓扑
一个并不完整的家庭网路拓扑
搭建思路
自定义域名到IP
由域名到IP会经过几个步骤、例如查找系统缓存、查找Host
文件、查找路由器缓存、查找DNS服务器等。考虑到Host
只能解决单系统的自定义域名解析问题并不通用。这里最终采用了在路由器上搭建DNS Server
的方案。
自定义域名到端口
DNS Server
只解决域名到IP的问题,域名到服务器上特定端口的特定服务仍待解决。这里采用的是Nginx
反代的方案。
搭建过程
DNS Server
详细介绍请见参考链接,这里仅体现了核心步骤
- 进入路由器 启用SSH
- 基于SSH登陆路由器
- 编辑文件
/jffs/configs/dnsmasq.d/dnsmasq.conf
- 添加泛域名解析
address=/home.site/192.168.x.x
- 重启服务
service restart_dnsmasq
补充
- 默认的
dnsmasq.conf
的文件地址为:/etc/dnsmasq.conf
- 多个泛域名解析格式为
address=/pan****.com/home.site/192.168.x.x
经过以上过程即可将*.home.site
域名解析到192.168.x.x
。执行完毕后可在本地简单ping
一下测试联通情况。
Nginx反代
基于
Docker
的Nginx
安装、以及案例中涉及的home-assistant
的安装这里不再赘述,详情见参考链接。
按照以下配置将iot.home.site
代理到服务器的8123
端口即可解决自定义域名到端口的问题。
1 | upstream home-assistant { |