一直想买群晖NAS,可是自己又没钱,怎么办?
自己搭建黑群晖啊(滑稽
正好家里有一堆闲置的东西,可以拿来组黑群晖
此教程不包括洗白
需要准备的东西:
这里提供的是32位CPU最高支持的版本
下载地址:https://pan.baidu.com/s/1EBK_bEiyQb0ROG41Dw4JTA 提取码:lgrr
下载完毕后,双击 SynologyAssistantSetup-5.0-4448.exe ,安装 SynologyAssistant
将U盘插入到电脑上,双击 SynologyAssistant/Win32DiskImager.exe ,按下图操作
安装之前,请将BIOS的硬盘模式设置为ACHI,详情可咨询卖家或自行百度
把U盘插上主机,开机,进入BIOS,将第一引导设置为你的U盘(部分机型开机时按F2选择U盘启动即可,比如华为Gi945),F10保存并重启,会自动进入U盘引导
出现选择项时选择第二项“Nanoboot DSM 5.0-4528 Install/Upgrade”,第二个菜单直接回车,等到出现“DiskStation login”字样时,打开 SynologyAssistant ,找到自己的主机
右键自己的瘦客户机,点安装
选择安装文件,点“下一步”
输入黑群晖账号信息,点“下一步”
然后就会开始安装
等几分钟就会安装好
出现“等待重启”时,留意下主机,如果关机了需要开机
安装成功后即可输入主机IP:5000登录
首次登录会提示创建QuickConnect,没有洗白和没有账号的请跳过
进入 控制面板->更新和还原->更新设置 取消自动更新
进入 控制面板->共享文件夹->新增 添加储存目录
有时候想在外网访问自己家的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证书(我没试过),我就直接把自己的泛域名证书上传上去了
完成了以上的操作,就可以通过 https://nas.yuncaioo.com:5001 访问自己家的NAS了
有可能是因为瘦客户机没有风扇,导致“风扇设置”没东西
导致我无法保存
↓↓↓ 提示设置成功后退出的提示
原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明转载自:低成本搭建NAS服务