openwrt 物联网平台(Openwrt docker联网)

Mark wiens

发布时间:2022-11-17

openwrt 物联网平台(Openwrt docker联网)

 

前言

大家好,我是折了个腾,一个拖更半年昨晚梦到有人催更才来填坑的博主,点开我的主页,上一次发文还是在上次,不由想起当初立下的flag:

我觉得我厚着脸皮努把力,春节前更新完这些稳稳地没问题啊

毕竟春节还有200多天呢(臭鸡蛋稍后扔,容我码完这篇文章),不过刚刚在nas找素材看了一眼素材日期,还真想抽自己两耳光,如果你也想抽我两耳光,请发个让我知道。

可能我是第一个拿着半年前的素材来填坑的博主了,不过技术永远在进步,玩法却并不会落后,因为技术只是玩法的实现方式,所以还是用做好的素材来写这篇文章吧。

正文

首先介绍一下当时的演示环境,硬件是星际魔盒魔改I5 4012Y三千兆双盘位NAS,固件是Kiddin的openwrt。硬件因为转手了就不展示了,如果大家对星际魔盒改X86感兴趣的话,可以留言告知,到时候写一篇改装专题。

固件得说道说道,之前一直是用的esir的固件,因为esir固件集成的东西太多出现问题排查非常困难,用来折腾这些新东西不太合适,所以换了这款几乎0预装,有在线插件库的固件,并一直自用到现在,非常稳定。

这个openwrt系统第一次进后台自带设置向导,非常贴心。

网口绑定

不过网口的绑定方式有些特别,所以这里给出详细教程,以免浪费大家时间。

WAN口绑定设置是在 网络-接口-编辑-常规设置-设备

LAN口绑定设置在 网络-接口与-设备-(br-lan)配置-网桥端口这里勾选

这个和绝大多数固件不一样,如果你是多口软路由,绑定接口看上面教程。

插件安装

这里展示的是系统-软件包-已安装界面,这里先卸载一个插件叫 autoshare-samba,这个插件会自动挂载一个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)

互联网小常识:FTP服务器配置的主要参数有:域(一个域由ip地址和端口号唯一识别)、匿名用户、命名用户和组。

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)

互联网小常识:802.11:1Mbps,2Mbps;802.11b:1Mbps,2Mbps;5.5Mbps;11Mbps;802.11a:54Mbps.

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 Sambas support for the SPOOLSS set of MS-RPCs.

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]开头的是一个共享OP的参数设置,可以自行微调。如果需要其他共享,直接复制[SSD]下面一段粘贴重新设置一下参数即可。

然后用ssh工具连接到软路由,来到软路由命令行,输入 smbpasswd -a root 创建一个Samba账户,根据提示输入密码。然后输入 service samba4 restart重启Samba服务器。

重启完就可以用刚设置的密码登录到OPENWRT这个共享服务器了,可以看到我没设置的sda3这个分区共享到SSD,目录是可写的。

阿里云挂载webdev

这个简单,还是到系统-软件包去搜luci-app-aliyundrive-webdav安装,然后按插件教程获取token即可。

用这个在线看视频的速度飞快。

Aria下载

插件安装方式不赘述了,安装好设置一下目录即可。

自带NG后台,下载不愁。

时间机器备份

因为是星际魔盒,插了两块3T硬盘,需要使用时间机器的把共享模板里面的 fruit:time machine = yes 选项打开即可,也是妥妥的没问题。

总结

这套方案优缺点非常明显,优点是不用投入新的设备,甚至现有软路由插个USB移动硬盘都可以实现,运行也稳定。缺点就是数据安全没有保障,硬盘坏了就遭了。

这套方案适用很多轻NAS用户,备份点数据,偶尔下点视频,有一些新奇的插件,跑跑docker之类的都可以胜任。我自己是在这样用的,只不过把这个I5 4012Y撤下来换上了J1900,大唐超薄的3口机器,放了一个1T小机械硬盘备份时间机器、挂着docker跑青龙、阿里云webdev看剧,没什么压力。

虽然是拖更区的博主,但是文章素材很多,写个20篇不在话下,要的只是大家支持一下,点个赞评论一下都是鼓励,感谢大家。

互联网小常识:Aironet 1100 系列接入点是一款无线局域网接发器,主要用于独立无线网络的中心点或无线网络和有线网络之间的连接点。这款接入点设备主要是为企业办公环境而设计,兼容IEEE802.11b与IEEE802.11g,工作在2.4GHz频段,使用IOS操作系统。

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186