DIY NAS系列02—软件篇

DIY NAS 搭建过程

上一篇讲了DIY NAS的攒机过程,这篇文章就简单讲讲系统安装和实现NAS基本功能,附加功能留在下一篇。

本文其他地址:自建NAS系列02——软件篇

系统与协议

  • Ubuntu
  • Samba

系统安装与设置

下载系统

NAS系统有很多种黑群晖、FreeNAS等,也可以Windows或Linux自己搞系统。我就是有事没事瞎折腾那种,所以选了Ubuntu。
系统从官方下载就可以:https://www.ubuntu.com/#download 带有LTS的是稳定版,不带就可能会有些bug,喜欢那个下哪个。
最开始担心命令行用不好所以下了Ubuntu desktop,该版本提供了GUI插上显示器就可以和Mac OS一样操作了,但实际上大部分操作还是用命令行完成的,GUI只是让你更直观的浏览文件而已,等配置完成之后几乎不会再看了,所以不建议使用桌面版。还是推荐Ubuntu Server,省去了GUI的空间还能减少运行负载(虽然也不多)。

安装系统

准备一个U盘,把下好的系统用U盘工具做成启动盘,插在NAS上启动,基本一路默认选项等待安装就可以。注意安装时候看好安装分区,把系统安装在固态里。设置的管理员名称和密码要记住。18.04版本可以参考:https://blog.csdn.net/zhengchaooo/article/details/80145744

网络设置

为了方便局域网访问,最好将NAS分配为静态ip。如果在安装时没有设置可参照此步骤设置。 首先将NAS插上网线
若为Ubuntu desktop则使用GUI操作在网络设置里配置即可
若为Ubuntu server则按如下步骤(以18.04为例,之前版本可能无效)
打开Ubuntu控制台,输入ifconfig

ifconfig

列出的信息第一个单词就是网卡名称拷贝下来,如我的就是enp1s0

enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

随后输入,大部分人习惯使用vim指令,我个人还是更习惯nano编辑
若要求输入密码,则输入之前设置好的管理员密码即可,输入的密码不会被显示出来,输入完回车即可

sudo nano /etc/netplan/50-cloud-init.yaml

在新窗口中添加如下内容

network:
version: 2
ethernets:
ens33:   enp1s0 #替换为上面个拷贝的网卡名
dhcp4: no    #dhcp4关闭
dhcp6: no    #dhcp6关闭
addresses: [192.168.1.100/24]   #设置本机IP及掩码 可以根据自己需要改成未被占用的本地ip
gateway4: 192.168.1.254   #设置网关
nameservers:
addresses: [114.114.114.114, 8.8.8.8]   #设置DNS

填写完成ctrl + w,回车,ctrl + x,保存退出(该操作仅用于nano编辑指令) 再输入

sudo netplan apply

网络服务重启后可再次输入ifconfig查看是否按自定义的静态ip分配,同时可以输入

ping www.baidu.com

查看网络是否通畅,若网络正常则会出现类似如下信息出现,按ctrl + c终止该操作

PING www.a.shifen.com (119.75.213.61) 56(84) bytes of data.
64 bytes from 127.0.0.1 (119.75.213.61): icmp_seq=1 ttl=57 time=3.64 ms
64 bytes from 127.0.0.1 (119.75.213.61): icmp_seq=2 ttl=57 time=5.07 ms
64 bytes from 127.0.0.1 (119.75.213.61): icmp_seq=3 ttl=57 time=3.84 ms
64 bytes from 127.0.0.1 (119.75.213.61): icmp_seq=4 ttl=57 time=5.62 ms

若不通可能需要配合路由器设置分配静态ip

挂载硬盘

Ubuntu不能直接识别硬盘,需要手动挂载输入如下指令
首先需要确认找到系统是别的硬盘接口,输入

sudo fdisk -lu

在打印出的信息中根据硬盘信息找到自己的需要挂载的硬盘

Disk /dev/sda: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/sdb: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt

如上为我的4T数据盘和120G的系统盘,因此我们需要操作的目录为/dev/sda
**/mnt/nas01为自定义的目录,建议挂载的硬盘统一在mnt目录下,盘名可按系统分配名称定为sdb或自定义为nas01等 **

mkfs.ext4 /dev/sda
mkdir /mnt/nas01
mount /dev/sda /mnt/nas01

第一行为将/dev/sda下的硬盘以ext4格式化,第二行创建目录,第三行将硬盘挂载
为了免去每次开机挂载硬盘的步骤,我们还需要设置开机自动挂载,输入sudo blkid会列出挂载的硬盘列表,如下,找到需要自动挂载的硬盘拷贝其UUID

sudo blkid
/dev/sda:  UUID="d90f8d62-0baf-4092-bc05-6c987f1119da" TYPE="ext4"

输入

sudo nano /etc/fstab

在最后加一行,注意UUID的值替换为上面过程拷贝的UUID,后面的挂载目录也和自己设置保持一致

UUID=11263962-9715-473f-9421-0b604e895aaa /mnt/nas01 ext4 defaults 0 1

修改完fstab文件后,可输入sudo mount -a验证配置是否正确

测试

输入指令,后面目录要改为自己的磁盘(非挂载目录)

sudo hdparm -Tt /dev/sda

可测试磁盘读写速度,得到

/dev/sda:
 Timing cached reads:   4112 MB in  2.00 seconds = 2057.09 MB/sec
 Timing buffered disk reads: 544 MB in  3.00 seconds = 181.11 MB/sec

速度符合西数红盘正常值,如果组成RAID速度将会更快

到此基本的系统配置已经完成

NAS的安装配置

运行一下两个指令更新系统以及安装samba服务器,有的教程里执行前会要求更换国内软件源,但我在实际安装过程中发现不用这么做了。

apt update
apt upgrade
sudo apt-get install samba samba-common

安装完成后在挂载的磁盘目录下新建文件夹

mkdir /mnt/nas01/Public
chmod 777 /mnt/nas01/Public

这里举例在磁盘下新建一个Public文件夹并设置读写权限
接着输入

sudo nano /etc/samba/smb.conf

在最后一行添加

[Public]
path = /mnt/nas01/Public/
public = yes
browseable = yes
directory mask = 0777
create mask = 0777
read only = no

保存退出,运行

sudo service smbd restart

重启samba服务,至此即创建了一个可被任何用户访问的目录Public
若建立需要权限才能看到的目录则需如下操作
新建私人目录

mkdir /mnt/nas01/UserPrivate
chmod 777 /mnt/nas01/UserPrivate

添加samba用户并激活

sudo smbpasswd  -a  user01 
sudo smbpasswd  -e  user01 

username为Ubuntu系统用户名,若没有则需要先建立系统用户
修改samba配置文件

sudo nano /etc/samba/smb.conf

在最开始的[global]标题下添加一行,加入此行的目的是系统会根据登录的用户名读取对应的配置文件,以加载该用户可访问的目录

include = /etc/samba/%U.smb.conf

添加后保存退出,继续执行

sudo nano /etc/samba/user01.smb.conf 

同样user01为你想设置的用户名称,在该新建的配置文件中添加

[User01PrivateFile]                 #括号内名称可自定义
path = /mnt/nas01/UserPrivate    #此处目录替换为新建的私人目录
valid users = user01        #这里user01必须和之前添加的samba用户名一致
read only = no
create mask = 0777
directory mask = 0777

保存退出,重启服务

sudo service smbd restart

测试

查看局域网

使用另一台电脑,若为Windows则启动控制台,若为Mac则启动终端,输入

ping 192.168.1.100

此处ip地址为最初设置静态ip时设置的地址,查看是否连通同上面ping baidu时状态 若能ping通则在cmd中输入\192.168.1.100\Public即可,Mac下则使用Finder连接服务器输入地址smb://192.168.1.100\Public,访问私人目录则替换Public即可

访问速度

测速方法
  1. 可使用 iperf测速,iperf支持多个平台,操作也不难。NAS端(Ubuntu)可直接输入安装iperf

     sudo apt-get install iperf3
    

    客户端可从上方地址下载执行文件
    以Mac OS为例,首先在NAS控制台输入

     iperf3 -s
    

    此时NAS端即挂起iperf服务并等待请求,在Mac开启终端并进入iperf可执行文件所在目录输入

     iperf3 -c 192.168.1.100
    

    iperf即开始进行终端到服务端的测速,上方IP地址根据之前自定义的NAS静态IP修改

  2. Mac OS下也可打开活动监视器,在没有其他网络操作的情况下通过向NAS拷贝文件,观察监视器网络模块右下角显示的速度
  3. Windows 上还可另外使用nastester或LAN Speed Test进行测速

测速结果

路由位于客厅,终端位于5米远隔一堵墙的卧室,在5GWiFi下传输速率能够达到40-50MB/s,若在路由边上半米内则能达到100MB/s,因此为了确保理想的传输速率,建议使用有线网络。 Mac下信号强度和协议传输速度可按住option点击右上方WiFi图标查看当前连接信息

一般环境下:    
理想环境下:    

解决问题

windows局域网无法发现NAS

win7用户进入控制面板→程序→程序和功能
win10用户进入设置→应用和功能→程序和功能

选择启用或关闭Windows功能→SMB 1.0/CIFS文件共享支持

右击我的电脑→管理→服务 启动以下几项服务
1.TCP/IP NetBIOS Helper
2.Function Discovery Resource Publication
3.UPnP Device Host
4.SSDP Discovery

最后

在安装过程中也遇到些麻烦,写这篇文章的时候可能被我忽略,如有人遇到问题请及时留言 至此一个能实现局域网内存取数据的NAS的雏形已完成,后续仍需许多服务升级,升级过程请见第三篇文章。

参考

Ubuntu 18.04 Server 版安装
https://blog.csdn.net/zhengchaooo/article/details/80145744
这篇提供了服务解决方案
http://www.shafa.com/articles/zFtgQfCV8NRQoNZA.html
硬盘挂载教程
https://www.jianshu.com/p/ec5579ef15a6
开机自动挂载
https://blog.csdn.net/iAm333/article/details/17224115
安装samba服务
https://www.cnblogs.com/liujunhang/articles/9322999.html