ubuntu – nas

  • 1 Hardware requirements
  • 2 Software requirements
  • 3 Set up static IP and networking
  • 4 Set up RAID
  • 5 Mount the hard drive (optional)
  • 6 Set up NFS Server and NFS Share
  • 7 Set up Samba Shares
  • 8 Assign a nice URL to NAS IP

1 . 至少1核2g 8g 硬盘

2. 按照 ubuntu server

软件选择  SSH Server (to enable SSH access) and Samba (to enable file access).

3. 设置网络

配置静态IP, 新版ubuntu 默认 netplan接管网络

4. RAID (Redundant Array of Independent Disks) 

a storage virtualization technology that combines multiple physical disk drive components into logical units.

分为 硬件raid / 软件raid 软件raid 很鸡肋

In case you decide to use RAID, install mdadm by running the following command:

sudo apt-get --no-install-recommends install mdadm

我们使用–no-install-recommends 来避免安装mail-transport-agent 和default-mta,它们会设置我们并不真正需要的新邮件代理

 If you want a step-by-step guide, check out How To Create RAID Arrays with mdadm.

5. Mount the hard drive (optional)

如果只有一块硬盘, 组不了raid 我们就挂载它吧

sudo mkdir /mnt/hdd1
sudo chown -hR $(whoami):$(whoami) /mnt/hdd1

接下来我们要做的是编辑 /etc/fstab 文件并包含新路径,以便下次重新启动时可以识别我们的磁盘驱动器。

运行以下命令并记下要自动挂载的磁盘驱动器的 ID 号

*新磁盘可能需要格式化才能查看到Id,不错ubuntu 20 可以不用知道id 直接绑定

#查看磁盘id
sudo blkid  
#编辑
sudo nano /etc/fstab

# fstab 文件添加一下内容
UUID="ID From blkid" /mnt/hdd1    ext4 rw,user,auto 0    0 

6. Set up NFS Server and NFS Share

sudo apt install nfs-kernel-server

我们现在将创建 NFS 共享的根目录,这也称为导出文件夹。为此,需要编辑 /etc/exports

sudo vim /etc/exports

我们将在 /mnt/hdd1 共享整个挂载的磁盘,因此我们必须将以下行添加到 /etc/exports 的末尾

/mnt/hdd1   192.168.1.0/255.255.255.0(rw,sync,root_squash,subtree_check)

您现在可以使用 exportfs 命令使共享目录对客户端可用。之后重新启动 NFS 服务以使更改生效。

sudo exportfs
sudo service nfs-kernel-server restart

7. Set up Samba Shares

Samba 允许您通过 SMB 网络协议共享文件。基本上,这意味着各种 Microsoft Windows 客户端的文件和打印服务以及与 Microsoft Windows Server 域的集成

1 安装 samba

sudo apt-get install samba smbfs

2 安装完成后,编辑 /etc/samba/smb.conf 以包含共享文件夹的设置。在示例中,我们共享 /mnt/hdd1 具有读和写权限

# NAS share directory
[NASShare]
  comment = anything_will_do
  path = /mnt/hdd1
  read only = no
  guest ok = yes

更多配制参阅 Samba Docs

3 Finally, restart Samba services for the changes to take effect.

sudo service smbd restart

# 防火墙设置

sudo ufw allow samba 

# 添加 smb 用户
# 注意:此处使用的用户名应该是您的 server上的真实用户。每次更改用户/密码或“smb.conf”时重新加载 Samba
sudo smbpasswd -a username 

Assign a nice URL to NAS IP

您可以通过在 /etc/hosts 文件中添加一行来为您的 NAS IP 地址分配一个不错的本地可访问域

echo -e "192.168.1.100\t nas.box" | sudo tee -a /etc/hosts

\t 代表制表符

tee -a 将上面的行附加到文件中

您可以通过指定其 IP 地址或 nas.box 来访问 NAS 盒。

wake on lan – 网络唤醒电脑

1. 主板上开启

这里使用的是微星主板

  1. 高级–整合周边设备–网卡ROM启动,设置为允许
  2. 高级–电源管理设置–Erp ,设置为禁止
  3. 高级–唤醒事件设置–PCIE设备唤醒,设置为允许

2 检查主机板块和网卡是否支持Wol

检查主板是否支持

sudo apt install ethtool -y  (-y 参数是如果出现询问 默认 y)
sudo ethtool eth40ss  (eth40ss 指你的网卡可以用 ip a 或者ifconfig 查看)

如果出现一下信息, 则通过

Supports Wake-on: pumbg

Wake-on: g

如果没有则需要开启

sudo ethtool –change enp4s0 wol g

3. ubuntu 20.04设置

which ethtool # 查看命令源 我的是/usr/sbin/ethtool
  1. 设置开机启动启动 wol 服务,新建服务
sudo vim /etc/systemd/system/wol.service

编辑内容如下

[Unit]
Description=Configure Wake On Lan

[Service]
Type=oneshot
ExecStart=/sbin/ethtool --change enp43s0 wol g


[Install]
WantedBy=basic.target

启用服务

#To enable it you can do this:

sudo systemctl daemon-reload
sudo systemctl enable wol.service
sudo systemctl start wol.service
#查看设置状态
systemctl status wol

2.使用netplan 永久自动开发方法

需要添加mac 地址

network:
  version: 2
  renderer: networkd
  ethernets:
    enp2s0:
      match:
        macaddress: 50:e5:49:b3:fc:97
      dhcp4: true
      wakeonlan: true

4. 关闭服务器, 本地使用 命令 启动服务器

唤起远程服务端的客户端上需要安装

Command-line tools

unbuntu 可以安装

sudo apt install wakeonlan

wakeonlan mac地址 #唤醒电脑

mac python脚本 wol.py

#!/usr/bin/env python

import socket
import sys

if len(sys.argv) < 3:
    print "Usage: wakeonlan.py <ADR> <MAC>     (example: 192.168.1.255 00:11:22:33:44:55)"
    sys.exit(1)

mac = sys.argv[2]
data = ''.join(['FF' * 6, mac.replace(':', '') * 16])
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(data.decode("hex"), (sys.argv[1], 9))
python wol.py 192.168.1.255 00:11:22:33:44:55

在路由上安装

opkg install etherwake

如果你的路由是主路由,那么要设置广播的网关段,而小米的网络段是192.168.31.255:
/usr/bin/etherwake -D -i 'lan' "D8:BB:C1:4F:E5:12" 2>&1

如果你的路由是旁路由
wakeonlan -i mac地址

这样通过zerotier远程连接路由器SSH,然后通过命令就可以开启局域网中的指定电脑。