最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备。

已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的;但是有一些限制条件,比如我想在宿舍控制我种花的光照然后就不行了;

所以这是一个外网访问内网的梗,解决方案如下:

1.先在本地term命令下查看ifconfig(windows为ifconfig);找到自己的本机ip,我的树莓派被分配ip为192.168.1.103

2.tplink路由器的管理地址是192.168.1.1

在浏览器中输入192.168.1.1,输入用户名和密码进入路由器管理页面。点击转发规则---虚拟服务器,创建端口映射:

添加新条目,本机的ip是192.168.1.103,需要连接的端口是80.(要与树莓派flask服务器设置的端口一致)

点击保存即可。

3.然后查看路由器的IP为:10.11.47.71

4.在树莓派上开启flask服务器,sudo python weblamp.py

5.然后在宿舍你就可以访问10.11.47.71:80这个IP,通过转发映射到路由器下树莓派192.168.1.103这个内网ip了;

做的是一个简易物联网的网页,按钮控制灯之类,然后网页可以读到DHT11,简单有意思的一个小东西。

注意注意!!

我说的只是在校园内这个局域网,因为实验室的路由器是二级路由,只能在学校内部用这个方法,对于宿舍控制实验室还是可以做得到的;

没有权限访问学校一级路由,所以想用4G访问还是不行的,如果你有自己的独立IP当我没说,那就想怎么玩就怎么玩了;

哪天也弄一个独立IP,哈哈。

简单物联网:外网访问内网路由器下树莓派Flask服务器的更多相关文章

  1. 设置openwrt路由器的防火墙_允许从外网访问内网的ipv6服务

    设置openwrt路由器的防火墙_允许从外网访问内网的ipv6服务 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-11-02. 参考文章: IPv6"内网"设备 ...

  2. 外网访问内网的FTP服务器

    转自 外网访问内网的FTP服务器 首先感谢作者给出的总结,原文是介绍Serv-U的,我针对FileZilla Server进行了稍微修改,仅看操作可直接跳到分割线后第3部分. 1. 背景简介最近研究如 ...

  3. SVN外网访问内网的操作步骤

    外网访问内网SVN 需要将路由映射到VisualSVN server 的443端口 将外网的端口从路由器上进行映射到内网端口,例如将外网的6000端口映射为内网的443端口,443为svn服务器默认端 ...

  4. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  5. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  6. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  7. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  8. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  9. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

随机推荐

  1. PAT 1046

    1046. Shortest Distance (20) The task is really simple: given N exits on a highway which forms a sim ...

  2. Jquery Validation 验证控件的使用说明

    转载自:http://blog.csdn.net/huang100qi/article/details/52453970,做了一些简化及修改 下载地址:https://jqueryvalidation ...

  3. 深入tornado中的IOStream

    IOStream对tornado的高效起了很大的作用,他封装了socket的非阻塞IO的读写操作.大体上可以这么说,当连接建立后,服务端与客户端的请求响应都是基于IOStream的,也就是说:IOSt ...

  4. php7 redis扩展编译安装

    提示:php7版本不支持redis2点几的扩展 上正文: wget -c https://github.com/phpredis/phpredis/archive/php7.zip unzip php ...

  5. js 数组方法总结

    Array数组: length属性 可通过array.length增加或者减少数组的长度,如;array.length=4(数组长3,第四位为undefined),也可单纯获得长度.array[arr ...

  6. java 集合框架(List操作)

    /*list 基本操作 * * List a=new List(); * 增 * a.add(index,element);按指定位置添加,其余元素依次后移 * addAll(index,Collec ...

  7. Hadoop安全机制之令牌

    介绍 Hadoop中的安全机制包括认证和授权.而Hadoop RPC中采用SASL(Simple Authentication and Security Layer,简单认证和安全层)进行安全认证,具 ...

  8. .Net Core Session使用

    Sessiong 添加程序集 Microsoft.AspNetCore.Session 在Startup.cs 的 ConfigureServices中添加Session中间件设置 // sessio ...

  9. spark2.0系列《一》—— RDD VS. DataFrame VS. DataSet

    虽说,spark我也不陌生,之前一直用python跑的spark,基本的core和SQL操作用的也是比较熟练.但是这一切的基础都是在RDD上进行操作,即使是进行SQL操作也是将利用SpaekConte ...

  10. django restframework serializer 增加自定义字段

    在使用django restframework serializer 序列化在django中定义的model时,有时候我们需要额外在serializer中增加一些model中没有的字段.有两种方法实现 ...