基于Ubuntu+Samba的轻量级家用NAS私有云服务器架设攻略
随着宽带普及、各种网盘限速收费以及大家都懂的原因,我们越来越迫切的需要一台属于个人及家庭的私有云服务器,来随时对地存取我们的文件、照片,保护我们的数据以及最后一点隐私。
现在的选择也比较多。选择之一:大家可以购买市面上比较成熟的NAS服务商的产品,国内用的比较多的如群晖、威联通等。好处就是有着稳定成熟的系统,完备的售后服务体系等等,缺点吗,就是贵了一些,同等价位下性能偏弱。选择之二:就是我们自己DIY硬件,然后安装成熟的NAS专用系统,比如黑群晖,uRaid, Freenas等;相比于第一个选择,优点就是同等价格水平下性能更强或者添加更多的硬盘容量,缺点吗,就是没有售后服务喽,另外一些软件也需要付费授权后才可以使用,如uRaid。第三种选择,也是本文要介绍的,就是从硬件到软件的完全DIY,软件应用完全基于开源免费,打造一台稳定、可扩展性强的私有云系统。
构成思路
系统 :Ubuntu Server 20.04
基础环境 :Mysql + Apache2 + PHP +PHPMyadmin
硬盘管理 :Mergerfs
共享服务器:Samba Server
私有云系统:NextCloud
PT下载软件:Transmission
远程管理 :SSH + Webmin
重要提示
如果是小白,下面所有过程中涉及的到配置文件都需先备份再修改!注意:配置文件先备份,再修改!配置文件先备份,再修改!
一、系统的安装以及基本运行环境搭建
1、Ubuntu 系统的安装
这个比较简单,从官网下载ISO文件后用工具写入U盘,然后根据系统提示安装即可,安装过程中需要注意的是勾选安装SSH服务,方便后面的远程管理。
勾选SSH服务
首先进入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都已经正常工作了。
Apache 已经正常工作。
在/var/www/html下建立一个1.php的文件,文件内容如下:
<?php
phpinfo();
?>
保存后退出,在浏览器输入网址/1.php,应该可以看到如下页面:
php已经正常工作。
在浏览器输入:网址/phpmyadmin,应显示如下页面:
此时输入设定的mysql的root用户名和密码可能,可能会出现错误提示不能登录,解决办法如下:
输入mysql进入mysql管理:
ALTER USER 'root'@'localhost' IDENTIFIEDWITH mysql_native_password by 'root密码';
exit
再次登录页面输入root和密码,即可登录。
二、利用mergerfs管理硬盘
选择mergerfs的原因主要如下:
第一、可以很方便的将多块硬盘合并挂在一个目录使用,不用考虑硬盘文件格式,比如我用的就是NTFS格式。
第二、方便后续文件备份。由于mergerfs的特殊硬盘以及文件管理模式,在用ntfs格式的前提下,我们可以很方便的将单个硬盘取出挂在windows下进行读取备份。
1、安装mergerfs
apt install mergerfs
2、设置开机自动挂载已安装硬盘
此处以我个人应用为例,我是在SATA接口直接挂载了2块14T的sata硬盘。
首先在ssh客户端输入如下命令查看已挂载硬盘。
fdisk -l
此处可以看到我们的硬盘设备路径如下图红色箭头所示:
输入如下命令,查看并记录设备的UUID:
blkid
此处我们可以看到设备/dev/sdb1和/dev/sdc1分别对应的UUID,将UUID记录好。
编辑/etc/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
然后输入命令查看合并后的效果:
df -hT | grep mydriver
如上图,可以看到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
安装samba服务。
apt install samba samba-common第二步:建立共享目录。
此处我们新建立目录:/mnt/mydriver/share为共享目录。
mkdir /mnt/mydriver/share
然后配置共享目录权限:chmod 777 /mnt/mydriver/share -R
第三步:配置samba服务器。(位置:/etc/samba/smb.conf)
[share] #共享名,该共享标签,可随意取,该名字为在其他电脑上看到的共享名
comment = home directories#该共享描述
path = /mnt/mydriver/share #之前建立的共享目录
valid users = admin # 许可用户名
public = yes #指定该共享是否允许guest账户访问
writable = yes #writable用来指定该共享路径是否可写
第四步:重启samba服务器即可实现smb共享。
设置用户密码:smbpasswb -a username,这里的username一般设置你的ubuntu系统管理员账户即可。
四、私有云系统:NextCloud
Nextcloud是一套基于PHP+主流数据库开发的私有云系统,可轻松实现个人文件同步。不过就是维护起来有点费劲,如果只是想同步手机照片推荐使用Daemon-sync,安装便捷,方便易用。
第一步:在phpmyadmin里建立数据库。
因为这套系统是我们放在局域网里自己用的,所以就偷个懒,用户名和密码都用root的就好了。
第二步:下载在线安装文件。
注意这里我们选择在线安装Web Installer。复制好链接后进入/var/www/html目录,执行如下命令:
wget https://download.nextcloud.com/server/installer/setup-nextcloud.php
下载成功后就可以在浏览器输入相应网址进行安装了。如下图:
这里选择安装目录,因为我们的web服务主要是做私有云服务器,而且setup-nextcloud.php在网站根目录,所以这里我们输入“.”(注意没有双引号),进入下一步。
因为在线下载,等待时间较长,可以去看一会电影,喝杯咖啡休息一下。如果下载网速过慢,可以直接在官网下载安装压缩包解压在/var/www/html/目录下直接运行安装。
如上图所示,填入管理用户名和密码。数据存储路径我们放在合并后的硬盘目录,与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
这时你发现输入地址和端口号并不能访问,查看日志,发现出现如下错误:
缓冲区最低要求分别为:4194304和1048576,我们按需修改UDP缓冲区大小即可。方法如下:
编辑:/ect/sysctl.conf
在尾部增加如下内容:
net.core.rmem_max=4194304
net.core.wmem_max=1048576
保存退出,重启服务。
注意:transmission默认登陆用户名和密码均为transmission。
此时页面如下:
是不是很丑?我们用transmission-web-control-master来美化下。
首先下载transmission-web-control-master,下载地址如下:
https://github.com/ronggang/transmission-web-control
我们把下载好的文件解压缩到如下目录:
/usr/share/transmission/web
重新刷新页面既可以,如下图:
看,现在是不是好多了?
六、远程管理: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
安装成功后会出现如下提示:
此时我们用10000(注意是https)端口登陆管理页面:如下图
好,至此,所有工作都完成了,你已经有了一台属于自己定制版私有云。因为种种原因(硬件配置、软件升级),你可能会碰到各种问题,不用担心,基本上用搜索引擎都可以解决。后续我们还可以在此基础上增加媒体服务器、wordpress个人网站等等。























校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案