hiwif插件开发学习
来源:互联网 发布:拟南芥基因数据库 编辑:程序博客网 时间:2024/05/01 14:46
1.申请账号、绑定设备、安装插件
必须吐槽这个过程的麻烦。首先你需要注册hiwifi的账号,这个很轻松,然后去申请开发者认知,需要提供的资料跟支付宝实名认证差不多,经过几天后hiwifi才会验证成功,我自己大概花了7天。然后邮件或者qq小窗口管理员绑定你所拥有的极路由,然后在插件里安装一个“HiWiFi Appengine”的插件,该插件可以让你能通过ssh方式登陆路由器。
2.创建一个插件
使用用户名“hiwifi”和密码“admin”登陆路由器。windows下可以使用putty,服务器地址可以使用域名“hiwifi.com”或者路由器的ip地址。
hiwifi这个账号是一个普通账号,没有root权限。haecli create-app|drop-app <appName>
这命令是创建和删除一个应用。我们创建一个叫“TApp”的插件,命令如下:haecli create-app TApp
创建好后,再打开一个ssh登陆路由器,不过这次使用的用户名是“TApp”了,密码依然是“admin”。我们可以使用该账号在上面开发调试插件。如果不满意,那么回到hiwifi账号登陆。执行删除插件命令,那么刚才产生的文件和配置都会被删除掉。
首先查看一下根目录下文件信息。lib
、bin
、config
、etc
2.1 etc目录
etc目录下有5个目录:dnsmasq.d
,firewall.d
,hosts.d
,kproxy.d
,nginx.d
2.1.1 hosts.d子目录
这个最容易用了,在这里面随便建个文本,任意名字皆可,然后按hosts格式写入ip对应域名即可。例如:echo 10.1.1.1 www.sex.com > ./etc/hosts.d/a
这样就在./etc/hosts.d/下生成一个b的文件,此时该hosts文件还没生效。需要执行:haecli config-reload hosts
然后在浏览器输入www.sex.com 会发现打开的是极路由的后台(注意:我的路由器网关是10.1.1.1)
2.1.2 nginx.d子目录
这里面存放nginx的配置文件,文件以.conf
结尾。这里演示创建一个简单的web站点。echo 'hello lixin' > /tmp/index.html
vim ./etc/nginx.d/lixin.conf
文件内容大致如下:
server{ listen 811; index index.html; root /tmp;}
haecli config-reload nginx
打开浏览器输入10.1.1.1:881 可以看到hello lixin的页面。
2.1.3 kproxy.d子目录
这里存放听说是hiwifi自己搞的kproxy的配置文件。通过配置,可以将符合条件的http流量重定向,配置文件的格式是json格式。
在里面新建一个文本A.rule
,内容如下:
{ "ip":"10.1.1.1", "port":"811", "rules":[ {"HOST":["lixin.me"]} ] }
意思就是把请求lixin.me这个域名的网页请求,重定向到10.1.1.1:811这里来。
文件写好后,需要把该路由配置添加一下:kproxy-file add A.rule
haecli config-reload kproxy
然后我们在浏览器输入http://lixin.me 会发现打开的页面是刚才我们配置的一个hello lixin 页面。这样就证明流量已经被kproxy重定向了。
上面说到的nginx、hosts配置,都可以在网上找到配置说明和教程,因为他们都是通用的软件。而这个kproxy则是hiwifi自己的软件,官方文档:https://code.hiwifi.com/wiki/hiwifi/appengine/kproxy-config 对该功能的配置说明轻描淡述,很难看明白。所以想了解清楚,干脆看源代码,好在hiwifi的几个命令都是脚本形式的,例如上面的kproxy-file命令。通过which kproxy-file
知道该脚本的路径,然后打开来看看,会发现其实里面还有一些配置项在文档里是没有说明的。遇到看文档还是不懂的情况下,建议如果有源码还是自己去瞧瞧吧。
未完待续
- hiwif插件开发学习
- Eclipse插件开发学习
- jQuery插件开发学习
- Piwik学习 -- 插件开发
- OD插件开发学习
- Piwik学习 -- 插件开发
- AppCan插件开发学习
- outlook插件开发学习
- 学习jQuery插件开发
- 学习插件化开发
- Eclips插件开发学习资源
- nautilus 插件开发学习日志
- unityios开发--ITween插件学习
- jQuery插件开发学习(1)
- C# 插件开发学习实例
- openfire 插件开发学习笔记
- openfire 插件开发学习笔记
- jquery插件开发预学习
- 强制删除文件夹
- C++利用graphics.h的钟表程序
- 关于Java String, StringBuilder, StringBuffer, Hashtable, HashMap的面试题
- 使用ant打包Android应用
- poj 3928 树状数组
- hiwif插件开发学习
- NVIDIA Jetson TK1学习与开发(三):图文详解Jetson TK1平台搭建
- MFC 基于对话框 程序,如何添加状态栏
- linux ubuntu 12.04 下cpmd安装步骤
- WTL入门( 一) ATL简介
- 我的vim 最简单配置
- 使用eclipse更新Android SDK Connection to https://dl-ssl.google.com refused问题
- configure
- freemarker.template.TemplateException:Error executing macro:mainSelect