NAS可以外网访问咯

1 前言

虽然这篇post的主题是NAS(Network Attached Storage),但因为懒还是放在了VPS(virtual private server)目录里。上班后发现家里的黑群晖处于长期闲置状态,虽然一直开着机但在公司里也用不了(只能局域网访问)。这周末终于狠下心来整改一番,实现了外网访问,以后摸鱼工作起来更加便利了。

2 准备阶段

首先进行需求分析:能够从外网访问NAS的文件以及各种服务,实现方式经过百度Google可知有内网穿透端口映射两类,其中内网穿透我很早之前试过但死活不成功,有点恶心到我了所以这次直接pass。端口映射的话需要以下条件:

  1. 光猫改桥接,通过路由器拨号,这样路由器页面里设置的端口映射才有效,不然在光猫的下级网络里。(什么?你没有路由器直接拿光猫上网?并且还在用光猫的WIFI?不会吧不会吧?)
  2. 最好得有个域名,配置下DDNS,因为外部IP地址隔一段时间就会变,配置之后NAS检测到IP变化后会自动修改服务器提供商的解析设置,用户每次只需用域名访问即可。

下面回顾下具体需要准备的东西。

2.1 光猫改桥接

  1. 首先得获取光猫的管理员账号密码,这个一般搜一下就能搜到,实在不行问装机小哥,再不行万能的淘宝解决;
  2. 宽带拨号用的用户名(连接名称INTERNET_R_VID_XXX里面可以看到)及密码,办宽带的时候一般都会告诉你密码,没说的话自己在网上营业厅里应该也都能查到,我是自己在网上重置了拨号密码(顺便吐槽下中国联通,重置几次都失败,最后忍无可忍提交宽带故障保修后又立马重置成功了)。
  3. 修改成桥接模式很简单,但还是保守一点比较好,留条后路,不要随便把连接直接删了。只需要先把原来PPP(或者PPPOE?)模式的连接勾选的绑定端口给取消,然后再新建一个桥接模式的连接并勾选这个端口(千兆)就完事了。
  4. 路由器里面改成拨号输入账号密码就行,不出意外的话现在路由器就能够上网了,但光猫的管理页面大概率没办法再登上去。要用的话可以直接拿网线连,一般也不会再去动它。
  5. 记得根据群晖的MAC地址给它分配一个静态IP。
  6. 随便设置一个端口映射,用WAN IP:端口的形式可以访问就表示大功告成了。

2.2 DDNS设置

DDNS(Dynamic Domain Name Server),是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。

我的域名放在Cloudflare上,但在群晖上一看支持DDNS的默认服务商竟然没有它,好在有SynologyCloudflareDDNS这个工具可以添加,配置起来也很简单,我按照步骤来没出现任何问题。

3 其他设置

沉浸在成功实现外网访问的喜悦中,我一顿操作下来添加了接近10个端口映射。正准备再加个ssh端口时,我忽然想到,当初用NAS是因为它的安全性,文件都放在本地,在自己的掌控中;而将这些东西暴露在外网,甚至想直接用ssh登录,这样和VPS有什么区别,人家毕竟还是是专业托管机器的,反而比我这个小白弄的裸奔群晖安全吧。

那么相对安全地暴露到公网的方式是什么呢,第一个想到的是VPN,只需要开放VPN相关的端口,通过它进入内网,之后就可以愉快地在工作时访问啦~

下面具体说下我的设置:

  1. 群晖安装VPN Server应用(国内被下架了,需要到官网去下载安装包手动安装)
  2. 开启之前先看一看群晖的证书设置,也以自己导入SSL证书,但最好不要把默认的给删了
  3. 我用的是openvpn,它的配置可以非常复杂,但我现在以能用为首要目标,就直接在页面上设置完事。只需要改一下动态IP地址(和局域网不同网段)以及勾选 允许客户端访问服务器的LAN 选项,导出配置里在修改下域名端口就行
  4. 我暂且只设置了账号密码登录,后续配合秘钥登录可能更好,但感觉安全性已经差不多了,毕竟是毫无规律性的几十位的数字字母字符混合密码加上群晖的自动封锁账户保护功能
  5. 关闭除VPN以外的所有端口,保证直接从外网是打开不了网页的,防止被攻击以及被运营商找茬
  6. 更多安全设置可以参考这位大佬的文章(垃圾充斥的CSDN里还是有点好东西的)

最后补充一点:
千万不要买个辣鸡路由器,主板配置low的一匹、就没几个选项。我用的是华硕性价比最高的一款(穷),除了需要定时重启(不然运行几十天后会不太稳定)其他都感觉不错。

Author: zcp
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source zcp !
评论
 Previous
Vim升级NeoVim,再到SpaceVim
1 Vim的麻烦之处Vim用了很长一段时间,搭配各种插件、学习VimScript等也逐步积累了一些配置。但随着使用场景重心转移到C/C++项目上,感觉YCM(YouCompleteMe)、ctags(vim-gutentags)等
Next 
Makefile学习
在Linux(unix)环境下使用GNU的make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。 make是一个命令工具,它解释Makefile中的指令(应该说是规则
  TOC