基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

2020-08-19 13:46:45 37点赞 184收藏 19评论

  随着宽带普及、各种网盘限速收费以及大家都懂的原因,我们越来越迫切的需要一台属于个人及家庭的私有云服务器,来随时对地存取我们的文件、照片,保护我们的数据以及最后一点隐私。

  现在的选择也比较多。选择之一:大家可以购买市面上比较成熟的NAS服务商的产品,国内用的比较多的如群晖、威联通等。好处就是有着稳定成熟的系统,完备的售后服务体系等等,缺点吗,就是贵了一些,同等价位下性能偏弱。选择之二:就是我们自己DIY硬件,然后安装成熟的NAS专用系统,比如黑群晖,uRaid, Freenas等;相比于第一个选择,优点就是同等价格水平下性能更强或者添加更多的硬盘容量,缺点吗,就是没有售后服务喽,另外一些软件也需要付费授权后才可以使用,如uRaid。第三种选择,也是本文要介绍的,就是从硬件到软件的完全DIY,软件应用完全基于开源免费,打造一台稳定、可扩展性强的私有云系统。

构成思路

  1. 系统   :Ubuntu Server 20.04

  2. 基础环境 :Mysql + Apache2 + PHP +PHPMyadmin

  3. 硬盘管理 :Mergerfs

  4. 共享服务器:Samba Server

  5. 私有云系统:NextCloud

  6. PT下载软件:Transmission

  7. 远程管理 :SSH + Webmin

重要提示

如果是小白,下面所有过程中涉及的到配置文件都需先备份再修改!注意:配置文件先备份,再修改!配置文件先备份,再修改!

一、系统的安装以及基本运行环境搭建

1、Ubuntu 系统的安装

这个比较简单,从官网下载ISO文件后用工具写入U盘,然后根据系统提示安装即可,安装过程中需要注意的是勾选安装SSH服务,方便后面的远程管理。

Ubuntu官网链接

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

勾选SSH服务

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略2、基础环境搭建

首先进入root模式,输入如下命令:sudo -s

对软件源及软件进行更新:

apt-get install software-properties-common(安装桌面版Ubuntu可省略)

add-apt-repository ppa:ondrej/php(安装桌面版Ubuntu可省略)

apt update

apt upgrade

(1)安装Apache2

apt install apache2

启用mod_rewrite模块

a2enmod rewrite

service apache2 restart

设置目录所有权限:

chown -R www-data:www-data /var/www/html

(2)安装PHP

apt install php

(3)安装MySQL

apt install mysql-server

(4)配置MySQL

mysql_secure_installation

在配置过程过,需要选择密码强度、设置密码以及其他安全选项,其他安全选项配置全部选择“Y”。

(5)安装PHP模块

apt install libapache2-mod-php php-mysqlphp-curl php-gd php-mbstring php7-gettext php-json php-intl php7.1-mcryptphp-imagick php-xml php-zip

(6)安装phpmyadmin

apt install phpmyadmin

安装好后将phpmyadmin 目录映射到www目录

ln -s /usr/share/phpmyadmin /var/www/html

此时,在浏览器输入网址,应该可以看到apache2和php都已经正常工作了。

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

Apache 已经正常工作。
在/var/www/html下建立一个1.php的文件,文件内容如下:
<?php
phpinfo();
?>
保存后退出,在浏览器输入网址/1.php,应该可以看到如下页面:

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

php已经正常工作。
在浏览器输入:网址/phpmyadmin,应显示如下页面:

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略  此时输入设定的mysql的root用户名和密码可能,可能会出现错误提示不能登录,解决办法如下:
  输入mysql进入mysql管理:
  ALTER USER 'root'@'localhost' IDENTIFIEDWITH mysql_native_password by 'root密码';
  exit
  再次登录页面输入root和密码,即可登录。

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

二、利用mergerfs管理硬盘

选择mergerfs的原因主要如下:
第一、可以很方便的将多块硬盘合并挂在一个目录使用,不用考虑硬盘文件格式,比如我用的就是NTFS格式。
第二、方便后续文件备份。由于mergerfs的特殊硬盘以及文件管理模式,在用ntfs格式的前提下,我们可以很方便的将单个硬盘取出挂在windows下进行读取备份。

1、安装mergerfs

apt install mergerfs

2、设置开机自动挂载已安装硬盘

此处以我个人应用为例,我是在SATA接口直接挂载了2块14T的sata硬盘。

  • 首先在ssh客户端输入如下命令查看已挂载硬盘。

fdisk -l
此处可以看到我们的硬盘设备路径如下图红色箭头所示:

查看硬盘设备信息查看硬盘设备信息

输入如下命令,查看并记录设备的UUID:
blkid

查看UUID查看UUID

此处我们可以看到设备/dev/sdb1和/dev/sdc1分别对应的UUID,将UUID记录好。
编辑/etc/fstab文件,设置开机自动挂载。

编辑fstab文件编辑fstab文件

上图可以看到,我们把两块硬盘分别挂载在目录/mnt/disk1和/mnt/disk2。因为disk1和disk2目录并不存在,我们需要手工建立,输入如下命令。
mkdir /mnt/disk1
mkdir /mnt/disk2
全部完成后,我们输入命令来检测是否有错误,否则不能自动开机挂载。
mount -a

  • 没有错误后,我们进行下一步,利用mergerfs将2块硬盘合并挂载。

首先建立拟挂载的目录:
mkdir /mnt/mydriver
执行mergerfs命令:
mergerfs -o defaults,allow_other,use_ino,category.create=mfs,moveonenospc=true,minfreespace=100G/mnt/disk1:/mnt/disk2 /mnt/mydirver

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

然后输入命令查看合并后的效果:
df -hT | grep mydriver

如上图,可以看到2块硬盘已经成功合并挂载。如上图,可以看到2块硬盘已经成功合并挂载。

如上图,可以看到2块硬盘已经成功合并挂载。

  • 最后,我们还要将mergerfs合并挂载命令写入开机启动,免去服务器重启后需要重新挂载的麻烦。

首先编辑/lib/systemd/system/rc-local.service文件,在其尾部加入如下代码:
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
其次,建立并编辑/etc/rc.local文件,内容如下:

#!/bin/sh -e
# rc.local
# This script is executed at the end of eachmultiuser runlevel.
# Make sure that the script will "exit0" on success or any other
# value on error.
# In order to enable or disable this scriptjust change the execution
# bits.
# By default this script does nothing.
mergerfs -odefaults,allow_other,use_ino,category.create=mfs,moveonenospc=true,minfreespace=100G/mnt/disk1:/mnt/disk2 /mnt/mydirver
exit0

再次,给新建的rc.local文件运行权限,命令如下:
chmod +x /etc/rc.local
然后创建运行链接,代码如下
ln -s /lib/systemd/system/rc-local.service/etc/systemd/system/
最后,启用服务命令:
sudosystemctl enable rc-local

三、共享服务器:Samba Server

  1. 安装samba服务。
    apt install samba samba-common

  2. 第二步:建立共享目录。

    此处我们新建立目录:/mnt/mydriver/share为共享目录。

    mkdir /mnt/mydriver/share

    然后配置共享目录权限:chmod 777 /mnt/mydriver/share -R

  3. 第三步:配置samba服务器。(位置:/etc/samba/smb.conf)


    [share] #共享名,该共享标签,可随意取,该名字为在其他电脑上看到的共享名

    comment = home directories#该共享描述

    path = /mnt/mydriver/share #之前建立的共享目录

    valid users = admin # 许可用户名

    public = yes #指定该共享是否允许guest账户访问

    writable = yes #writable用来指定该共享路径是否可写


  4. 第四步:重启samba服务器即可实现smb共享。

  5. 设置用户密码:smbpasswb -a username,这里的username一般设置你的ubuntu系统管理员账户即可。

四、私有云系统:NextCloud

  Nextcloud是一套基于PHP+主流数据库开发的私有云系统,可轻松实现个人文件同步。不过就是维护起来有点费劲,如果只是想同步手机照片推荐使用Daemon-sync,安装便捷,方便易用。

第一步:在phpmyadmin里建立数据库。

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

因为这套系统是我们放在局域网里自己用的,所以就偷个懒,用户名和密码都用root的就好了。

第二步:下载在线安装文件。

NEXTCLOUD官网链接。

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略注意这里我们选择在线安装Web Installer。复制好链接后进入/var/www/html目录,执行如下命令:
wget https://download.nextcloud.com/server/installer/setup-nextcloud.php
下载成功后就可以在浏览器输入相应网址进行安装了。如下图:

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略点击NEXT进入下一步:

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略  这里选择安装目录,因为我们的web服务主要是做私有云服务器,而且setup-nextcloud.php在网站根目录,所以这里我们输入“.”(注意没有双引号),进入下一步。
  因为在线下载,等待时间较长,可以去看一会电影,喝杯咖啡休息一下。如果下载网速过慢,可以直接在官网下载安装压缩包解压在/var/www/html/目录下直接运行安装。

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

  如上图所示,填入管理用户名和密码。数据存储路径我们放在合并后的硬盘目录,与samba服务的share目录平级建立一个nextcloud文件专门用来存储我们的云文件。
  安装完成后系统可能会提示“你的数据目录可以被其他用户读取请更改权限为 0770 以避免其他用户查看目录。”,此时我们只需在/config/ config.php添加'check_data_directory_permissions'=> false即可。

五、PT下载软件:Transmission

  第一步:安装transmission
  apt installtransmission-daemon
  第二步:设置成自动启动
  systemctl enabletransmission-daemon
  第三步:配置
  配置文件位置:
  /etc/transmission/settings.json
  进行配置时主要要先停止服务:
  systemctl stoptransmission-daemon
  配置文件主要设置如下:

  下载文件存放目录: "download-dir":"/mnt/mydriver/share",
  临时存放目录:"incomplete-dir":"/mnt/mydriver/share ",
  远程登陆白名单:"rpc-host-whitelist":"*",
  是否限制远程访问:"rpc-host-whitelist-enabled":false,
  登陆端口:"rpc-port":49091,(因为我有一台威联通,所以端口设置成和威联通一样,一般默认即可)
  是否开启白名单地址:"rpc-whitelist-enabled":false,
  RPC白名单列表:"rpc-whitelist": "*",

  保存退出,启动服务。
  systemctl start transmission-daemon
  这时你发现输入地址和端口号并不能访问,查看日志,发现出现如下错误:

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

缓冲区最低要求分别为:4194304和1048576,我们按需修改UDP缓冲区大小即可。方法如下:
编辑:/ect/sysctl.conf
在尾部增加如下内容:

net.core.rmem_max=4194304
net.core.wmem_max=1048576

保存退出,重启服务。
注意:transmission默认登陆用户名和密码均为transmission。
此时页面如下:

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

是不是很丑?我们用transmission-web-control-master来美化下。
首先下载transmission-web-control-master,下载地址如下:
https://github.com/ronggang/transmission-web-control
我们把下载好的文件解压缩到如下目录:
/usr/share/transmission/web
重新刷新页面既可以,如下图:

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

看,现在是不是好多了?

六、远程管理:SSH + Webmin

SSH是我们安装Ubuntu系统是自动安装的,所以这时我们只需要安装webmin即可。
安装参考网址:https://www.itcoder.tech/posts/how-to-install-webmin-on-ubuntu-20-04/
命令顺序如下:

sudo apt update

sudo apt installsoftware-properties-common apt-transport-https

wget -q http://www.webmin.com/jcameron-key.asc-O- | sudo apt-key add –

add-apt-repository"deb [arch=amd64] http://download.webmin.com/download/repository sargecontrib"

apt install webmin

安装成功后会出现如下提示:

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

此时我们用10000(注意是https)端口登陆管理页面:如下图

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略输入管理员账号和密码进入后如下图:

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略

基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略  好,至此,所有工作都完成了,你已经有了一台属于自己定制版私有云。因为种种原因(硬件配置、软件升级),你可能会碰到各种问题,不用担心,基本上用搜索引擎都可以解决。后续我们还可以在此基础上增加媒体服务器、wordpress个人网站等等。


展开 收起
19评论

  • 精彩
  • 最新
  • 都上Ubuntu Server了为什么不用windows server?应用生态,可维护性差距不是一般的大吧。

    校验提示文案

    提交
    win系统对硬件要求过高,unbubtu 这套体统正常运行只需要几百兆内存

    校验提示文案

    提交
    作者说得有道理,不过现在4g内存和8g内存价格差别已经不大了,系统看个人喜好决定吧。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 有个大胆的想法,阿里云+rclone挂载Googledrive加个emby再加上这个pt软件和私有云 [惊喜]

    校验提示文案

    提交
    搞这个的初衷就是避免使用国内企业的软硬件服务(线路除外> [哭泣]

    校验提示文案

    提交
    收起所有回复
  • 把一圈的私有云都用了个遍,最后选择了可道云

    校验提示文案

    提交
  • 不适合初级玩家,适合进阶选手。

    校验提示文案

    提交
  • 在我玩过的网盘里,国外开源首推nextcloud,在开源里面是生态最丰富、插件最多的,可够折腾的;折腾累了想找个用用,必须是可道云kodbox了(国产半开源),UI 漂亮,操作真心灰常灰常流畅,插件也够用

    校验提示文案

    提交
  • 自己搭建费事费力,建议unas或omv走起

    校验提示文案

    提交
  • 没点子技术在身上不敢玩,太折腾了,还是宝塔+可道云一键部署简单点

    校验提示文案

    提交
  • 不明觉厉,高手

    校验提示文案

    提交
  • 技术贴,看不懂,帮顶

    校验提示文案

    提交
  • 学习成本有点高。。。没接触过linux的新手有点不敢入门。。。。

    校验提示文案

    提交
  • 都上ubuntu了,不如再virtualbox个win吧,什么tr,qb,aria,还是不如迅雷ndm之类用得顺手。

    校验提示文案

    提交
  • 我用的debian9,舒服

    校验提示文案

    提交
  • 作者,有三个模块现在下不了了,有解决办法吗?

    校验提示文案

    提交
  • 远程访问我用x11vnc

    校验提示文案

    提交
  • 私有云盘的选择很多,像是nextcloud、seafile等都用过,我目前仍在使用的是kodbox,可以在线解压缩,在线预览,还可以分享协作,基本日常需要用到的功能都有,免费版支持10个用户,想要组建家庭网盘也是够用的。而且操作简单,没有广告,界面也很清爽,有兴趣的可以体验一下。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
184
扫一下,分享更方便,购买更轻松