方案前文:建立一个家庭私有云盘方案系列教程+N2n+Nextcloud

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

目前第三方云盘存在速度慢、限制多、取回难、费用高等各方面问题,这里进行本地搭建NAS方案,配置个人私有云盘前置基础,存储个人大量数据及共享分享给朋友使用。

硬件选配

这里不做多余阐述,参见知乎大佬答案。

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

配置下来费用在1200左右。

...

NAS服务器配置

NAS服务器安装windows10,当然也可以安装其他系统,这里只是方便本人做一些其他的用途,以及管理上比较方便些。

NAS物理机上安装一个Apache用于测试。这里不做说明,创建好后目录里放一个测试文件。

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

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

N2N目前在windows上创建的虚拟网卡速度传输速度很慢,说是百兆,其速率也就几百Kb。

这里考虑在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转发流量。

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

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

将其存储在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/

后一篇:家庭私有云盘系列教程-建立公网服务器实现外网访问

03-11 19:07