最近开始研究研究树莓派有哪些应用场景。

首先想到的就是在内网部署一台可在公网提供服务的低功耗服务器,可以提供哪些功能呢?比如Web服务SVN服务FTP服务远程家庭网络检测服务便携式漏洞扫描设备等等。这些都是很有意思的应用场景。

Web服务

通常公网的Web服务都是要交费的,阿里云最便宜的一台云服务器也要60多块钱一个月的。树莓派部署在家里,就是一个免费的公网服务器了,只是电信把80端口关了,那其实也没事,可以绑定8080端口。现在家庭宽带都比较大了。我家现在是24M的宽带,现在上传带宽已经有1M多了,这个还是相当可观的。有这么一台免费的公网服务器可以放一些自己的小Web应用也是非常不错的。

远程家庭网络监测服务

这个就是最有研究价值的一个服务了。

简单的就是在手机上可以随时查看家里面有多少WIFI链接,有多少人在家,哪个电视开着等等。如果家里放到摄像头的话,还可以在手机端随时查看家里的摄像头。再后面,如果其他家电也是智能化,可联网的话,那就可以通过这个树莓派实时的控制了。

便携式漏洞扫描设备

准备一个太阳能充电器+无线网卡+再加上这个树莓派就可以随时进入一个网吧,咖啡厅等等公共的环境,接入内网,就能对内网中的设备进行安全监测了。想想也是非常不错的哦。

说了这么多了,那么应该如何部署呢?接下来我们就开始吧。

第一步:树莓派安装Debian系统

1、操作系统下载

树莓派官方 Raspbian 系统下载:http://www.raspberrypi.org/downloads
或直接下载 http://downloads.raspberrypi.org/raspbian_latest.torrent 最新版的 BT 种子。

还有一个选择是由国人制作的超级精简版,更低内存占用:http://pan.baidu.com/share/link?shareid=167943&uk=1412008571

2、系统安装

所谓“安装系统”其实不如说是“恢复”下载到的系统镜像到内存卡上,这个过程也没什么难度,就是看内存卡的速度,慢慢等而已。需要注意的是,市面上部分 4G 的内存卡,实际大小才 3.6G 多,会提示空间不足,所以还是直接购买 8G 吧,也差不了几块钱。
在 Windows 下可以使用 Win32 Disk Imager 进行镜像恢复,非常方便,也是树莓派官方推荐的方法。官方下载地址:http://sourceforge.net/projects/win32diskimager/

3、环境配置

登录tplink路由器,查看客户端列表就可以看到树莓派的IP地址,然后就是SSH登录到小服务器上随便倒腾了。

第二步:配置固定IP

树莓派安装好后,默认是DHCP的网卡配置。因为后面要配置IP端口映射,所以需要配置固定的IP地址。

接下来我们就开始配置吧。

auto eth0
iface eth0 inet static
address 192.168.9.250
netmask 255.255.255.0
gateway 192.168.9.1

第三步:IP端口映射

这不是最关键的一步,也是最核心的一步。只有完成了这一步,才能实现从外网直接访问内网的设备。

在Tplink上的配置方法如下:

使以上条目生效后,就可以通过访问PPPoE的公网IP进行端口转发,映射到内网的树莓派服务器上面了。

这步完成后,基本上就可以实现我们想要达到的目的了,可以通过外网访问家庭内网的树莓派服务器,进而可以访问家里面的任何一台网络设备,比如机顶盒,路由器等等。

第四步:花生壳动态域名解析

大家都知道PPPoE的公网IP地址是随机的,这样就会导致今天这个IP可以访问,明天也许就需要重新登到路由器上查看PPPOE的IP了。这样需要人工重复劳动的事,肯定不是我们追求的最佳解决方案。

那我们就会想到能否实现一个动态DNS解析,就是将一个域名动态的解析到路由器的公网IP上。

TPLinke正好提供这样的一个功能。

注册一个花生壳账号,就可以实现域名动态绑定家庭网络的公网IP了。这个方法在以前是一直可以使用的,但是最近发现电信又不知道再搞什么鬼,怎么连都连不上。开始以为是这几个端口是不是都被电信给封了,最后才发现原因:对外访问的IP和对内访问的IP不一样

电信也是坑了,居然这么搞。通过ping花生壳提供的动态域名,发现绑定的是对外访问的公网IP地址,那就没有办法通过花生壳提供的现成解决方案来实现了。那么怎么办呢,难不倒我们,那我们就自己实现一个动态域名解析方案

第五步:Dnspod动态域名解析

提供这个功能的基础,主要是因为dnspod提供API接口让我们实现自动化的修改或增加A记录的功能。

那么我们就通过这个接口自己实现动态域名解析方案吧。

1、获取路由器的PPPoE的公网IP

Shell代码如下:

value=$( curl -u test:test http://192.168.9.1/userRpm/StatusRpm.htm | grep ’0, “0C-82-68-A1-EC-5B”, “‘ | awk ‘{print $3}’ | awk ‘{sub(/["]+/, “”); print}’ | awk ‘{sub(/["]+/, “”); print}’ | awk ‘{sub(/[,]+/, “”); print}’ )

2、判断动态域名的IP是否变更,如果变更则修改Dnspod记录

完整代码如下:

#! /bin/sh
#
# Provides:          ddnsUpdate.sh
# Description:       ddnsUpdate
#
# Author: Shenjie <aiharry2007@163.com>
#
# Usage:
#   ddnsUpdate.sh
#
#
#

arMail=”Dnspod账号”
arPass=”Dnspod密码”
domainId=”域名Id”
recordId=”记录Id”
subDomain=”ddns”
recordType=”A”
recordLine=”%E9%BB%98%E8%AE%A4″
if [ ! -e /home/homeip ]; then
touch /home/homeip
fi
oldValue=$( cat /home/homeip )
value=$( curl -u 路由器用户名:路由器密码 http://路由器地址/userRpm/StatusRpm.htm | grep ’0, “0C-82-68-A1-EC-5B”, “‘ | awk ‘{print $3}’ | awk ‘{sub(/["]+/, “”); print}’ | awk ‘{sub(/["]+/, “”); print}’ | awk ‘{sub(/[,]+/, “”); print}’ )
if [ "$oldValue" = "$value" ]; then
echo “home ip is the same, do not have to update dnspod”
echo “[`date`] home ip is the same, do not have to update dnspod, IP: ${value}” >> /var/log/ddnsUpdate.log
exit 1
fi

echo $value > /home/homeip

mx=”0″
ttl=”600″

agent=”AnripDdns/5.07(mail@anrip.com)”
url=”https://dnsapi.cn/Record.Modify”
param=”login_email=${arMail}&login_password=${arPass}&login_code=&format=json&domain_id=${domainId}&record_id=${recordId}&sub_domain=${subDomain}&record_type=${recordType}&record_line=${recordLine}&value=${value}&mx=${mx}&ttl=${ttl}”

echo “current deivce ip: ${value}”
echo $param
echo “start to connect to dnspod ……”
wget –quiet –no-check-certificate –output-document=- –user-agent=$agent –post-data $param $url
echo ” ”
echo “ddnsUpdate run success”
echo “[`date`] ddnsUpdate run success, IP: ${value}” >> /var/log/ddnsUpdate.log

这个里面的账号部分请自行修改,如有疑问,可以加我的QQ:782200272咨询。

第六步:将Shell脚本加入到contab计划任务中,没6小时执行一次

一切工作就绪后,把这个脚本加入到contab计划任务中,就可以实现动态域名解析功能了。

至此,我们已经实现了完整在的在家庭内网中部署一台可在公网提供各种服务的服务器了。

为什么叫低功耗服务器呢

因为树莓派是最适合当做家庭内部的轻量型服务器的。

如果用主机的话,成本太高,耗电量也大。如果用笔记本的话,耗电量也很大,而且对笔记本的损耗太大了,不合算。

树莓派的功耗:3.5W,也没看错,才3.5W的功率。相当于一个LED灯的功率,非常节能环保吧。

今天就到这里吧。下次再介绍树莓派的其他部署和应用。

树莓派应用之家庭网络中部署一台可在公网提供服务的低功耗服务器相关推荐

  1. TR069在家庭网络中的应用

    随着宽带接入在家庭的普及,IP语音(VoIP).IPTV业务的迅速发展,越来越多的IP终端设备被引入到家庭网络中,传统的基于简单网络管理协议(SNMP)的网管在管理数目众多的终端设备时已经变得越来越力 ...

  2. 家庭网络中的各种网络连接方式介绍及各自特点

    目录 网络连接的两个大类 有线连接方式 RJ45网线连接 RJ11电话连接线 FC光纤线 同轴电缆线 电力载波线 无线连接方式 WIFI 4G.5G网络 大家好,今天在这里把整理的"家庭网络 ...

  3. 使用nomad在weave网络中部署工作负载

    当初Kubernetes网络的设计目标是使得开发者使用pod时在网络这一层面可以像使用传统物理主机或虚拟机一样.具体的基本要求如下: 所有pod间均应可以在无需NAT的情况下直接通信: 所有集群节点与 ...

  4. ip地址能够什么标识网络中的一台计算机,计算机网络第一学期期末考试模拟练习题(这套卷子上面也会有原题).pdf...

    (4-26)课后习题. P1 书中第几页 I. 选择题 1.TCP/IP 模型的传输层有两个协议,第一个协议 TCP是一种可靠的面向连接的协议,第二个协议 UDP是(D) . A 一种可靠的面向连接的 ...

  5. 网络中的两台计算机相互识别是通过,网络中的两台计算机相互识别是通过( )

    正确的是,网络关于黄斑. 两台染性哪些以下疾病是感. 为环型.计算机相星型)型可分等和(,扑结按拓行分类构进域网计算机局.力等力之群桩单桩和承载承载于各.在扩展基底净础的冲切反力要使用基计算时需.本属 ...

  6. 网络中显示两台计算机,我的电脑网络连接中出现两个“本地连接”,怎么办?...

    那您用优化大师或超级兔子优化你的计算机 ,再挑选以下办法进行再优化. 1.禁用闲置的IDE通道 右键点击"我的电脑-属性",然后点击"硬件"接着点击" ...

  7. 网络中的计算机之间的关系,有关服务器与主机之间的关系

    局域网,是指"存在于某一个较小地理区域内的计算机网络".通常把两台以上的电脑通过各种介质(比如双绞线.同轴电缆.电话线等等,空气也算是一种介质,这就是无线网络)连接起来,这就构成了 ...

  8. linux nuc 吗 支持_在你的树莓派家庭实验室中使用 Cloudinit | Linux 中国

    本文字数:2513,阅读时长大约:4分钟导读:了解了云行业的标准,该向你的家庭实验室自动添加新设备和用户了.https://linux.cn/article-12371-1.html作者:Chris ...

  9. 网络中的计算机如果加入家庭组,win7如何加入家庭组

    家庭组的好处在于可以在同一个家庭组内共享文件,不需要网络也可以共享文档!需要网线连接电脑即可.那么win7如何加入家庭组呢?下面跟着学习啦小编一起来学习一下win7加入家庭组的方法吧. win7加入家 ...

最新文章

  1. 构建之法 第6~7章读后感和对Scrum的理解
  2. 电子工程师过去1年的点点滴滴
  3. guido python正式发布年份_Python语言适合哪些领域的计算问题? (1.3分)_学小易找答案...
  4. java9 堆外内存_java堆外内存泄漏排查
  5. boost::pool
  6. 《人件》--- 读书笔记
  7. 怎么把c盘的软件移到d盘?
  8. 转贴:Spring vs. EJB
  9. 《图解网络硬件》网络硬件通用基础知识
  10. 解决插件在IE增强保护模式下无法运行的问题
  11. Excel文件损坏打不开的常见原因及解决方法
  12. 什么是混合云、公有云、私有云?
  13. 光流传感器 定位精度_光流定位原理是什么??【转】
  14. 「纯前端容器」打造无缝平滑的用户体验
  15. c++实现种子填充算法与扫描线算法
  16. 电子商务平台到底是什么?这就告诉你!
  17. 风雨成长路——2015上半年年总
  18. 集成公告|Moonbeam宣布与ShowMe集成
  19. 宇宙主义(星球创世策略游戏) mac中文版
  20. 中心差分法matlab实现,动力学系统时域响应计算的六种方法Matlab源程序(Newmark,Houbolt法,中心差分法)...

热门文章

  1. 华为南京研究所机考练习-亮着电灯的盏数
  2. 2019年了,iOS提交审核又被拒了
  3. 并发王者课-铂金2:豁然开朗-“晦涩难懂”的ReadWriteLock竟如此妙不可言
  4. #bat 删除空文件夹
  5. mysql delimiter的使用
  6. oracle怎么用charindex,SQL中Charindex和Oracle中对应的函数Instr对比
  7. 总结一下从高中毕业后到现在的自己(2020.4.25)
  8. excel基础操作导入文件
  9. jq加css制作图片切换,jQuery+css实现的切换图片功能代码
  10. jquery实现弹出窗口