热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:将树莓派作为服务器也太爽了吧

篇首语:本文由编程笔记#小编为大家整理,主要介绍了将树莓派作为服务器也太爽了吧相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了将树莓派作为服务器也太爽了吧相关的知识,希望对你有一定的参考价值。







前言:我们都知道买一台带宽大一点服务器要不少钱,有没有想过拥有一台和家庭宽带带宽一样的服务器?那速度想想都刺激,如果你手上有树莓派的话,再加上这篇文章你就会拥有一台和家庭宽带带宽一样的服务器。


这篇文章介绍了如何在树莓派上安装系统,也顺便说了怎么在内网中访问自己的树莓派,当然想要将树莓派打造成一个服务器,是不仅仅要能再内网中访问也要能在公网中访问。本篇文章主要介绍的就是怎样能在公网中访问家庭中的树莓派,毕竟能够在公网中访问的树莓派才是名副其实的一台服务器。


如何让你的树莓派可以公网访问

如何让树莓派可以公网访问呢?有以下两个前置条件:


  1. 你的宽带有公网ip。
  2. 打开根路由“虚拟主机”功能。

现在分别说下这两个条件:


检测自己的宽带是否有公网ip

如果你家庭安装的是移动宽带,那么ipv4的公网地址一般是没有的,移动的宽带ipv4都是移动内网的ip,不过,如果你的宽带有ipv6地址的话,一般ipv6的地址是公网的,怎么知道自己的宽带有没有ipv6的公网地址呢?这里有一个网站可以检测,我的宽带检测的结果如下
在这里插入图片描述
如果你宽带的检测结果如上图所示,那么你的宽带就有ipv6的公网地址。

注意:这里测试的时候你的设备连接的网络必须是跟路由器,否则会影响测试结果。

这时问题来了,怎么确定自己的宽带ipv4的地址是不是公网的呢?其实也很简单,我们只要访问一下这个网站,就能得到自己宽带的公网ip,然后,查询到的ip再和自己跟路由器查询的ip地址进行比对,
在这里插入图片描述
如果一样则说明自己的宽带拥有ipv4的公网ip。联通和电信的宽带一般是有ipv4公网地址的,我装的就是联通的宽带,拥有ipv4的公网地址



上面我一直在说根路由器,这里明确一下,我说的跟路由器就是你宽带入户的那个路由器,一般都是运营商装宽带时送的那个,不是自己另外安装的路由器。



打开自己路由器的虚拟主机功能

看到这个小标题你可能会有疑问,打开自己路由器的虚拟主机功能,这个“虚拟主机”功能不是路由器都自带的吗?为什么还要打开呢?确实,路由器一般都会有虚拟主机功能,但是运营商的路由器,“虚拟主机”功能你一般是看不到的。可能运营商是为了用户安全考虑,怕用户乱折腾,影响到了用户的使用体验,运营商路由器上给你的网址及用户名密码,你登录后会看到下面界面
在这里插入图片描述
你可以点进去每个选项看下,是看不到“虚拟主机”选项的,因为你登录的用户是普通用户,想要看到“虚拟主机”这个选项,需要的账号是管理员账号,管理员账号登录后的界面如下
在这里插入图片描述

在高级配置里面可以找到“虚拟主机”的选项,那么这个管理员的账号是什么呢?文章末尾会给出获取管理员账号的方法。

注意:这里说的路由器都是根路由器。

如果你的宽带有公网ip(ipv4和ipv6)都可以,并且也有“虚拟主机”的选项,那么就能将你的树莓派映射到公网,具体的操作步骤见下文。


设置树莓派为虚拟主机


将树莓派局域网ip设置为固定ip

为什么要这么做呢?因为路由器为设备分配的ip,一般是DHCP模式的,这种模式设备的ip是有租期的,可能租期到了之后设备的ip就变了。如下图
在这里插入图片描述
设置成固定ip是为了“虚拟主机”,因为虚拟主机的功能要指定设备ip的。那么怎么将设备的局域网ip设置成固定的呢?很简单,如下图
在这里插入图片描述
登录路由器的管理页面后,找到如上图红框4位置,输入你想要为树莓派分配的局域网ip和树莓派的mac地址就行了。设置成功后就会出现在红框5的位置。


设置树莓派为虚拟主机

虚拟主机功能需要登录管理员账号,**文章末尾会给出获取管理员账号的方法。**登录管理员账号找到如下图的位置
在这里插入图片描述
在上图中输入需要的信息就行,当然如果你不将树莓派设置成固定的局域网的ip也是可以的,这里可以勾选“启用户MAC映射”选项,输入树莓派的mac就行了。具体的输入信息可以参考下图
在这里插入图片描述
树莓派设置成虚拟主机后,你就可以在公网访问你树莓派了,如过你是按我的这篇文章安装的树莓派系统,那么你可以在局域网外的浏览器输入“你的宽带公网ip:9090”访问到你的树莓派的管理界面。


多级路由的虚拟主机设置

可能你家里不仅仅有一个根路由器,这时的虚拟主机怎么设置呢?也很简单,我这里就拿两级路由器来举例:首先在你的根路由器设置虚拟主机,这个虚拟主机的ip是你的第二级路由器ip,然后你的第二级路由器的虚拟主机再设置成你树莓派的ip就可以了。

注意:宽带的公网ip不是一直不变的,想把树莓派作为服务器,你还需要购买域名,点击这里购买,通过域名来访问树莓派就行了。可能这里会有疑问域名就能解决公网ip变化的问题了吗?当然不能解决ip变化的问题,但是每次变化后我们修改域名的解析地址为变化会的ip就行了,当然这里不用手动来修改,可以通过ddns来自动设置,设置方法见下文。


利用阿里云的DDNS自动更新ip

**这里说的更新ip是指,将自己宽带的ip自动更新到域名解析。**这样,就省去了每次宽带ip变化自己手动更新域名解析的步骤。实现动态域名解析DDNS其实很简单,可以查看官网,我这里找到了一个动态域名解析的docker镜像,运行下命令就行了,非常简单、方便、快捷,详情点击这里了解。运行命令如下

docker run -d --restart=always --net=host \\
-e "AKID=[ALIYUN's AccessKey-ID]" \\
-e "AKSCT=[ALIYUN's AccessKey-Secret]" \\
-e "DOMAIN=ddns.aliyun.win" \\
-e "REDO=30" \\
-e "TTL=60" \\
-e "TIMEZONE=8.0" \\
-e "TYPE=A,AAAA" \\
sanjusss/aliyun-ddns

环境变量名称注释默认值
AKID阿里云的Access Key ID。获取阿里云AccessTokenaccess key id
AKSCT阿里云的Access Key Secret。access key secret
DOMAIN需要更新的域名,可以用“,”隔开。 可以指定线路,用“:”分隔线路和域名(线路名说明)。 例如:“baidu.com,telecom:dianxin.baidu.com”。my.domain.com
REDO更新间隔,单位秒。建议大于等于TTL/2。300
TTL服务器缓存解析记录的时长,单位秒,普通用户最小为600。600
TIMEZONE输出日志时的时区,单位小时。8
TYPE需要更改的记录类型,可以用“,”隔开,只能是“A”、“AAAA”或“A,AAAA”。A,AAAA
CNIPV4检查IPv4地址时,仅使用中国服务器。false
WEBHOOKWEBHOOK推送地址。
CHECKLOCAL是否检查本地网卡IP。此选项将禁用在线API的IP检查。 网络模式必须设置为host。 (Windows版docker无法读取本机IP)false
IPV4NETS本地网卡的IPv4网段。格式示例:“192.168.1.0/24”。多个网段用“,”隔开。
IPV6NETS本地网卡的IPv6网段。格式示例:“240e::/16”。多个网段用“,”隔开。

以上环境变量均存在默认值,添加需要修改的环境变量即可。

文章到这里,已经介绍了怎么查询自己宽带是否是公网ip,怎么打开虚拟主机选项,怎么设置虚拟主机以及怎么利用DDNS自动更新ip。完成了上面几步,你的树莓派就己经可以当做服务器使用了,而且带宽是你宽带的带宽,剩下的你就可以随意折腾了。比如我就在树莓派上搭建了自己的博客网站以及做了自己的私有云盘,还是很舒服的。


获取管理员账号的方法

扫描下方二维码,输入框内发送“管理员”,即可获取。

爱码者说






推荐阅读
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Redis中RDB文件和AOF文件的保存和还原机制。RDB文件用于保存和还原Redis服务器所有数据库中的键值对数据,SAVE命令和BGSAVE命令分别用于阻塞服务器和由子进程执行保存操作。同时执行SAVE命令和BGSAVE命令,以及同时执行两个BGSAVE命令都会产生竞争条件。服务器会保存所有用save选项设置的保存条件,当满足任意一个保存条件时,服务器会自动执行BGSAVE命令。此外,还介绍了RDB文件和AOF文件在操作方面的冲突以及同时执行大量磁盘写入操作的不良影响。 ... [详细]
  • 网卡工作原理及网络知识分享
    本文介绍了网卡的工作原理,包括CSMA/CD、ARP欺骗等网络知识。网卡是负责整台计算机的网络通信,没有它,计算机将成为信息孤岛。文章通过一个对话的形式,生动形象地讲述了网卡的工作原理,并介绍了集线器Hub时代的网络构成。对于想学习网络知识的读者来说,本文是一篇不错的参考资料。 ... [详细]
  • 微软宣布从今年5月开始停止向PC制造商提供32位Windows 10,意味着64位版本将成为主流。尽管Windows 10系统存在一些bug,但全球已有超过10亿台活跃设备在使用。微软表示,从Windows 10 2004版本开始,所有新的Windows 10系统都将要求使用64位版本,不再发布32位版本。这一变化不会影响使用较早版本Windows 10中的32位客户系统。微软仍然致力于在这些设备上提供支持。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
雪儿2602915015
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有