找回密码
 立即注册
查看: 737|回复: 0

家庭网络折腾记 篇二:HyperV+DSM&VPN折腾记

[复制链接]

883

主题

81

回帖

439

积分

中级渣柚V1

积分
439

活跃会员

发表于 2019-9-29 21:26:50 | 显示全部楼层 |阅读模式

                        
                           
                                
                                家庭网络折腾记 篇二:HyperV+DSM&VPN折腾记                           
                           
                           
                            小编注:此篇文章来自#原创新人#活动,成功参与活动将获得额外100金币奖励。详细活动规则,请猛戳此链接!
DSM搭建一套自己的NAS已经种草很久了,但是一直没动力,云盘太多还很方便。突然一天,云盘开始河蟹了,开始一家接一家关闭,一下就被刺激到了,正好某东做活动,就自己DIY了一套。因为本人IT狗,本着物尽其用的原则,这次DIY考虑多用途:除了NAS外,还用于DB和工作兴趣上的一些折腾。
配置清单CPU:Inter I3-6100
主板:华硕 B150-PLUS
SSD:金士顿 120G M.2 2280 固态硬盘
内存:金士顿 DDR4 2133 8GB 台式机内存 X2(一个主板送的)
硬盘:WD4T红盘 X2;希捷3TB X2
电源:讯景(XFX)额定550W XTR550
机箱:Tt 狂热者A31
系统方案操作系统:种草DSM的时候,看了好多关于黑群的文章,想过直接虚拟化但是个人觉得有点浪费吧(以后就不能加显卡挂游戏了,硬盘好像不能休眠),发现Win+HyperV更符合个人要求(HyperV虚拟机可以在宿主机关机时自动保存当前状态,启动时自动恢复)。
硬盘方案:SSD作为win10的系统盘,希捷2块硬盘raid0计划存储非重要数据(电影电视剧等等),2块红盘raid1存放重要数据同时配合DSM上的百度云同步。上述的raid使用win自带存储空间实现软raid。
DSM存储方式:这里没有直接将raid后的磁盘给DSM,而是挂载在win系统上再通过NFS方式挂载给DSM使用。这样磁盘既能win10使用也能给DSM使用,何乐而不为。但是使用NFS方式时,有一个需要注意的地方:DSM中需要建立索引的文件(照片,视频和百度云同步之类)不能在win服务器上操作移动,只能通过DSM操作,不然会因为DSM系统下文件的权限问题,导致不能创建索引而在相关服务器中无法查看。
安装部署Win10旗舰版安装好以后HyperV是不会自动安装的,需要我们手工去增加这个组件(安装过程中会自动重启):控制面板-程序和功能-启用或关闭Windows功能-HyperV。

                               
登录/注册后可看大图

启用HyperV
简单说下HyperV下安装虚拟机:
打开HyperV控制台(控制面板-管理工具-HyperV管理器),首先点击“虚拟交换机管理器”新建一个外部虚拟交换机。
Hyper-V 支持三种网络类型: 外部,内部,专用。
  Hyper-V专用网络,如其名一样,虚拟机专用,数据的通信只能在虚拟机之间进行,虚拟机与宿主机以及物理网络之间是不能通信的。
  Hyper-V的内部网络类型,只允许虚拟机与虚拟机之间,虚拟机与运行Hyper-v的主机之间进行网络通信,而不允许虚拟机与物理网络进行通信。
  Hyper-V的外部网络类型,允许虚拟机与虚拟机之间,虚拟机与运行Hyper-v的主机之间,虚机与物理网络,他们互相网络通信。
显然要虚机可以上网,我们需要选用Hyper-V的外部网络类型;


                               
登录/注册后可看大图

然后我们再点击“新建”开始跟着引导界面新建一个虚拟机。

                               
登录/注册后可看大图

虚拟机名称

                               
登录/注册后可看大图

虚拟机代数

                               
登录/注册后可看大图

设置内存

                               
登录/注册后可看大图

选择交换机

                               
登录/注册后可看大图

硬盘

                               
登录/注册后可看大图

选择安装文件
然后安装DSM,DSM安装就不介绍了,相关的经验很多。

                               
登录/注册后可看大图

NAS群晖DSM 进阶教程 篇一:NAS群晖DSM 5.0-4458 傻瓜安装教程小编注:本篇仅限于技术探讨,如果您对本文内容有异议,请联系我们,我们会及时处理。话说上次吹牛吹爆了500元NAS黑群晖配置完成(不含硬盘),NAS能做什么?500元NAS黑群晖配置完成(不含硬盘),NAS能做什么?......PEKO哑虎呸呸| 1k 评论1k 收藏6k查看详情 再说说虚拟机的一些设置细节(在控制台,点击虚拟机进行设置(需要关闭虚拟机)):

                               
登录/注册后可看大图

动态内存

                               
登录/注册后可看大图

动态CPU

                               
登录/注册后可看大图

自动启动

                               
登录/注册后可看大图

启动保存
NFSNFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
服务端在Win机器上启用NFS服务,很简单,可以安装”haneWIN NFS Server“
安装后使用管理员运行,打开界面进行配置;在“输出-编辑输出文件”中,配置NFS服务端共享目录
# exports example
#C:ftp -range 192.168.0.1 192.168.0.210
#c:public -public -readonly
#c:tools -readonly 192.168.1.4
G:CloudSyncBaiduCloud -name:BaiduCloud 192.168.88.231
G:CloudSyncBaiduCloudPhotos -name:SyncPhotos 192.168.88.231
G:CloudSyncBaiduCloudVideos -name:SyncVideos 192.168.88.231
Hownloads -nameownloads 192.168.88.231
配置好后,我们点击“重新启动服务”即可。(有时候好像不起作用,不过可以通过命令的方式重启)
#管理员开启CMD窗口
# 停止服务
C:WindowsSystem32net.exe stop nfsserver
C:WindowsSystem32net.exe stop pmapdaemon
# 启动服务
C:WindowsSystem32net.exe start pmapdaemon
C:WindowsSystem32net.exe start nfsserver


                               
登录/注册后可看大图



                               
登录/注册后可看大图



                               
登录/注册后可看大图

客户端Win上的NFS服务已经搭建好,我们如何让DSM能使用这么共享的目录呢?
首先,我们在DSM中的文件管理中,安装自己的设计新建目录结构,然后通过命令的方式来挂载NFS的共享目录。

                               
登录/注册后可看大图

# 挂载命令
/bin/mount -t nfs -o hard 192.168.88.230:/BaiduCloud /volume1/CloudSync/BaiduCloud
/bin/mount -t nfs -o hard 192.168.88.230:/SyncPhotos /volume1/photo/SyncPhotos
/bin/mount -t nfs -o hard 192.168.88.230:/SyncVideos /volume1/video/SyncVideos
如何让上述命令自动执行呢?有两种方式:
开机自动挂载:SSH登陆到DEM后,编辑“/etc/rc“文件,在末尾的 “exit 0”前增加挂载命令

                               
登录/注册后可看大图

DSM任务计划:DSM-控制面板-任务计划中增加一个定时执行的任务计划,脚本中填写挂载命令


                               
登录/注册后可看大图


上述两种方式可以共存。
VPN自己搭建一个VPN,又可以用于内网穿透,又能科学上网(需要国外VPS),多好。
首先我们需要购买一个VPS,配置不用很高,我买35刀一年(1CPU 512内存 20G硬盘 1个ip 每月2T流量),系统用的Ubuntu16.04,这配置只做VPN可能有点浪费,想折腾的还能自己玩玩。(服务商就不说了,免得说打广告。)
VPN服务常用的协议很多,这里就简单介绍下pptp和openvpn的搭建。
PPTP点对点隧道协议(PPTP)是一种实现虚拟专用网络的方法。 PPTP使用用于封装PPP数据包的TCP及GRE隧道控制通道。
OpenVPNOpenVPN是一免费开源软件,以路由器或桥接配置和远程访问设备方式实现虚拟专用网络(VPN)创建安全的点对点或站对站连接的解决方案。它使用SSL / TLS安全加密,具有穿越网络地址转换(NATs)和防火墙的功能。
在PPTP和OpenVPN二者之间做出选择的一个重要考虑因素,也是我们无法控制的因素,就是有时互联网服务供应商会阻止PPTP连接。次情况下我们无计可施,只能选择使用OpenVPN。 PPTP具有一些独特优势,但此刻用OpenVPN会是不错的选择。
PPTP可以应用到几乎所有的操作系统软件,无需安装任何软件。它也兼容许多移动设备,如iphone,ipad和Windows移动,安装简易。相比之下,OpenVPN的安装比PPTP要复杂一点,但只要按照正确的指示安装则无太大困难。请注意OpenVPN不兼容移动设备。
PPTP加密技术使用密码作为密钥,它的数据流载有可获取的混编密码。如果中间有人拦截到了数据流并且破译了密码(尽管可能但很难),那么他就可以破译你的信息。然而OpenVPN使用非常强大的加密(Blowfish)技术。即使有人拦截你的数据流,他们也无计可施。这使得OpenVPN比PPTP安全得多。
选择如果你希望得到高安全性以及更加关注数据安全传输问题,那么你应该使用OpenVPN。如果您为了简便或者想在移动设备上使用VPN那么PPTP适合你。还有其他协议,例如L2P或IPSec,但他们在用户友好或成本上没有优势。
简而言之,pptp的优势是任何终端基本都不需要安装客户端,系统自身都支持pptp协议。
PPTP# 安装pptp服务
apt-get install pptpd
# 设置虚拟ip
echo "localip 192.168.254.1" >> /etc/pptpd.conf
echo "remoteip 192.168.254.100-254" >> /etc/pptpd.conf
# 设置DNS
sed -i 's/^#ms-dns 10.0.0.1/ms-dns 8.8.8.8/' /etc/ppp/pptpd-options
sed -i 's/^#ms-dns 10.0.0.2/ms-dns 8.8.4.4/' /etc/ppp/pptpd-options
# 添加用户(帐号   服务器    密码     IP地址(可以指定获取的IP地址,也可以填*表示任何地址))
echo "ros   pptpd    123456  192.168.254/254" >> /etc/ppp/chap-secrets
# 重启pptpd
systemctl restart pptpd
# 配置Nat转换
# 编辑 /etc/sysctl.conf 启用nat转换并生效
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf   
sysctl –p
# 向iptables添加NAT规则
iptables -t nat -A POSTROUTING -s 192.168.254.0/24 -o eth0 -j MASQUERADE
iptables-save
OpenVPNOpenVPN我尝试的时候,使用的开源的Pritunl,有Web管理页面。官网有各个系统的安装方法,这里用Ubuntu16.04举例:
$ nano /etc/apt/sources.list.d/mongodb-org-3.2.list
deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse

$ nano /etc/apt/sources.list.d/pritunl.list
deb http://repo.pritunl.com/stable/apt xenial main

$ nano /lib/systemd/system/mongod.service
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongodb
ExecStart=/usr/bin/mongod --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

$ apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv EA312927
$ apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv CF8E292A
$ apt-get update
$ apt-get install pritunl mongodb-org
$ systemctl start pritunl mongod
$ systemctl enable pritunl mongod
内网穿透+远程唤醒有了VPN以后,在局域网内登陆VPN,然后在VPN服务器上设置跳转就能实现内网穿透。
VPN连接这里就不说了(各环境各不相同),这里就简单说说如何配置内网穿透和实现远程唤醒。
内网穿透我们通过购买的VPS的iptables来配置端口跳转
iptables -t nat -A PREROUTING -p udp --dport 60230 -j DNAT --to 192.168.254.254:60230
上面这个是我用来实现远程唤醒配置的一个udp跳转,我这里的 192.168.254.254这台机器是ROS路由,然后我在ROS里面配置一个udp的端口跳转指定到我需要唤醒的机器上就行了。
其中,远程唤醒需要电脑启动网络唤醒才行,相关的方法网络上很多介绍,这里也简单介绍下:
1.BIOS中启用唤醒功能(依据各主板界面方式不一样,这里就不详细介绍)
2.网卡配置

                               
登录/注册后可看大图

3.电源配置


                               
登录/注册后可看大图

上述都配置好以后,我们就能实现在外网通过多种方式(电脑软件、web服务、手机APP)远程唤醒局域网中的计算机了。
未经授权,不得转载
                        
                        

                        
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|矿渣社区 ( 黔ICP备2024020525号-1 )

GMT+8, 2024-7-7 15:19 , Processed in 0.051549 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表