OpenWrt Nas新玩法,你的Nas何必是Nas,软路由当Nas保姆级教程
前言
大家好,我是折了个腾,一个拖更半年昨晚梦到有人催更才来填坑的博主,点开我的主页,上一次发文还是在上次
,不由想起当初立下的flag:
我觉得我厚着脸皮努把力,春节前更新完这些稳稳地没问题啊
毕竟春节还有200多天呢(臭鸡蛋稍后扔,容我码完这篇文章),不过刚刚在nas找素材看了一眼素材日期,还真想抽自己两耳光,如果你也想抽,请发个
zsbd 让我知道。
可能我是第一个拿着半年前的素材来填坑的博主了,不过技术永远在进步,玩法却并不会落后,因为技术只是玩法的实现方式,所以还是用做好的素材来写这篇文章吧。
环境介绍
首先介绍一下当时的演示环境,硬件是星际魔盒魔改I5 4012Y三千兆双盘位NAS,固件是Kiddin的openwrt。硬件因为转手了就不展示了,如果大家对星际魔盒改X86感兴趣的话,可以留言告知,到时候写一篇改装专题。
固件得说道说道,之前一直是用的esir的固件,因为esir固件集成的东西太多出现问题排查非常困难,用来折腾这些新东西不太合适,所以换了这款几乎0预装,有在线插件库的固件,并一直自用到现在,非常稳定。
固件地址:op.supes.top(小编别吞)
这个openwrt系统第一次进后台自带设置向导,非常贴心。
网口绑定
不过网口的绑定方式有些特别,所以这里给出详细教程,以免浪费大家时间。
WAN口绑定设置是在 网络-接口-编辑-常规设置-设备
LAN口绑定设置在 网络-接口与-设备-(br-lan)配置-网桥端口这里勾选
这个和绝大多数固件不一样,如果你是多口软路由,绑定接口看上面教程。
插件安装
这里展示的是系统-软件包-已安装界面,这里先卸载一个插件叫 autoshare-samba,这个插件会自动挂载2个Samba共享,删也删不掉,还挂载的莫名其妙的目录,非常讨厌。如果没找到这个插件,那就是固件开发作者删除了,直接忽略即可。
然后我们先更新列表,一般安装新插件都会点一下这个更新列表
这里先安装个diskman,用于硬盘分区等操作。
需要安装其他插件直接在可用里面搜索,作者自己的源,速度和可靠性都非常不错,而且更新很及时,墙裂推荐。
这个固件不仅强在自带插件源,而且会把插件需要用到的支持也一并安装,基本上点一下插件就能用了。
可以看到下载地址都是作者自带的源地址。看到已完成就是安装好了。
硬盘分区
刷新一下主页,点 系统-diskman打开刚刚安装的插件,找到你的硬盘点编辑。
来到分区页面,计算一下扇区
1 GB = 1024 MB
1 MB = 1024 KB
1 KB = 1024 Bytes
一个扇区是512Bytes,1KB需要两个扇区
所以30G=30*1024*1024*2扇区,起始扇区系统默认,所以中止扇区填62914560+2089984=65004544,点击创建,分出来就是30G整。
PS:我这里是分30G出来扩容opt系统跑跑docker之类的,如果你不需要就直接分区一个整的数据分区。
分区格式选ext4,兼容性会好一点。
分区好了是立刻生效的,返回到diskman主菜单就可以看到刚刚做好的分区。
docker扩容
然后我们来到系统-挂载点,点击新增
我这里选30G的分区挂载到/OPT,用来玩docker
另外一个分区随便挂载一个/SSD的目录,用来当下载缓存或者其他的。然后保存应用。
来到docker就可以看到挂载成功了。
网络共享
然后来到系统-网络共享-点击编辑模板,填入以下模板代码
[global]
## 网络共享名称
netbios name = OpenWrt Nas
## 绑定到的网络接口
interfaces = br-lan
## 服务描述信息
server string = Samba on OpenWrt
unix charset = UTF-8
## 工作域
workgroup = WORKGROUP
## 加载相关功能模块(用来支持APF、弥补APF协议的一些缺陷以及一些功能扩展支持)
vfs objects = catia fruit streams_xattr
## 这个选项在某些环境下如果不指定目录权限不会被继承
fruit:nfs_aces = no
inherit permissions = yes
## This global parameter allows the Samba admin to limit what interfaces on a machine will serve SMB requests.
bind interfaces only = yes
## time for inactive connections to-be closed in minutes
deadtime = 30
## Log File
log level = 4
log file = /var/log/samba/samba.log
## disable core dumps
enable core files = no
## set security (auto, user, domain, ads)
security = user
## map unknow users to guest
map to guest = Bad User
## The old plaintext passdb backend. Some Samba features will not work if this passdb backend is used. (NOTE: enabled for size reasons)
## (tdbsam,smbpasswd,ldapsam)
passdb backend = smbpasswd
## LAN/WAN options (IPTOS_LOWDELAY TCP_NODELAY) WAN (IPTOS_THROUGHPUT)
socket options = IPTOS_LOWDELAY TCP_NODELAY
## disable loading of all printcap printers by default (iprint, cups, lpstat)
load printers = No
printcap name = /dev/null
## Enabling this parameter will disable Samba's support for the SPOOLSS set of MS-RPC's.
disable spoolss = yes
## This parameters controls how printer status information is interpreted on your system.
## (BSD, AIX, LPRNG, PLP, SYSV, HPUX, QNX, SOFTQ)
printing = bsd
## Allows the server name that is advertised through MDNS to be set to the hostname rather than the Samba NETBIOS name.
## This allows an administrator to make Samba registered MDNS records match the case of the hostname rather than being in all capitals.
## (netbios, mdns)
mdns name = mdns
## This is a list of files and directories that are neither visible nor accessible.
## Each entry in the list must be separated by a '/', which allows spaces to be included in the entry. '*' and '?' can be used to specify multiple files or directories as in DOS wildcards.
veto files = /Thumbs.db/.DS_Store/._.DS_Store/.apdisk/
## If a directory that is to be deleted contains nothing but veto files this deletion will fail unless you also set the delete veto files parameter to yes.
delete veto files = yes
################################################################
[SSD]
## 需要共享的目录所在路径 (我这里是单独一块硬盘的文件夹)
path = /mnt/sda3
## 设置谁可以访问这个目录,默认配置下这个用户名来自于 /etc/samba/smbpasswd 文件.
## 使用 @前缀表示哪个用户组可以访问, 多个用户或分组使用逗号(,)间隔.
valid users = timemachine,@root
## 目录是否可以写入
writable = yes
## 目录只读(与 writable 参数互斥)
read only = no
## 文件权限掩码
create mask = 0666
## 目录权限掩码
directory mask = 0755
## 这个目录在网络中是否可以被人看到;如果设置为 no 别人不会看到,但是可以通过路径来直接访问
#browseable = no
## 继承acl 权限控制(暂时还没搞清这个参数,设置后有问题,所以注释了)
#inherit acls = yes
## 文件或目录的所有者继承;相当于你在根目录创建一个文件夹后其他人创建的目录和文件将都属于你
inherit owner = yes
## file/dir creating rules
## 这个参数相当于是给目录绑定默认分组
#force group = timemachine
## 相当于绑定默认账户(当设置参数guest ok = yes 时这两个参数可能会发挥价值)
#force user = timemachine
#fruit:nfs_aces = no
fruit:encoding = native
## 支持MAC用户对文件或目录写入元数据
fruit:metadata = stream
## 是否否决 _ AppleDouble 文件的创建(设置为 yes 那么 苹果的 timemachine 功能可能无法使用)
fruit:veto_appledouble = no
## 官方文档中说这个参数是用来设置图标的(实际好像没有效果 - -)
fruit:model = MacSamba
## 设置这个目录作为 苹果的 TimeMachine
fruit:time machine = yes
######### Dynamic written config options #########
我没能用到的参数都用中文备注了,大家参考着修改即可。下面 [SSD]开头的是一个共享的参数设置,可以自行微调。如果需要其他共享,直接复制[SSD]下面一段粘贴重新设置一下参数即可。
然后用ssh工具连接到软路由,来到软路由命令行,输入 smbpasswd -a root 创建一个Samba账户,根据提示输入密码。然后输入 service samba4 restart重启Samba服务器。
重启完就可以用刚设置的密码登录到OPENWRT这个共享服务器了,可以看到我没设置的sda3这个分区共享到SSD,目录是可写的,那Samba共享算部署完成。
webdev
这个简单,还是到系统-软件包去搜luci-app-aliyundrive-webdav安装,然后按插件教程获取token即可。
用这个在线看视频的速度飞快。另外还有一个可以挂载到本地硬盘然后共享,电脑连接上共享以后和本地访问一样,叫clouddrive,感兴趣的可以研究一下。
Aria下载
插件安装方式不赘述了,安装好设置一下目录即可。
自带NG后台,下载不愁。
时间机器备份
因为是星际魔盒,插了两块3T硬盘,需要使用时间机器的把共享模板里面的 fruit:time machine = yes 选项打开即可,也是妥妥的没问题。
总结
这套方案优缺点明显,优点是openwrt大家都熟悉,插件也众多,而且不用投入新的设备,甚至现有软路由插个USB移动硬盘都可以跑起来,运行也稳定。缺点就是只适合轻nas应用,什么相册管理、在线接码之类的就不好实现,而且数据安全没有保障,硬盘坏了就遭了。
不可否认这套方案适用很多轻NAS用户,备份点数据、偶尔下点视频、有一些新奇的插件、跑跑docker之类的都可以胜任。我自己这套方案用过了半年以上了,只不过把这个I5 4012Y撤下来了,换上大唐J1900超薄的3口机器,放一个1T小机械硬盘备份时间机器、挂几个docker,性能上没什么压力,重要数据4盘Nas冷备份。
虽然是拖更区的博主,但是文章素材很多,写个20篇不在话下,大家支持一下给点动力,点个赞评论一下都是鼓励,感谢大家。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~





























校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
自己云编译的x86固件,群晖虚拟机可安装,极度精简
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
自己云编译的x86固件,群晖虚拟机可安装,极度精简
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案