家庭私有云盤系列教程-本地搭建家庭NAS方案

方案前文:創建一個家庭私有云盤方案系列教程+N2n+Nextcloudnode

目前第三方雲盤存在速度慢、限制多、取回難、費用高等各方面問題,這裏進行本地搭建NAS方案,配置我的私有云盤前置基礎,存儲我的大量數據及共享分享給朋友使用。linux

 

硬件選配

這裏不作多餘闡述,參見知乎大佬答案。nginx

https://www.zhihu.com/question/21359049c++

配置下來費用在1200左右。git

...github

NAS服務器配置

NAS服務器安裝windows10,固然也能夠安裝其餘系統,這裏只是方便本人作一些其餘的用途,以及管理上比較方便些。shell

NAS物理機上安裝一個Apache用於測試。這裏不作說明,建立好後目錄裏放一個測試文件。windows

Evil.Minds.2015.S01.EP01.1080P.WEB-DL.mp4centos

 

N2N目前在windows上建立的虛擬網卡速度傳輸速度很慢,說是百兆,其速率也就幾百Kb。bash

這裏考慮在nas物理機上,建立一個虛擬機爲linux,經過tcp代理訪問windows。

在這裏咱們計入一個網絡關係列表,防止後面配置以及梳理形成混亂。

公網 115.0.0.1 / 阿里雲服務器/N2N中心網絡
內網192.168.1.100 網關192.168.1.1 本地NAS
內網192.168.1.110 網關192.168.1.1 本地NAS-linux虛擬機
N網 10.0.0.20 / 本地NAS
N網 10.0.0.25 / 本地NAS-linux虛擬機
N網 10.0.0.24 / 阿里雲公網上的N2N節點
N網 10.0.0.21 / 筆記本物理機

上表中,阿里雲公網即當N2N中心網絡也當作N2N節點網絡中一份子,莫要搞混邏輯。

 

NAS-安裝centos

虛擬機安裝centos,使用n2n轉發流量。

將其存儲在SSD上,24小時運行,節省機械硬盤功耗。

配置網絡 vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static
ONBOOT=yes

IPADDR=192.168.1.110
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
DNS2=8.8.8.8

而且將其設置爲橋接網絡模式,重啓centos便可網絡通暢。 

關閉防火牆,防止後面測試出現問題。至於開放防火牆,請自行調試,本文不開放防火牆。

systemctl stop firewalld.service

 

安裝N2N

安裝n2n簡單過程,詳情參見教程

mkdir /mnt/tools -p
cd /mnt/tools

yum install -y openssl-devel
yum install -y cmake
yum install -y net-tools
yum install -y git
yum install -y gcc gcc-c++

git clone https://github.com/meyerd/n2n.git

cd n2n/n2n_v2

mkdir build
cd build
cmake ..
make && make install

安裝方法同樣,在阿里雲上一樣安裝一遍。

運行n2n中心節點(阿里雲,莫要混亂)

#啓用阿里雲中心節點,監聽5000端口
supernode -l 5000
#再運行一個客戶端在阿里雲
edge -a 10.0.0.24 -c edge0 -k wss -l 115.0.0.1:5000

 

運行n2n客戶端(NAS-linux)

edge -a 10.0.0.25 -c edge0 -k wss -l 115.0.0.1:5000

 

本機電腦下載運行N2N客戶端

http://file.eller.tech/?dir=N2n

將如下內容保存 run-n2n.bat,並運行。

@echo off
cd /d %~dp0
if "%1" == "h" goto begin 
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit 
:begin 

cd /d %~dp0
edge -a 10.0.0.21 -c edge0 -k wss -l 115.0.0.1:5000
pause

筆記本物理機同樣關掉防火牆,避免測試出現問題。

 

安裝nginx

安裝nginx簡單過程,詳情按照上文超連接。

#安裝編譯支持庫
mkdir /mnt/tools -p
cd /mnt/tools
yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++

#安裝PCRE
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
tar -xzf pcre-8.40.tar.gz -C ./
cd pcre-8.40
./configure --prefix=/usr/local/pcre
make && make install
cd ..

#安裝zlib
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -xzf zlib-1.2.11.tar.gz -C ./
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make && make install
cd ..

#安裝openss
wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
tar -xzf openssl-1.0.2k.tar.gz -C ./
#注意,這裏不須要進行安裝,後面步驟省略。

#編譯安裝nginx
wget http://nginx.org/download/nginx-1.12.0.tar.gz
tar -xzf nginx-1.12.0.tar.gz  -C ./
cd nginx-1.12.0

./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_ssl_module \
--with-pcre=/mnt/tools/pcre-8.40/ \
--with-zlib=/mnt/tools/zlib-1.2.11/ \
--with-openssl=/mnt/tools/openssl-1.0.2k/ \
--with-stream


#注:cpre、zlib、openssl等依賴包的路徑是解壓的源碼路徑不是安裝後的路徑。

make
make install

nginx配置

cd /usr/local/nginx/
vi nginx.conf

尾部追加配置

stream {


    log_format proxy '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time "$upstream_addr" '
                 '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';

    access_log /var/log/nginx/tcp-access.log proxy ;
    open_log_file_cache off;
    include /usr/local/nginx/conf.d/*.stream;
}

建立日誌目錄、配置目錄

mkdir /var/log/nginx/
mkdir /usr/local/nginx/conf.d/
cd /usr/local/nginx/conf.d/

新建一個tcp轉發配置文件

vi /usr/local/nginx/conf.d/tcp.stream
upstream TCP10020 {
        hash $remote_addr consistent;
        #server 10.0.0.20:80;
        server 192.168.1.100:80;
    }
    server {
        listen 10025;#nas-linux 監聽10025端口
        proxy_connect_timeout 5s;
        proxy_timeout 300s;
        proxy_pass TCP10020;#將監聽獲取到的數據轉發到TCP10020上,即NAS物理機的80端口上
    }

重載nginx

/usr/local/nginx/nginx -s reload

測試訪問,均正常方可繼續。

  • http://192.168.1.110:10025/
  • http://192.168.1.100/
  • http://10.0.0.25:10025/

 

後一篇:家庭私有云盤系列教程-創建公網服務器實現外網訪問

相關文章
相關標籤/搜索