使用瘦客户机低成本搭建NAS服务

2018年12月5日 0 条评论 1.11k 次阅读 1 人点赞

低成本搭建NAS服务

一直想买群晖NAS,可是自己又没钱,怎么办?

自己搭建黑群晖啊(滑稽

正好家里有一堆闲置的东西,可以拿来组黑群晖

此教程不包括洗白

需要准备的东西:

  1. U盘,4G以上的都行,不需要太大,浪费
  2. 瘦客户机(某宝上有售)
  3. 硬盘,做黑群晖系统安装和储存文件
  4. 电脑,用来安装黑群晖系统

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&params={}&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服务

小俊

这个人太懒什么东西都没留下

文章评论(0)