佐须之男 发布的文章

如何查看wifidog运行状态

在wifidog运行时,路由器或网关的终端会打印出log,但如果没有这些终端我们如何查看wifidog当前的运行状态?

wifidog给我们提供了一个接口,/wifidog/status 的回调函数http_callback_status,当我们访问http://gw_ip:wifidog_port/wifidog/status 时,我们会看到一个页面,这个这面提供了wifidog当前的基本状态,包括wifidog版本,wifidog运行时间,网络是否通达,客户端个数、IP、mac、token、上下行速度,wifidog的mac白名单,认证服务器等,通过这些状态我们可以简单知道wifidog运行时是否正常,对于简单的运行错误可以直接看出问题所在。

本文章由 http://www.wifidog.pro/2015/03/03/wifidog%E7%8A%B6%E6%80%81.html 整理编辑,转载请注明出处

wifidog是什么?源码在哪里下载?

wifidog 是一种开源的用来做无线认证的协议,集成到路由器或者网关中,对于连接到路由器或者网关的设备,使其先登录云端认证服务器,然后通过认证才能上网。比如在星巴克上网,浏览器会先弹出一个广告页面,我们输入手机号,获取验证码,然后就可以上网了。

wifidog 官方网站给出了下载路径:
openwrt wifidog 及auth server:http://dev.wifidog.org/wiki/Download

wifidog 及auth server 源码下载及安装:http://dev.wifidog.org/wiki/doc

wifidog 编译编译教程 http://www.wifidog.pro/2015/03/20/Ubuntu%E4%B8%8B%E7%BC%96%E8%AF%91WifiDog%E7%A8%8B%E5%BA%8F.html

本文章由 http://www.wifidog.pro/2015/03/03/wifidog%E4%B8%8B%E8%BD%BD.html 整理编辑,转载请注明出处

wifidog auth server is not set

安装了wifidog 的linux系统,在启动wifidog之后,可能会爆错误:"wifidog auth server is not set", 在wifidog的源码conf.c中找到:

static void
config_notnull(const void *parm, const char *parmname)
{
        if (parm == NULL) {
                debug(LOG_ERR, "%s is not set", parmname);
                missing_parms = 1;
        }
}

这个函数在调用:

void
config_validate(void)
{
        config_notnull(config.gw_interface, "GatewayInterface");
        config_notnull(config.auth_servers, "AuthServer");

        if (missing_parms) {
                debug(LOG_ERR, "Configuration is not complete, exiting...");
                exit(-1);
        }
}

而config_validate是在gataway.c的main里被调用:

config_init();

parse_commandline(argc, argv);

/* Initialize the config */
config_read(config->configfile);
config_validate();

整个config 设置的流程就是,先把默认值设置给全局变量config,然后将wifidog 的命令行参数传给config,然后是读wifidog的配置文件设置config,最后检查config参数是否有效,只要检查gateway interface和AuthServer。

在config_init中gw_interface和auth_servers初始化为NULL,也就是没有值;在命令行里也没有支持gw_interface和auth_servers的命令参数,所以我们可以通过修改wifidog.conf 的配置来最简单的解决上述问题。

GatewayInterface eth0

AuthServer {
    Hostname 192.168.33.131
    SSLAvailable no
    Path /
}

另外我们也可以通过给wifidog 添加命令行参数来实现,这里就不详述了。

本文章由 http://www.wifidog.pro/2015/03/03/wifidog-auth-server-is-not-set.html 整理编辑,转载请注明出处