写在前面

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

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

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

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

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

基本网络知识

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

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

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

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

公网IP

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

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

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

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

路由器与内网

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

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

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

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

大内网

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

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

简单来说效果如下:

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

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

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

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

远程访问解决方案

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

公网IP访问

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

简单说说具体步骤:

1.得到公网IP

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

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

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

2.设置光猫桥接

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

3.路由器端口映射

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

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这种。

内网穿透

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

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

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

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

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

虚拟组网

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

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

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

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

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

(注:zerotier是全程英文的)

1.注册一个zerotier的账号

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

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

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

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

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

3.在NAS上安装zerotier

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

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

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

4.将NAS加入虚拟网络中

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

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

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

并且zerotier会给NAS分配ip地址

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

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

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

FRP内网穿透

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

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

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

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

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

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

Sakura frp

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

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

1.官网注册 natfrp.com

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

3.创建隧道

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

成功后会有提示

4.在内网设备中配置

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

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

查看架构

找到对应下载地址下载

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

6.查看隧道状态

7.复制地址愉快访问

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

需要注意的点

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

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

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

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

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

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

先贴上项目的地址:

https://github.com/fatedier/frp

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

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

2.使用finalshell登录云服务器

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

3.文件结构

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

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

4.运行服务器端

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

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

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

6.创建客户端配置文件

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

然后放入NAS中

7.docker安装frp

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

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

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

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

summary

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

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

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

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

  1. 用树莓派搭建全功能NAS服务器(04):打造个人网盘系统优化

    写在前面 在了解完内外网之后,我们就可以着手搭建各个类型的应用来丰富我们的NAS. 首先是用处比较大的网盘系统(尤其是感受过某某网盘的折磨). 自己的网盘系统不需要担心空间问题和局域网传输速度问题(内 ...

  2. 用树莓派搭建全功能NAS服务器(01):树莓派基础操作OMV搭建

    写在前面 对于文件互传来说,局域网和云盘的操作总是独立的,而且很难将两者的优势合为一体.如果想要集多种优势为一体,那么NAS应该就是较为完美的解决方案了. 在这个系列中我们尽量跳过一些枯燥的理论知识, ...

  3. 用树莓派搭建全功能NAS服务器(06):自带穿透的文件同步工具

    写在前面 说完了nextcloud,大家已经对于个人网盘不再陌生.但想要做到随时随地同步文件,还需要公网IP/内网穿透. 其实说到文件同步,还有一款自带内网穿透的P2P文件同步工具必须介绍一下,就是s ...

  4. 用树莓派搭建全功能NAS服务器(05):玩转影音看片整理大法

    写在前面 搭建影音环境应该是大家最想完成的一个环节,也是NAS最为实用的功能之一.毕竟面对辛辛苦苦下载下来的资源,还是有个看上去极其舒适的像样的家才算完美. 使用下载器下载的文件夹的名字一般都是毫无章 ...

  5. 树莓派制作家用服务器,树莓派搭建家用小型NAS服务器

    你是否还在为从网盘下载文件被限速而捶胸顿足无可奈何呢. 假如你的手头正有一块rapberry和闲置的移动硬盘,那么恭喜你,你可以很方便的搭建一个专属于自己的文件共享服务器NAS,适时备份重要数据,一起 ...

  6. CentOS搭建全功能服务器(Nginx+Tomcat+PHP+SSL)

    本文将介绍Linux环境下如何安装Web服务基础运行环境,包括以下内容: 安装jdk 安装Tomcat 安装MySQL 安装PHP 安装Nginx 安装SSL证书 整合Nginx和Tomcat 整合完 ...

  7. 搭建全功能绿色版本的Flex Builder 3.0.1

    啰嗦两句: 在本文中,我将向大家介绍一下如何在本地搭建全功能绿色版本的Flex Builder 3.0.1.先说说什么是绿色版本呢?顾名思义嘛,就是只需要解压就可以运行的版本啦,使用完后,可以放心的直 ...

  8. 树莓派搭建自动追番服务器详细教程|树莓派|Jellyfin|AutoBangumi|qBittorrent

    树莓派搭建自动追番服务器教程|树莓派|Jellyfin|AutoBangumi|qBittorrent 流程简介 准备工作 硬盘挂载 Jellyfin搭建 AutoBangumi部署 流程简介 本文主 ...

  9. 树莓派远程4G遥控车教程(四)-实时监控内网穿透及集成舵机控制功能

    树莓派远程4G遥控车教程(四)- 内网穿透及监控页面集成舵机控制功能 树莓派远程4G遥控车教程(一)-准备工作 树莓派远程4G遥控车教程(二)-相机云台舵机初步调试 树莓派远程4G遥控车教程(三)-摄 ...

最新文章

  1. centos安装pg以及pg配置ssl
  2. Visual C++ 2012编译器更新(预览版)发布
  3. JMF介绍之媒体框架二
  4. ios找不到信任证书_ios信任苹果企业级应用
  5. eureka java_spring cloud 入门系列二:使用Eureka 进行服务治理
  6. ACM旗舰期刊最新综述:一览端到端人脸识别最新进展
  7. docker 使用中遇到的问题
  8. ds18b20温度传感器驱动编写
  9. python3的面向对象_python3学习之面向对象
  10. mac上的Android虚拟机,android虚拟机能在retina MacBook pro上跑吗?
  11. 实现网页页面跳转的几种方法(meta标签、js实现、php实现)
  12. 频率泄露以及加窗原理
  13. 医学图像DCM格式文件处理
  14. 2022智博会| 麒麟信安携操作系统亮相华为展台
  15. 红警辅助脚本_红警Ol全能辅助_红警自动切小号刷资源_加速采集打野_建筑升级……
  16. java在退出前释放资源_【java】手动释放资源问题
  17. 直播预告 | 染色质免疫共沉淀(ChIP-seq)应用实例分析(表观调控和转录调控)
  18. 7-38 寻找大富翁 (25分)
  19. python 金额计算_Python | 根据销售金额计算折扣
  20. php crypt md5,PHP crypt()-返回的md5哈希

热门文章

  1. 华为数通笔记-组播协议介绍之IGMP
  2. 珂朵莉与斯卡布罗集市
  3. 7位反日中国大腕明星
  4. python assert使用
  5. 手机人人java_人人网JAVA版手机客户端软件功能详解
  6. 5分钟做一个php的增删改查案例
  7. 大数据技术之 Hadoop概念讲解
  8. 投资策略详细研究:山脉与山丘
  9. 2020校招多益网络软件研发笔试
  10. 如何优化shopee产品主图提高转化率—扬帆牧哲