NAS是我觉得家里必不可少的一台设备,NAS 全称 Network Attached Storage,即网络附加存储服务器,它通过自身的操作系统和 SMB/NFS/CIFS/FTP 等多种通信协议来给各种设备和平台提供数据的存储、访问和管理的服务,详细可见百度、维基。而家用 NAS 厂家都给我们提供了友善的图形化 Web 操作界面,定制化程度很高,可以很方便的进行服务部署、端口设置、权限管理等操作。主要品牌有群晖 Synology 和威联通 QNAP 。
OpenWRT作为最灵活和强大的路由器操作系统,基于它搭建简单易用的家庭网络共享,可以满足一般的日常使用。

下面我们看下如何使用OpenWRT搭建SMB家庭共享,实现基础的共享功能。

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

OpenWRT挂载完U盘/移动硬盘后,可以通过Samba实现局域网共享。

每次ssh登陆OpenWRT安装新软件时,都必须更新opkg

 opkg update

前提

  1. 确定你已经连接、并挂载了U盘/移动硬盘。 挂载过程可参考上一章【OpenWRT 挂载U盘、移动硬盘】

2. 配置防火墙策略,保证137 、138 、139、445 端口是打开的。

vi /etc/config/firewall增加以下内容config 'rule'option 'src' 'lan'option 'proto' 'udp'option 'dest_port' '137-138'option 'target' 'ACCEPT'config 'rule'option 'src' 'lan'option 'proto' 'tcp'option 'dest_port' '139'option 'target' 'ACCEPT'config 'rule'option 'src' 'lan'option 'proto' 'tcp'option 'dest_port' '445'option 'target' 'ACCEPT'保存并退出

安装SMB服务

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。Samba支持DOS、Windows、OS/2,Linux以及其他平台访问。

opkg update
opkg install samba36-server

/etc/init.d/samba enable
/etc/init.d/samba start

配置SMB

Samba的配置文件为/etc/samba/smb.conf,但是我们配置时不应该直接编辑/etc/samba/smb.conf,而应该编辑/etc/samba/smb.conf.template文件。 因为每次samba重启时,/ 配置为开机启动etc/samba/smb.conf都会从/etc/samba/smb.conf.template重新创建,导致我们的配置丢失。

下面开始简单的配置:

vi /etc/samba/smb.conf.template

例如要添加一个名称为smb的共享,共享路径为/smb2,允许匿名用户读写操作,在/etc/samba/smb.conf.template 配置文件最下方增加如下信息:

[smb]
path = /smb2
read only = no
guest ok = yes
create mask = 0750
directory mask = 0750

重新启动samba

/etc/init.d/samba restart

访问

完成如上配置,一个简单的smb共享就完成了。

Windows 输入 \192.168.1.1\smb Mac 系统输入 smb://192.168.1.1/smb 既可以访问到我们的smb共享,且不需要输入密码

如果在网络上搜索‘ OpenWRT Samba ’,会发现很多文章的配置是不清晰的。一般会开始就上来让你 修改配置文件/etc/samba/smb.conf,注释掉 invalid users = root, 这其实是完全没有必要的。 只有需要账号密码访问时才需要这些操作。

看下如何正确的使用账号密码访问smb共享

取消匿名访问

如果想为我们的smb共享增加用户名、密码访问功能。则需要如下设置

vi /etc/samba/smb.conf.template

将[global]中的invalid users = root注掉,guest ok = yes注释掉,像下面的样子:

[global]                                                                        netbios name = OpenWrt                                                  display charset = UTF-8                                                 interfaces = 127.0.0.1/8 lo 192.168.1.1/24 br-lan                       server string = OpenWrt                                                 unix charset = UTF-8                                                    workgroup = WORKGROUP                                                   browseable = yes                                                        deadtime = 30                                                           domain master = yes                                                     encrypt passwords = true                                                enable core files = no                                                  guest account = nobody                                                  #guest ok = yes                                                          #invalid users = root                                                   local master = yes                                                      load printers = no                                                      map to guest = Bad User                                                 max protocol = SMB2                                                     min receivefile size = 16384                                            null passwords = yes                                                    obey pam restrictions = yes                                             os level = 20                                                           passdb backend = smbpasswd                                              preferred master = yes                                                  printable = no                                                          security = user                                                         smb encrypt = disabled                                                  smb passwd file = /etc/samba/smbpasswd                                  socket options = TCP_NODELAY IPTOS_LOWDELAYsyslog = 2                            use sendfile = yes                         writeable = yes

同时将刚刚的smb共享部分调整如下:

[smb]
path = /smb2
read only = no
#guest ok = yes  #注释掉guest匿名访问
valid users = root #允许root用户访问
create mask = 0750
directory mask = 0750

重启

/etc/init.d/samba restart

这时我们发现//192.168.1.1/smb 无法直接访问了,需要输入用户名密码。 但是我们输入用户root 和它的密码时仍然无法登陆。 那是因为需要单独为samba设置用户密码。

smbpasswd -a root
New SMB password:
Retype SMB password:

/etc/init.d/samba restart

设置好密码后 重启 访问 输入密码,是不是好了。 如果不想使用root用户,可以参考如下步骤,创建新用户,并为新用户创建smbpasswd

User level accessAt user level access a username and password are needed to access the share.Steps:1. Add user to systemTo access a samba share with user level access there must be a user added to the system. Edit /etc/passwd and add a line for the new user. Choose a user id (the first number in the line) of 1000 or higher that does not exist yet. Set the group identification number (the second number) to the same number as the user nobody. Copy the rest.root:!:0:0:root:/root:/bin/ash
nobody:*:65534:65534:nobody:/var:/bin/false
daemon:*:65534:65534:daemon:/var:/bin/false
newuser:*:1000:65534:newuser:/var:/bin/false
Note: keep in mind that the user(s) and group(s) utilized by Samba need to have the proper permissions for their shares, i.e. they need write access in order to write via smb.2. Add samba password to usersmbpasswd -a newuser3. Change samba config to accept users with null passwordsEdit /etc/samba/smb.conf.template and add null passwords = yes:[global]netbios name = |NAME| workgroup = |WORKGROUP|server string = |DESCRIPTION|syslog = 10encrypt passwords = truepassdb backend = smbpasswdobey pam restrictions = yessocket options = TCP_NODELAYunix charset = ISO-8859-1local master = yespreferred master = yesos level = 20security = usernull passwords = yesguest account = nobodyinvalid users = rootsmb passwd file = /etc/samba/smbpasswd4. Add a shareThen add a share to /etc/config/samba. Make shure that guest ok is set to noconfig 'samba'option 'name' 'openwrt'option 'workgroup' 'WORKGROUP'option 'description' 'openwrt'option 'homes' '1'config 'sambashare'option 'read_only' 'no'option 'create_mask' '0700'option 'dir_mask' '0700'option 'name' 'name-of-share'option 'path' '/path/of/share'option 'guest_ok' 'no'
This share should now be accessible by \\ip-adress-openwrt\name-of-share (windows, correct username and password are needed).

参考

Samba How To

Samba (smb)

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。
转载请注明:文章转载自 「 微桔智居   http://wizju.com 」
本文标题: 智能路由器-OpenWRT 系列五 (NAS-SMB家庭共享)
本文地址:http://wizju.com/post/142/

转载于:https://www.cnblogs.com/wizju/p/6923625.html

智能路由器-OpenWRT 系列五 (NAS-SMB家庭共享)相关推荐

  1. 智能路由器-OpenWRT 系列一 (OpenWRT 刷机)

    现在没有了网络,估计大家都不知道该怎么消遣娱乐了. 电影.音乐.聊天.视频 .网络资讯,缺了网络,什么都搞不起.不过随着上网的时间越来越久,就会发现家庭网络不怎么好用,或者说是家里的路由器不怎么好用. ...

  2. 智能路由器-OpenWRT 系列四 (挂载移动设备)

    每次ssh登陆OpenWRT安装新软件时,都必须更新opkg opkg update 安装驱动 为了可以识别U盘/移动硬盘,必须安装相关的驱动. 一类是usb相关的驱动 opkg install km ...

  3. 智能路由器-OpenWRT 系列三 (OpenWRT安装LuCI网络配置)

    OpenWRT 安装 LUCI 每次ssh登陆OpenWRT安装新软件时,都必须更新opkg opkg update 安装LUCI opkg install luci 安装luci中文语言包, 不同O ...

  4. 一文万字带你入门智能路由器OpenWrt系统,并在虚拟中安装配置OpenWrt

    一.什么是智能路由器 接入网络的家庭用户终端越来越多,路由器控制越来越复杂,因此需要一个智能网关来管理家庭的设备,智能路由器就是这个网关. 另外,这个智能网关直接连在互联网上,需要隔离家庭网和互联网的 ...

  5. 智能路由器OpenWrt 开发环境 及 编译分析(一)

    OpenWrt 开发环境及编译分析 OpenWrt的版本:Chaos Calmer 15.05 软件源:软件源就是一个应用程序安装库,很多很多的应用软件都在这个库里面.只要设定好软件源,就能很方便的安 ...

  6. BootStrap 智能表单系列 五 表单依赖插件处理

    这一章比较简单哦,主要就是生产表单元素后的一些后续处理操作,比如日期插件的渲染.一些autocomplete的处理等,在回调里面处理就可以了, demo: $("input.date-pic ...

  7. EOS智能合约开发系列(五): 配置VS Code

    知识星球地址:https://t.zsxq.com/BQby76u 欢迎访问知识星球,并留言探讨.

  8. 【智能路由器】openwrt创建用户软件包

    [智能路由器]系列文章连接 http://blog.csdn.net/u012819339/article/category/5803489 openwrt根目录 先看看openwrt初次编译好后的目 ...

  9. 【智能路由器】新手openwrt平台搭建

    [智能路由器]系列文章连接 http://blog.csdn.net/u012819339/article/category/5803489 从本篇文章开始,后续文章将会转为在openwrt上的开发, ...

最新文章

  1. HighLight selected features
  2. [转]搞ACM的你伤不起(转自Roba大神)
  3. ansible-playbook之条件判断
  4. labview 软件编程规范
  5. 装饰者模式的应用场景
  6. php函数汉语,PHP汉字截取函数:UTF-8、GB2312双支持
  7. SQL Server 调优系列基础篇 - 子查询运算总结
  8. 面试题:左旋转字符串
  9. 36、NSTimer使用详解-开启、关闭、移除
  10. bind 启动redis_详解Redis开启远程登录连接
  11. UVA - 10976 分数拆分
  12. Python中while循环的基本用法
  13. 大地测量球面坐标BLH三个字母的由来含义
  14. 【组合数学】多项式定理 ( 多项式定理 | 多项式定理证明 | 多项式定理推论 1 项数是非负整数解个数 | 多项式定理推论 2 每项系数之和 )
  15. 2017第九届广州国际园林机械与园艺工具展会刊(参展商名录)
  16. 10 种 Python 聚类算法完整操作示例(附代码说明)
  17. 【JQuery】操作 DOM
  18. 玩树莓派(raspberry pi) 2/3 raspbian的遇到的一些问题
  19. fixed income
  20. 智禾教育:现在入局电商行业算晚吗,行业前景将会如何发展

热门文章

  1. 输入10个整数,计算它们的平均值(输出保留1位小数)。
  2. 关于解决tomcat的一个错误
  3. 问题解决: 解释器错误: 没有那个文件或目录
  4. ARM MOV指令对立即数的要求
  5. Spring Cache
  6. C语言再学习 -- 查看版本及内核信息(转)
  7. DM8168 DVRRDK软件框架研究
  8. pat天梯赛L2-010. 排座位
  9. SPV、SPV节点和SPV钱包
  10. Binder实用指南(二) - 实战篇