基于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个人网站等等。
沉默的眼睛
校验提示文案
值友9697836492
校验提示文案
值友2565653723
校验提示文案
wxd99
校验提示文案
东皓雪
校验提示文案
timespace
校验提示文案
疯狂的蜂鸟
校验提示文案
种草好朋友
校验提示文案
我就是cy
校验提示文案
噩梦飘雷
校验提示文案
蜗牛爱疯
校验提示文案
Bing哥儿
校验提示文案
值友5390641349
校验提示文案
团子叔叔
校验提示文案
冬天有点暖
校验提示文案
冬天有点暖
校验提示文案
团子叔叔
校验提示文案
东皓雪
校验提示文案
疯狂的蜂鸟
校验提示文案
值友5390641349
校验提示文案
值友9697836492
校验提示文案
Bing哥儿
校验提示文案
timespace
校验提示文案
蜗牛爱疯
校验提示文案
值友2565653723
校验提示文案
噩梦飘雷
校验提示文案
我就是cy
校验提示文案
种草好朋友
校验提示文案
wxd99
校验提示文案
沉默的眼睛
校验提示文案