一直想买群晖NAS,可是自己又没钱,怎么办?
自己搭建黑群晖啊(滑稽
正好家里有一堆闲置的东西,可以拿来组黑群晖
此教程不包括洗白
需要准备的东西:
- U盘,4G以上的都行,不需要太大,浪费
- 瘦客户机(某宝上有售)
- 硬盘,做黑群晖系统安装和储存文件
- 电脑,用来安装黑群晖系统
1. 下载安装需要的文件
这里提供的是32位CPU最高支持的版本
下载地址:https://pan.baidu.com/s/1EBK_bEiyQb0ROG41Dw4JTA 提取码:lgrr
下载完毕后,双击 SynologyAssistantSetup-5.0-4448.exe ,安装 SynologyAssistant
2. 写入引导镜像
将U盘插入到电脑上,双击 SynologyAssistant/Win32DiskImager.exe ,按下图操作
3. 安装黑群晖系统
安装之前,请将BIOS的硬盘模式设置为ACHI,详情可咨询卖家或自行百度
把U盘插上主机,开机,进入BIOS,将第一引导设置为你的U盘(部分机型开机时按F2选择U盘启动即可,比如华为Gi945),F10保存并重启,会自动进入U盘引导
出现选择项时选择第二项“Nanoboot DSM 5.0-4528 Install/Upgrade”,第二个菜单直接回车,等到出现“DiskStation login”字样时,打开 SynologyAssistant ,找到自己的主机
右键自己的瘦客户机,点安装
选择安装文件,点“下一步”
然后就会开始安装
等几分钟就会安装好
出现“等待重启”时,留意下主机,如果关机了需要开机
安装成功后即可输入主机IP:5000登录
4. 最后的设置
首次登录会提示创建QuickConnect,没有洗白和没有账号的请跳过
进入 控制面板->更新和还原->更新设置 取消自动更新
5. 可选选项
通过外网访问NAS
有时候想在外网访问自己家的NAS传输文件,由于黑群晖无法使用 QuickConnect ,所以我们需要端口映射
电信光猫需要超级管理员密码设置端口映射,打个电话给电信就可以问到了
由于群晖需要映射的端口很多(需要映射的端口列表),我就直接映射DMZ主机了
把域名解析到IP上就可以了
电信IP每过几天就会改一下,而且还不知道什么时候改,每过几天手动改一下太麻烦了,所以需要DDNS
群晖系统自带DDNS功能,但是不支持阿里云域名,所以我自己写了一个,放到自己服务器上就行(写的不好QAQ
<?php //error_reporting(0); function push($text){ //错误推送 } if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $cip = $_SERVER["HTTP_CLIENT_IP"]; }elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){ $cip = $_SERVER["HTTP_X_FORWARDED_FOR"]; }elseif(!empty($_SERVER["REMOTE_ADDR"])){ $cip = $_SERVER["REMOTE_ADDR"]; }else{ push("NAS IP获取失败"); $put = file_put_contents('ip.txt',$cip); exit(); } if(file_get_contents('ip.txt') != $cip){ function percentEncode($str) { $res = urlencode($str); $res = preg_replace('/\+/', '%20', $res); $res = preg_replace('/\*/', '%2A', $res); $res = preg_replace('/%7E/', '~', $res); return $res; } function computeSignature($parameters, $accessKeySecret) { ksort($parameters); $canonicalizedQueryString = ''; foreach($parameters as $key => $value) { $canonicalizedQueryString .= '&' . percentEncode($key) . '=' . percentEncode($value); } $stringToSign = 'POST&%2F&' . percentencode(substr($canonicalizedQueryString, 1)); $signature = base64_encode(hash_hmac('sha1', $stringToSign, $accessKeySecret . '&', true)); return $signature; } date_default_timezone_set("GMT"); $accessKeyId = '<accessKeyId>'; $accessKeySecret = '<accessSecret>'; $data = array( 'Format' => 'JSON', 'Version' => '2015-01-09', 'AccessKeyId' => $accessKeyId, 'SignatureVersion' => '1.0', 'SignatureMethod' => 'HMAC-SHA1', 'SignatureNonce'=> time().date("is"), 'Timestamp' => date("Y-m-d\TH:i:s\Z"), 'Action' => 'UpdateDomainRecord', 'RecordId' => '', //解析ID,先到域名解析里解析一个IP,再进入 https://api.aliyun.com/#product=Alidns&search=DescribeDomainRecords&api=DescribeDomainRecords¶ms={}&tab=DEMO&lang=PHP 查询解析ID 'RR' => '', //解析前缀 'Type' => 'A', 'Value' => $cip ); $data['Signature'] = computeSignature($data, $accessKeySecret); $url = 'https://alidns.aliyuncs.com/'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_POST,count($data)); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $result = curl_exec($ch); if(!$result->RecordId){ push("NAS IP解析失败:".$result); } echo $result; $put = file_put_contents('ip.txt',$cip); } ?>
然后添加计划任务到NAS上就行
既然要从外网通过域名访问,那么SSL必不可少
群晖系统也自带了可免费签发并有小绿锁的SSL证书(我没试过0.0.),我就直接把自己的泛域名证书上传上去了
完成了以上的操作,就可以通过 https://nas.yuncaioo.com:5001 访问自己家的NAS了
已知的问题
无法设置“硬件和电源”选项
有可能是因为瘦客户机没有风扇,导致“风扇设置”没东西
↓↓↓ 提示设置成功后退出的提示
本文转载自FH云彩博客的低成本搭建NAS服务
暂无评论内容