实现用域名访问内网中的NAS

2024-07-22 17:57:10 12点赞 120收藏 18评论

最近在NAS上折腾了一番开源的Joplin笔记软件(NAS搭建自托管服务器流程参考这里),由于访问地址只能设置一个,要么内网ip,要么外网域名。如果使用域名就出现一个很尴尬的情况:回到家后,各种终端就没办法直接连接NAS服务器了,电脑还好,可以修改hosts文件,手机平板需要挂VPN,不然就只能用流量了。所以笔记服务器搭建好之后,我一直在寻找实现在内网通过域名访问内网中的NAS服务器的方法。

如果路由器支持,可以直接修改路由器的hosts文件,来实现特定域名跳转到特定IP地址,这样连接到这个路由器上的所有设备都可以通过域名来访问NAS了。但很不幸的是,家里的tplink5480并不支持这一操作,所以我把目光转向了搭建DNS服务器上,这时一款用来屏蔽广告的软件AdGuard Home映入眼帘。

这是一款主要用来拦截广告的开源软件,当用户的设备尝试通过AdGuard Home 解析某个域名时,AdGuard Home会首先检查该域名是否在其过滤列表中,如果请求的域名在过滤列表中,AdGuard Home 不会将请求转发到实际的IP地址,而是返回一个空白的或者特定的IP地址(通常是0.0.0.0或者127.0.0.1),这样用户的设备就无法加载广告内容;如果请求的域名不在过滤列表中,AdGuard Home 会像正常的DNS服务器一样,将请求转发到相应的IP地址,允许正常内容的加载。

所以我们可以通过手动添加规则,来实现特定域名跳转到特定的IP地址。而这个软件安装后docker的ip地址就是一个DNS服务器了,可以手动把他添加到路由器的DNS服务器栏中,最终实现内网域名访问NAS。而且,因为他强大的广告拦截功能,我们也获得了一个过滤了广告的内网。接下来就是AdGuard Home在NAS上的部署流程。

在Container Station点击“浏览”旁边的三角按钮展开菜单,点击“提取映像”。

Container Station界面Container Station界面

在“映像”一栏填入“dockerpull.com/adguard/adguardhome”,点击“提取”。

提取映像提取映像

下载完毕后在左侧的“映像”中可以看到刚才下载的docker,点击对应docker右侧的三角按钮开始部署。

下载的docker下载的docker

出现创建容器界面,点击“下一步”。

创建容器创建容器

在“名称”栏输入这个容器的名称,这里我输入的是“adguardhome”,可以根据需要修改,方便分辨即可。随后点击“高级设置”。

设置容器名称设置容器名称

在“网络”选项中,网络模式选择“Bridge”,勾起“使用静态IP地址”,IP地址根据需要修改,这个IP就是后面我们在路由器或者电脑中设置的DNS服务器地址,这里我选择的是192.168.1.200

网络设置网络设置

在“存储”选项中,选择“绑定装载主机路径”。

网络设置网络设置

按照图中的设置填入主机和容器路径,其中主机路径需要提前手动建立好相应的文件夹。依次点击“应用”——“下一步”——“完成”,即完成部署。

存储路径设置存储路径设置

容器运行起来之后,在日志中即可看到我们设置的IP地址和端口号。

查看IP地址和端口号查看IP地址和端口号

在地址栏输入显示的IP地址和端口号(这里是192.168.1.200:3000)就可以打开AdGuard Home。根据提示一路下一步,设置好账号密码。

实现用域名访问内网中的NAS实现用域名访问内网中的NAS实现用域名访问内网中的NAS实现用域名访问内网中的NAS实现用域名访问内网中的NAS

用刚才设置好的账号密码登录。

实现用域名访问内网中的NAS

点击顶部的“过滤器”——“自定义过滤规则”。

实现用域名访问内网中的NAS

书写格式与hosts文件格式一样,比如我想让用户访问“www.baidu.com”时跳转到192.168.1.10去,就写“192.168.1.10 www.baidu.com”,然后点击应用。

实现用域名访问内网中的NAS

然后在路由器、电脑的DNS服务器设置中,填入192.168.1.200,就可以在内网用域名访问内网中的NAS服务器了。具体设置可以在软件顶部的“设置指导”中看到各种系统的设置方法。

这个方法可能有点绕,不过附送了整个局域网的广告过滤,也不枉折腾一场。至于广告拦截功能的设置,目前还在摸索中。

若有不足之处或者更好的方法,还请各位大佬不吝赐教实现用域名访问内网中的NAS

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
18评论

  • 精彩
  • 最新
  • 域名访问内网中部署的项目端口服务,对于无公网IP环境,做内网穿透是较为通用的方案,类似有如nat123、花生壳、金万维、FRP等网络端口映射软件工具方式,将本地局域网的网络地址转换成域名让互联网外网上连接访问。

    校验提示文案

    提交
  • 就是nat回环的问题

    校验提示文案

    提交
    嗯,大佬有更好的办法吗?我这个感觉有点绕

    校验提示文案

    提交
    这个问题不在于群,而是要在路由器/软路由上设置

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 这么绕啊,威联通基本都是双网卡吧,你一个网卡走反代,一个网卡走docker的Joplin,不就好了。

    校验提示文案

    提交
    我的nas是在光猫后面的,应该因为NAT回流的问题导致内网没办法域名访问,所以才考虑绕了这么大一圈,不过现在附带了内网广告过滤,就先这么用了 [惊喜]

    校验提示文案

    提交
    啊?我是光猫桥接路由再接NAS。那你路由器怎么接的呢?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • nat回流直接路由hosts填一条域名+内网解析地址就行

    校验提示文案

    提交
    tplink的5480好像没有这个功能

    校验提示文案

    提交
    刷梅林吧

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 我两台群晖远程域名访问,就不能同时网页的dsm登录。登录一台,另一台就自动退出。

    校验提示文案

    提交
  • 感觉没啥意义,局域网里面设置个导航页也可以轻松访问

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
120
扫一下,分享更方便,购买更轻松