树莓派、个人电脑与一台家庭存储服务器的搭建(内网的突破!)
又是一个周五, 又是一周的轮回, 当了一周的牛马之后, 总算迎来了一个短暂的小假期了, 本来今天是最近一段时间里面再平常不过的一天了, 但是作为地球上的碳基生物以及这个地球生存规则来说, 所有的事情不可能让你一帆风顺的完成.
就好比你玩儿赛车游戏, 前面的路宽广无比, 但是路上有一根电线杆, 你每次都能非常巧妙的装到上面....你会感觉总有一股无形的力量在阻止你通往成功路程的前行, 各种恶心你... 这你受得了么?
关于地球生存规则
不过欣慰的是, 9月6日, 索尼旗下游戏公司Team Asobi正式发布了宇宙机器人的续作, 作为一个天天催着Asobi更新游戏的我来说, 自然等不到回家再玩了, 于是打开ipad, 先通过远程连接到家里抢先体验一下所谓的"快乐的源泉"!
心细的网友们其实会质疑, 为什么你的ipad就能够在外面串流到家里的ps5, 而我的只能在家里直连串流呢?这还得归功于我的树莓派小盒子!
所以, 本章节开始, 将讲述如何使用树莓派做内网穿透, 以及和我一样拥有一些超实用的功能!
# 正文开始 #
上一篇文章中, 我们已经将树莓派做成了一个小的NAS存储服务器, 我们可以在局域网内, 将我们的文件存储集中化, 这样, 我们可以在电视盒子上面安装kodi, 播放NAS上的影片; 我们也可以在手机上面连接NAS, 把不经常用到的照片, 视频存储到我们的NAS服务器上和其他设备进行共享, 但遗憾的是, 我们只能在内网这样使用, 走出家门, 断了家里的wifi, 我们便无法连接到家里的NAS服务器了, 这时候, 我们就需要突破内网, 能够在外面连接到自己的主机, 我们先来科普一些小常识.
如上图所示, 我们通过上面这个图和最通俗易懂的语言来对网络做一个简单的了解.
首先, 你们家会有一个移动、联通、电信给你们家的光猫, 绝大多数身边有懂电脑的或者你自己会搞一个无线路由器, 然后用这个无线路由器来做你们连接无线网的根基, 有了这些, 你就能躺在沙发上用你们家的网刷视频, 聊天, 打游戏, 或者连接到你上一章节里面说的NAS上了, 对不? 事实上, 绝大多数外面的网络环境也都是这个道理, 你在外面用你手机流量上网的时候, 你的手机其实也连接到了一个"大无线路由器"上, 这个可以理解成为一个信号塔, 你手机流量数据通过这个大的信号塔, 经过一个无数个路由器把你的数据进行各种转发后, 这个数据就到达了它应该去到的地方, 反向也是一样的, 因为你们之间已经建立起了一条稳定的连接, 当然, 如果中间哪里断了, 那基本上你看的视频就在转菊花, 你发的微信信息就会出现红叹号, 这种情况就意味着网络断了, 得重连!
##我能在家上网,那为啥我在外面没有办法直接访问到我们家电脑或者NAS?
这有你们家路由器一部分功劳, 首先,供应商通过网线或者光纤把你家连到互联网上, 理论上你应该能访问到互联网上的任何地方, 任何地方也应该能访问到你, 但是就是因为你们家这个路由器, 它作为你们家的"网络中介", 把你们家内部的手机和电脑的网络请求代理转发到互联网的指定位置, 而已经建立连接的数据也会经它手把数据转发给你的手机或者电脑, 至此, 一个完整的通讯过程就完成了, 但是呢, 如果是来自于互联网的一次主动请求, 这个请求也只能到这个中介这里, 同时这个中介也不知道这个数据应该给谁, 所以它就自然把这个请求丢了, 说白了就是这样, 家用路由器在方便我们转发数据的同时,他也会自然丢掉一些它认为不必要的链接请求数据, 所以家用路由器也充当了一个天然防火墙的概念, 有想深入了解的这里不会多讲, 多多度娘, 了解一下NAT和路由的概念.
我们在外面访问家里的NAS也是一样的, 我们需要和家里的NAS建立一个稳定的连接, 这个连接有一些要求:
首先, 我们需要有一台连接到互联网的设备, 比如你的手机, 这是首要, 但这里忽略, 假定你有一台手机或者iPad,或者一台电脑.
其次, 我们需要在网络上能够正确找到我们自己家的位置, 这里就需要提到一个东西, 网络门牌号: IP, 而且是公网IP, 这个也是我们这一篇文章中的核心部分, 拥有一个公网IP地址(无所谓固定还是非固定), 我们便可以以最简单的方式来实现内网的穿透, 实现NAS的外网访问, 具体操作如下:
1. 度娘搜ip,获取公网IP地址
这时候, 你会得到诸如图上的123.117.170.0这样的地址, 这个便是你家里的外网IP地址, 但目前我们仍然不能确认这个地址我们能否使用, 我们需要记下他, 然后我们需要进入家里路由器的管理界面查看路由器内IP地址.
2. 路由器查询ip地址
家里是中国联通, 进到中国联通的路由器管理界面的状态-ipv4连接信息里面, 观察红框框内INTERNET_开头的那一行, 如果这一行的IP地址和你在度娘查询到的IP一毛一样, 那么恭喜你呀, 你可以跳过下面的步骤了, 因为你的IP地址符合内网穿透标准, 其实就是内网映射哈哈哈哈.
当然这里要是和外面的不一样, 那么证明, 你家的局域网其实是在你们运营商的大局域网里面, 这种情况我们需要先获得公网IP.
我以联通举例: 找联通人工客服, 告诉客服姐姐, 说你们家装了一个摄像头, 摄像头需要有个公网IP从外面能访问到摄像头, 然后基本客服就会帮你操作, 等一会儿你重启家里路由器后, 你便有了和度娘查出来的相同的IP了.
因为我这边只有联通, 所以没有办法测试其他运营商, 所以这个步骤可以度娘查询一下获取公网IP这个过程. 对于其他供应商
3. 实现突破
上面的IP搞定了后, 这里有两种办法搞定这个"网络中介"让他帮我们实现数据转发: 端口映射和DMZ
端口映射作为最最最基础的一种办法可以简单粗暴实现我们在外网访问我们的NAS的方式, 这种方式会将我们内网的NAS的服务端口映射到外网去, 这样一来, 我们只需要知道我们的IP地址和端口就可以直接连接到我们的NAS服务器提供的服务, 例如上一篇文章我们安装的samba(SMB)服务中, 使用的端口号为139和445两个端口, 我们只需要在我们的路由器上的应用服务器->端口映射中将这两个TCP端口映射出去, 这样, 我们便可以在外网通过我们的外网IP和端口直接连接到我们的SMB服务进行相关文件操作了,下图便是我的路由器上做的SMB的端口映射.
再来说DMZ, 对于有些服务器来说, 它运行时可能会有很多个不确定的端口, 对于这种情况来说, 我们并不能确定具体端口是哪些, 这些服务也不支持配置固定的数据端口, 这种情况来说,我们可以使用DMZ方式把整个内网的服务器公开到互联网上, 我们可以通过外网访问到设置DMZ的这台主机上的所有开放的端口和服务, 这样我们也可以完成我们从外网访问到我们内网NAS的这个需求, 配置如下图所示:
另外需要注意的是:
你们家只有一个(光)猫, 它负责拨号, 推IP地址, 你们家的路由器只负责发送个无线的信号, 这种情况下, 你直接改光猫里面的映射和DMZ就可以了.
巴特, 如果你们家有个光猫, 它拨号, 它推IP地址, 你又买了一个无线路由器, 你的无线路由器的WAN口连着光猫的LAN口, 你自己NAS服务器的IP和光猫的IP不在一个网段的情况时, 你大概率需要先在路由器上把你的NAS做映射映射出去或者做DMZ, 然后在你的光猫上再次把你买的那个路由器的IP地址再次做一次映射, 具体为啥, 你们可以自己想想...
至此, 我们就完成了NAS向外网的发布, 但事实上这并非我写这篇文章的本质和初衷, 我也并不推荐大家按照上面这样去做, 早在很多很多年前, 不知道有多少主机因为系统漏洞和自主管理失误导致公开到外网的主机遭受到入侵, 当然网络威胁并不是历史, 它一直存在.
讲真这边文章写下来真的很枯燥很纠结, 不过好在已经把这篇文章写到结尾了, 也希望最近那些莫名其妙的事情和人也能像写这篇文章一样赶紧完结把.
接下来的一章, 上内网穿透的干货, 感谢各位的观看, 我会抽出时间努力的写!
公众号: CookieX