@(标签) [平穷发挥我的想象] [Openwrt] [Markdown] [Linux]

闲来无事 折腾点事,自从腾讯云和阿里云取消了免费的大学生服务器套餐。 ╮(╯▽╰)╭活在梦里,我已经不是大学生了呢。阿里上一个月几十上百的服务器租费,看着能让我冒一阵鸡皮疙瘩。想来自己真心没有闲钱来租一个服务器玩。要是弄个老机器开着当服务器。耗电不说,整天嗡嗡嗡的脑袋疼。思来想去,唯一满足以下几点的能让我架设服务器的只有家里的路由器了。

  • 全天工作 :家里的路由器全天工作,星期一二四六会有个重启,喘口气;

  • 功耗低 :12w不到的功耗,用一小时也就0.012度电,整个路由器算上家里的宽带消耗也就5~6块钱不到;

  • 噪音小 :路由器也没机箱风扇,噪声基本为0;

  • 性能尚可:有1核580MHZ,128RAM,跑一组静态服务,一组动态服务足以;


硬件准备

  • 吃灰的U盘 : 路由器的FLASH是在太小,仅仅12MB,一定是不够用的,所以需要在路由器上挂载一个U盘。
  • 小米路由器MINI : 本主,MINI内核基于Openwrt,这能做的事情就太多了啊。
  • 同局域网电脑 : 用于对MINI进行配置,启动关闭服务等。

刷开发版固件

软件准备

  • 下载开发版的ROM : 雷猴王想的很周全,刷了开发版ROM,并开启SSH后,据说没有保修,观众请三思。
    ROM下载地址为:MiWiFi 官网。由于我用的是MINI,于是就下载官网开发版ROM,操作流程如下:

    • 步骤(1)
    • 步骤(2)
    • 步骤(3)如果你是其他型号,自行查阅相关型号官方说明,路由器刷机步骤则参照截图中官方刷机教程。
  • 下载小米路由SSH工具 :有了SSH工具,用PuTTY和WinScp就可以搞事情了。将下载好的SSH工具重命名为miwifi_ssh.bin,放置于之前刷机用的U盘根目录即可。下载位置如图所示:


组装轻量级WEB服务

使用PuTTY开始搭建

接下来使用之前提到的PuTTY,点击文章中的高亮部分,即可到官网下载。下载好后,双击运行,IP地址填路由器网关地址,默认为192.168.31.1 端口号为SSH默认端口 22。然后点击Open按钮。输入用户名为root,密码为下载SSH工具时显示给你的root密码。当看到大大的ARE YOU OK,说明已经进入到小米路由的Shell中了,这是成功的一大步。

编译好的Python

这里直接提供编译好的Python下载,这个链接为MINI型号下编译好的Python2.7.5。通过之前提到的WinScp,直接解压好了,像windows平时复制黏贴文件一样,拖拽WinScp界面右侧U盘盘符下的/extdisks/sda1/python文件夹下即可。

配置Python环境变量

python的环境变量在Openwrt中的配置也很简单,打开/etc/profile 进行添加环境变量,参考如下:

vi /etc/profile

然后在文本最后,添加如下注册内容:

export PATH="/extdisks/sda1/python/bin:$PATH"

然后按ESC,再按两遍 Shift + z,保存好退出。然后直接更新环境变量。

source /etc/profile

由此Python环境变量即配置完成。尝试shell中输入python2.7,看到python呼出,即大功告成。

安装Bottle和Markdown2

在SSH下,直接运行如下:

pip install bottle markdown2

pip工具就能下载好bottle轻量web服务框架以及python的markdown2标记语言库。

开启静态服务器

首先在U盘根目录下创建WEB文件夹。然后修改系统 httpd。

vi /etc/sysapihttpd/sysapihttpd.conf

然后按 Ctrl + F,到文本末尾最后一个“}”前添加如下符合nginx语法的配置:

    server {listen 8090;server_name _;access_log off;location / {root /extdisks/sda1/WEB;index  index.html index.htm;}error_page  404              404.html;error_page   500 502 503 504  50x.html;location = 50x.html {root   html;}}

代码演示中用的是8090端口,如果想定义其他也可。运行如下命令更新httpd服务:

/etc/init.d/sysapihttpd restart

如果没有出现error信息,代表重启成功,若出现,请检查配置代码。 由此静态资源服务器已创建成功。

防火墙设置

开启防火墙部分的设置:

vi /etc/config/firewall

在最后添加如下端口的配置内容:

config rule 'httpdwan'option src 'wan'     option dest_port '8090'option proto 'tcp'option target 'ACCEPT'option name ''\''httpd wan accept tcp port 8090'\'''

端口请自行更改。然后重启防火墙进程:

/etc/init.d/firewall restart

WEB APP DEMO

最终在U盘下,建立自己的web动态服务相关的文件夹,创建python脚本test.py,例:

from bottle import route, run, template@route('/hello/<name>')
def index(name):return template('<b>Hello {{name}}</b>!', name=name)run(host='0.0.0.0', port=9527)

重新回到,上一张,配置开启9527端口的防火墙设置并重启。运行命令:python2.7 test.py 。
然后在浏览器中输入http://192.168.31.1:9527/hello/world 若出现Hello world内容,即Bottle服务器框架已能正常运行。
由此即可开始通过Python-bottle写自己的动态网页、建设自己的博客啦~。

DDNS服务设置

打开192.168.31.1(小米路由器的后台管理)。点选->高级设置->DDNS , 选择DDNS提供商,输入壳域名提供商那儿注册的账号名密码,以及壳域名地址并保存。大功告成。由此就可以通过你的壳域名访问小米路由器中的静态服务器地址和动态服务器地址啦~。
PS:这里不推荐花生壳,因为它总需要一个oray进程存活于局域网中的某台主机上,若关闭,DDNS即失效。 这里我用的是no-ip.com。注册后获取免费的壳域名。 我在自己购买的阿里顶级域名中进行修改解析记录,将www选项设置为CNAME,并设置为no-ip.com注册的域名地址。

若是要实现 HTTPS,还需准备一个阿里云或者者其他正规DNS解析域名。并添加HTTPS证书等操作。看以后有空再写一篇吧。


由上一大堆,折腾了一天,终于告一段落,自己的博客也算架设起来了,Openwrt可以玩的还有好多,这个春节有的折腾咯。


小米路由器MINI架设WEB服务相关推荐

  1. 小米路由器mini改打印服务器_如何把家里的闲置路由器用起来

    这段时间收拾屋子翻出来好一些闲置路由器,从远古年代的单天线 TP-Link 到前些年的双天线小米路由器,再到近年的华硕.NETGEAR.小米.feixun 等路由器,高性能的这些还能闲鱼出掉回回血,更 ...

  2. 中大东校小米路由器mini实现inode上网,ipv6 wifi【中大】【东校】【inode】【ipv6】...

    还有不到4个月就要毕业了,前几天半夜没事捣鼓小米路由没想到竟然实现了wifi的ipv6. 正好又安利了同学一台小米路由mini,从刷机到inode到ipv6全搞了一遍. 这里将教程写出来,服务学弟妹. ...

  3. 小米路由器mini刷老毛子固件遇到的问题

    我是参考这个教程来的 小米路由器mini刷Breed安装固件教程,开个帖子记录下其中遇到的问题. 问题1 备份防止以后想要刷回官方 在刷breed之前备份SN 查看rom root@XiaoQiang ...

  4. 在小米路由器mini上安装Transmission挂BT/PT

    小米路由器mini虽宣称是一款智能路由器,可是其支持的插件实在太少 所幸小米路由mini使用的是OpenWrt系统,经过研究发现,基于OpenWRT的小米路由器系统是支持OpenWRT源中的ipk插件 ...

  5. 小米路由器mini刷lede_小米路由器刷Xiaomi Mi WiFi Mini openwrt

    Current Stable Release - OpenWrt 18.06.1,released on August, 18th 2018. there is alsoPandoraBoxfirmw ...

  6. 小米路由器mini 半自动刷机进入breed(无需U盘刷机)

    过程参考 小米路由器mini刷Breed,安装固件教程_SUNYZ0525的博客-CSDN博客_小米mini刷机 以及 小米路由器mini刷padavan - 哔哩哔哩 整合了一下刷机过程,可以略去很 ...

  7. [经验技巧] 小米路由器mini锐捷认证 (更新:解决无法自启问题)

    前言 本人校园网是锐捷,双十一入手mini,结果一直不能锐捷认证. 主要问题是: 1.官方的minROM并不完全开放,usr/sbin目录无法获取写入权限(699那款路由可以) 2.没有适合mini的 ...

  8. 交叉编译 小米路由器mini 的 python

    看了很多文章,要么说的是用opkg安装python,要么说的是小米路由器的交叉编译,就是没有mini的.学习了这篇文章(http://me.deepgully.com/post/56389167868 ...

  9. 小米路由器mini刷机过程/U盘刷系统

    一.小米路由器mini救砖.重刷系统 U盘刷机教程 小米路由器mini跟小米手机一样也是基于安卓系统的,因此也就存在刷机变砖的可能,或者你只是想重刷系统什么的.不同于手机刷机,路由器要怎么刷机呢?借助 ...

  10. 小米路由器mini开启ssh的办法

    1.首先我的小米路由器mini已经绑定了我的小米账号,然后登陆网站下载ssh插件(要不然会提示如下) 2.正常绑定账号的可以到下面进行下载(每个用户都需要用自己的账户去下载,不能使用别人给的) 3.下 ...

最新文章

  1. OpenStack镜像制作笔记 --以windows8.1-amd64为例
  2. hls之m3u8、ts流格式详解
  3. c/c++中const用法总结
  4. 达梦数据charindex_更新日志 · dotnetcore/FreeSql Wiki · GitHub
  5. 解决 Electron 5.0 版本出现 require is not defined 的问题
  6. OpenCV基本图形绘制之圆
  7. 软件项目管理流程总结
  8. JAVA API中文在线帮助文档
  9. 人脸识别关键技术及原理
  10. 一、 Vue.js简介
  11. 管程(Moniter) 并发编程的基本心法
  12. GROMACS Tutorial 6-Free Energy Calculations
  13. springboot切面不生效踩坑纪录
  14. mysql里guest用户_MySQL降权:MySQL以Guests帐户启动设置方法
  15. USNews大学排名遭美国计算机研究学会怒怼,指排名荒谬要求撤回
  16. 字符串sprintf一个bug
  17. [luoguP2862] [USACO06JAN]把牛Corral the Cows(二分 + 乱搞)
  18. 量化投资数据分析之常用的python包(附代码)
  19. 结果填空:马的管辖(超详解版)
  20. Ubuntu18 安装Kinect驱动(openni、NITE、Sensor)及遇到的问题

热门文章

  1. windows服务定时重启软件的实现
  2. [转]浅谈封装中的非技术细节 - 含减肥攻略
  3. 免签约即时到账支付接口 个人二维码收款系统源码【多种模式】
  4. Unity3D开发Android游戏(二)Hello world
  5. JavaScript---去除字符串中的空格(五种方式,总有一种适合你)
  6. android mp4视频下载测试地址亲测有效
  7. H5游戏《守塔兵团》你必须要知道的4件事
  8. 小爬需登录的网站之麦子学院
  9. 《JavaScript 高级程序设计(第四版)》
  10. 一文教你如何摆脱应用商店下载微软应用