现在有了良好的网络环境,开始搭建我的存储服务。

我没有用成熟的nas套件,绿联/群晖之类。使用的是arm64的ubuntu服务器,连接硬盘盒挂载大容量机械硬盘。

先挂载硬盘

  1. blkid查看硬盘的UUID
  2. 编辑/etc/fstab文件, 在其中增加对应的硬盘UUID及其想要挂载到的目录
UUID=5FB5-3BE3 /mnts exfat  defaults  0 0
UUID=24267054267028C6 /mnt ntfs  defaults  0 0

请注意不同文件格式的硬盘:exfat、ntfs。 如果nas需要被不同系统读写,比如mac、win、linux,建议硬盘格式化为exfat格式。

  1. 执行mount -a即可挂载硬盘。

进行局域网访问

局域网访问nas,有很多种协议方案。

  • SMB协议
  • FTP协议
  • WEBDAV协议

这里推荐使用一个叫chfs的方案,官网github地址。它的优点是轻量、跨平台、支持webdav。

  1. 下载平台对应压缩包,解压二进制文件chfs到你想要的目录.
  2. 编写config.ini文件:
port=24613 #端口设置,不要与别的服务冲突,如需外网访问,避开常用服务端口
path=/mnts/set/ #共享的文件夹路径(第一步挂载的硬盘目录)
rule=:: #匿名用户禁止访问
rule=username:password:RW #可访问的用户及密码以及访问权限,RWD分别代表读取、写入、删除。
log=~/software/chfs/log #log文件放置位置
html.title=test // 随便写
html.notice=only test // 随便写
  1. 启动chfs /path/to/chfs --file=/path/to/config.ini

至此,就可以在局域网内访问挂载的硬盘中的内容了,地址为192.168.x.x:24613或者192.168.x.x:24613/webdav。 请注意,如果用webdav,需要在客户端而非网页浏览器内访问,因为webdav需要用http的post方法,而浏览器地址是get方法,是无法访问的。

等等,上一篇提到的IPV6能用在这里吗?

当然!

外网访问存储硬盘

我们之前为了IPV6费了不少功夫,就是为了这里可以在外网利用IPV6访问我们的nas。

为什么不用ipv4? ipv4要么要申请公网ip,要么要内网穿透,麻烦不说,访问还很慢

  1. 确保你的终端确实是可以正常使用IPV6的,验证方法上一篇有提到。并关闭从nas设备到光猫之间所有路由的IPV6防火墙,为了安全,建议不要完全关闭,而是用ip6tables开放chfs服务端口24613的出入以及转发,我这里是H3C路由器示例:
  • 使用telnet/ssh登录路由器
  • 增加防火墙规则
ip6tables -I INPUT -p tcp --dport 24613 -j ACCEPT
ip6tables -I OUTPUT -p tcp --sport 24613 -j ACCEPT
ip6tables -I FORWARD -p tcp --dport 24613 -j ACCEPT
  1. 用以下命令获取你的nas主机的IPV6地址:
ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.6.24  netmask 255.255.255.0  broadcast 192.168.6.255
        inet6 2408:820c:8f48:8091:xxxx:xxxx:xxxx  prefixlen 64  scopeid 0x0<global>
        inet6 2408:820c:xxxx:xxxx::3ce  prefixlen 128  scopeid 0x0<global>
        inet6 2408:820c:8f48:xxxx:7511:xxxx:c2e4:xxxx  prefixlen 64  scopeid 0x0<global>
        ether fc:7c:02:88:c7:c4  txqueuelen 1000  (Ethernet)
        RX packets 26611171  bytes 33688492527 (33.6 GB)
        RX errors 0  dropped 1  overruns 0  frame 0
        TX packets 8562653  bytes 3121262278 (3.1 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 21

找到eth0网卡的IPV6地址(inet6后面的),也许你的主机和我一样有多个公网IPV6地址(非fe80开头,这是内网地址),没关系每个都是可以使用的,因为里面有临时地址,我们一般取第一个即可。

  1. 可以用IPV6来访问nas了~访问地址:[2408:820c:8f48:8091:xxxx:xxxx:xxxx]:24613或者[2408:820c:8f48:8091:xxxx:xxxx:xxxx]:24613/webdav(客户端访问)。

  2. 你可以使用手机连接4g、5g网络,在手机浏览器或者支持webdav的app中用上面的公网IPV6地址进行访问。

至此,我们就实现了用公网IPV6访问家庭存储, 有一点局限性就是访问时的网络环境必须支持IPV6,目前移动手机网络基本都支持,但单位网络不一定。

但,IPV6地址也太长了,我也记不住啊,怎么办?

是的,没人会去记这么长的地址,解决方案就是使用DDNS进行IPV6和域名的绑定。

DDNS绑定IPV6和域名进行访问

  1. 申请(购买)域名,我们去腾讯云、阿里云等云服务商都可以很轻松地买到便宜的域名,一年可能也就十几块。这里我用腾讯云的dnspod来进行,假设我买域名是halo.org。

  2. 登录dnspod控制台,找到我的域名,增加域名解析。

  • 主机记录:填写nas,则代表访问域名为nas.halo.org。
  • 记录类型:由于我们是IPV6, 所以选择AAAA。
  • 记录值:nas所在主机设备的IPV6地址。
  1. 此时,我们就可以用域名nas.halo.org:24613或者nas.halo.org:24613/webdav进行访问了。

因为IPV6地址虽然是公网的,但是它是可变的,也就是说你的NAS设备IPV6地址今天是这个,明天就可能变为另一个,你的域名解析对应的记录值就得跟着变,所以还得有个方案,当地址变化后,主动更新域名解析对应的记录值。

动态更新域名的记录值

这里使用开源方案ddns-watch-dog

  1. 下载自己设备平台对应的ddns-watch-dog二进制文件
  2. ./ddns-watchdog-client -i 01234 初始化所有配置文件并退出,文件所在目录会多一个conf文件夹,里面有client.json和各个云服务商的json文件
  3. 修改client.json
{
        "api_url": {
                "ipv4": "https://yzyweb.cn/ddns-watchdog",
                "ipv6": "https://yzyweb.cn/ddns-watchdog6",
                "version": "https://yzyweb.cn/ddns-watchdog"
        },
        "center": {
                "enable": false,
                "api_url": "",
                "token": ""
        },
        "enable": {
                "ipv4": false,
                "ipv6": true
        },
        "network_card": {
                "enable": true,
                "ipv4": "",
                "ipv6": "eth0 1"
        },
        "services": {
                "dnspod": true,
                "alidns": false,
                "cloudflare": false,
                "huawei_cloud": false
        },
        "check_cycle_minutes": 30
}

请注意network_card这里需要用./ddns-watchdog-client -n查看你自己的网卡id并填入。

  1. 修改dnspod.json
{
        "id": "你的id",
        "token": "你的token",
        "domain": "halo.org",
        "sub_domain": {
                "aaaa": "nas"
        }
}
  1. 启动/path/to/ddns-watchdog-client即可。

至此,就实现了nas主机IPV6地址与域名动态绑定,以后就只用域名访问即可~

标签: IPV6, NAS, CHFS, 局域网, 存储服务, DDNS

添加新评论

0%