用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透

写在前面

上次搭建完下载机之后,就开始了睡觉时间愉快的下载时光。只要种子不是非常冷门,下载速度什么的也都是很可观的。一觉起来昨天添加的一大堆都下载好了。

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图

但是现在我们的NAS还只能是局域网访问和操作,如果在其他网络内(比如手机5g)就不可以访问了。在5g网络下搜索NAS的IP地址是不能连接成功的。

为了我们后面可以顺利搭建个人云盘,博客等需要外网访问的功能,这次单独分享一下关于远程访问的相关解决方案与浅显的原理。

只说一些简单的原理和解决方法,对基本结构不深究,有不对的地方大家也可以提出来讨论讨论。

计算机网络开课啦!同时灵魂画师上线!


基本网络知识

两个设备之间通信,其实就是需要建立之间的链路。(几层什么的就不说了学过的自己回忆一下)

对于我们上网也是一样的,也是需要你的电脑和你想访问的服务器之间建立链路。

简单画个图表示就是这样的(当然这中间省略了很多东西)

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图1

在简单的通信之间,两边都可以发送和接受数据。

公网IP

根据上面这张图可以进行一点扩展,让我们引出公网IP这个概念。

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图2

在公网中,各个公司的服务器都有公网ip地址,而电脑设备通过互联网服务提供商(ISP)连接到公网。这时候这台PC也应该有一个公网IP(图上是随便写的),这样两边就都可以访问了,非常合理。

当然这个公网IP一般都是动态的,很长又不好记还乱动,那就要用到DDNS了,也就是我们说的动态域名。

就像去访问百度等网站都有自己的域名,不管IP怎么变都会绑定在www这个域名下。

路由器与内网

然而实际情况当然不是这样的,大家都知道ipv4地址是有限的,所以在公网上的公网ipv4是非常珍贵的,运营商肯定不可以让每个设备都有一个公网IP。

这时候我们神奇的路由器就登场了。

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图3

路由器WAN口连接公网,得到一个公网IP地址,然后进行NAT转发,通过LAN口连接我们家中的各个设备。这样家中的设备就获得了一个内网IP地址。可以保证多台设备的连接,也不会消耗ipv4地址。

当然在内网中的设备是可以随意访问公网中的其他设备(如其他公司的服务器),但是公网中的设备想要访问内网中的设备就需要有公网IP的路由器进行端口转发了。(后面具体说一下)

大内网

按照上面的原理,打开百度搜索ip地址查询,看一下自己显示的ip。然后再对照路由器的ip地址。

应该基本所有人都是不一致的(专线除外),那么有很大可能我们进入了大内网。(移动必是)

简单来说效果如下:

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图4

这种情况下路由器并没有得到公网IP,而是还在一个分发下来的内网中。

这也是为了节省ipv4地址,运营商让多个用户的路由共享一个公网IP。

这时候我们连入公网的设备想访问内网的设备就不那么容易了。

好,到这里大家应该对于这个网络连接有一定的概念了。下面进入正篇,如何远程访问处于内网中的设备。


远程访问解决方案

所有远程访问的方案基本就是下面说的这些,具体使用哪种方案要看自己的具体情况。重点说最后两种方法。(不因为别的,就因为我是大内网移动…)

公网IP访问

如果能得到公网IP那一定是最方便的。因为你的设备(路由器)可以在网络中得到唯一的标识号,其他设备访问起来不费吹灰之力。

简单说说具体步骤:

1.得到公网IP

这里需要做的是和运营商要到你的公网IP。如果你是电信网,有可能不在大内网里,那么成功率可能会大一点。

和客服沟通说需要使用网络摄像头之类的应该会给你提供。需要重启光猫拨号即可。

(联通可以试试,听说不太容易,移动就算了)

2.设置光猫桥接

这里注意要让客服把光猫设置成桥接模式,然后再用自己的路由进行拨号。(如果光猫上也有端口转发设置也可以)

3.路由器端口映射

路由器的端口需要映射到你的NAS上的端口,比如原来9001端口是下载器,那就把它映射到路由器地址的9001端口。这样就可以实现访问了。大概是这样一个界面:

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图5

4,使用DDNS

上面也说到了,这个公网IP是动态的,随时会更改,所以需要和域名绑定。阿里云,腾讯云等都提供域名服务,杂一点的域名也挺便宜的。

剩下就是要根据具体设备设定脚本来解析域名了,每隔一段时间更新。(因为没有公网IP所以具体操作就自行解决一下)

IPV6访问

这时候有人就会说了,没有公网IP还有IPV6呢。

其实IPV6这种做法不是很推荐,有一定的门槛,而且也有一些暂时不太好解决的bug,这里还是简单说一说。

在没有公网ip的条件下,IPV6确实是个解决办法。大家都知道IPV6地址是非常多的(说用不完可能不严谨但是目前看来确实用不完)。大致步骤如下:

1.设置光猫桥接

首先还是要设置光猫桥接,并且路由器要支持IPV6。这样可以使用该路由器拨号,再打开路由器上的IPV6功能,这样内网中的每一个设备都会有独立的IPV6地址。

2.设置防火墙

当你拿到局域网设备的IPV6地址后,还是不可以直接访问的。这是因为IPV6还不够普及,所以路由器内网设备也不会随意暴露在公网上。

这时候你就需要一个可以修改防火墙设置的路由器。(这样的路由器已经价值不菲了)

当然还有一个办法,就是使用软路由。如openwrt、梅林这类的软路由可以很好地对防火墙进行修改。添加防火墙规则 ,把端口号添加进去就可以了。

(软路由后面有机会的话会弄一下,这里先不说具体操作细节)

3.使用DDNS

因为IPV6的地址也是动态的,所以也需要使用动态域名。这里和上一种方法的最后一步一致,参考IPV4的动态域名教程。

4.使用IPV6也有一个不太好解决的bug,那就是使用ipv4的设备无法访问到ipv6的设备,需要涉及4to6这种。


内网穿透

这个名词大家应该或多或少都见过,看上去很厉害的样子。

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图6

接下来的两种方法是在没有公网IP的情况下常用的内网穿透解决方案,前者较为简单后者稍复杂一些,也有一定的区别。

先说一下缺点,对于非氪金或者微氪玩家来说:慢&限流,数据传输速率取决于服务器给的带宽,但是一般都很低,勉强可以访问一下。(特此点名某某壳,1Mbps的免费带宽,也就是100多k的速度,打开啥不费劲)

方案也有很多,比如zerotier,ngrok,nps,蒲公英,神卓互联,各类frp等等。

这里我们的目的还是为了进行简单地访问,只介绍两种代表性方法,如果大家有更好的软件可以相互分享。


虚拟组网

是一种P2P的解决方案,简单来说就是把客户端组在一个虚拟的局域网中,就可以实现通信了。

这种方法会先去尝试内网,再udp打洞实现p2p,实在不行才会使用公网服务器转发。

说一个大家最熟悉的应用 teamviewer,这就是当时离我们最近的虚拟组网软件。(现在好像不能用了)

这种方案的好处就是可以直接通过客户端来建立连接,在步骤上会相对好操作很多。像向日葵,神卓互联,zerotier都是主打虚拟组网的解决方案。

这里我们以zerotier为例进行搭建,这是所有免费方案里限制最小的(连的慢是因为p2p的服务器在国外,想要快一点需要用云服务器搭建moon)。蒲公英等软件的使用会更简单。

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图7

(注:zerotier是全程英文的)

1.注册一个zerotier的账号

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图8

在账户栏我们可以看到连入虚拟网络的用户上限是50个,对于日常的使用是足够的。

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图9

2.创建一个新的虚拟网络

可以看到虚拟网络的id(这个id要用来连接其他设备入网)

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图10

还可以起名字,这里选择默认的private类型,在设备加入网络是管理员要进行审核。

其余的可以暂时保持默认,这里显示还没有设备连入网络,所以进行下一步安装

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图11

3.在NAS上安装zerotier

在下载界面根据自己的系统选择安装包,这里我们先安装NAS上的客户端。

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图12

可以看到也有群晖,威联通的相关客户端。这里树莓派选择linux的安装方式。

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图13

复制第一条linux命令到finalshell,然后短暂的等待,安装成功

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图14

4.将NAS加入虚拟网络中

添加的时候可以在管理界面添加,也可以在设备中添加。这里已经打开了ssh了就一起添加了。

复制自己的网络ID,输入命令后显示添加成功。

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图15

再到管理员界面刷新一下,把前面Auth的勾打上,就可以成功加入了。

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图16

并且zerotier会给NAS分配ip地址

5.在windows上安装客户端,并加入网络

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图17

6.使用zerotier分配的地址愉快地访问吧

对于国内的同类软件来说安装更加简单,教程也更明确。基本流程就是在局域网设备上安装客户端,再用 同一个网络ID加入(如果配合某些盒子可以做到只给路由端安软件,其余内网设备直接转发连接)


FRP内网穿透

虚拟组网在操作过程上是比较简单的,但也有缺点,就是别人想访问你的内网设备必须要安装客户端,而不能像我们访问其他公司的服务器那样便捷。

这个时候就可以引出frp这种更加稳定的方案了。frp是基于公网服务器流量转发的内网穿透方式,前面我们说到,因为大公司的服务器有公网IP,所以我们的内网设备可以访问。

frp的原理也是如此,简单来说我们只需要架设一个有公网IP的服务器,再用内网设备连接,最后端口映射就可以访问了。

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图18

frpc是客户端,也就是你想要绑定的本地设备端

frps是服务端,也就是具有公网IP的设备端

frp的前提就是需要一台vps服务器,有需求可以上腾讯云或者阿里云ecs购买(便宜的即可),如果赶上搞活动还是很划算的。

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图19

Sakura frp

我们先说不买服务器,使用可免费的sakura frp搭建。(搭建的核心都是一样的)

这是一个当时专门为MC玩家搭建的方便自建服务器的站点,可以签到获取流量,网站的导航也做的非常细致。

1.官网注册 natfrp.com

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图20

2.在主界面可以看到剩余流量,带宽和隧道数等等

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图21

3.创建隧道

创建一个新的隧道,本地地址可以保持默认,把你想要访问的内网设备端口填入,然后创建。

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图22

成功后会有提示

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图23

4.在内网设备中配置

这里可以好好看一下他们的文档对应的操作系统,写的非常详细。

由于我们这里是arm64架构的linux系统,所以操作如下:

查看架构

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图24

找到对应下载地址下载

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图25

5.修改配置文件并开启隧道

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图26

6.查看隧道状态

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图27

7.复制地址愉快访问

复制一下隧道列表中的地址,然后加上端口号访问

需要注意的点

1.用国内节点需要实名认证,HTTPS还需要实名认证ICP备案

2.填写好正确的本地地址

3.可以使用windows启动器来管理隧道查看日志

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图28

4.有些本地应用会有外网访问安全检测,比如qbittorrent就需要设置一下不然进不去

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图29

使用自己的vps服务器搭建frp

如果你有自己的云服务器,或者希望穿透更加稳定买了云服务器,那么可以自己搭建frp穿透。

先贴上项目的地址:

github.com/fatedier/frp

1.下载对应的配置文件包

由于我这台云服务器是x86_64的centos系统,所以要下载arm64版本。

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图30

2.使用finalshell登录云服务器

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图31

把压缩包拖到root下,再解压

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图32

3.文件结构

frpc是客户端文件,frps是服务端文件

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图33

这里我们的云服务器是服务端。修改ini配置文件加入token

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图34

4.运行服务器端

输入命令,服务器运行成功

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图35

5.设置一下配置文件,实现自启动

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图36

输入命令(和前面的sakura frp核心操作一致)

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图37

6.创建客户端配置文件

上面是服务器的公网IP,下面是对应的内网设备地址映射

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图38

然后放入NAS中

7.docker安装frp

安装方法参考上次的docker安装教学(注意下对版本,x86的镜像不能用于arm)

这里需要配置一个环境变量,再把卷与放入的ini文件绑定

用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图39
用树莓派搭建全功能NAS服务器(03):了解你的网络&内网穿透插图40

完成后就可以访问了,下次修改需要把该镜像停止,再去修改配置文件的端口映射。

现在手机就可以搭着云服务器的跳板去访问你在家中的NAS了。


summary

对于这几种访问方式其实没有非常明显的优劣之分,是适用于不同场景的。

zerotier在连不上的时候也没有蒲公英好用。当我们做一些对带宽要求不高的操作,比如日常访问看看状态,或者放个bt进去什么的,那么免费带宽也是够用的。(当然看电影之类的还是需要快一点)

公网IP才是yyds,也希望IPV6能更进一步。

原文链接:https://zhuanlan.zhihu.com/p/397931345?utm_id=0

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享