方案前文:创建一个家庭私有云盘方案系列教程+N2n+Nextcloudnode
目前第三方云盘存在速度慢、限制多、取回难、费用高等各方面问题,这里进行本地搭建NAS方案,配置我的私有云盘前置基础,存储我的大量数据及共享分享给朋友使用。linux
这里不作多余阐述,参见知乎大佬答案。nginx
https://www.zhihu.com/question/21359049c++
配置下来费用在1200左右。git
...github
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节点网络中一份子,莫要搞混逻辑。
虚拟机安装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简单过程,详情参见教程。
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简单过程,详情按照上文超连接。
#安装编译支持库 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
测试访问,均正常方可继续。