问题提出:
有时我们无线网络需要通过网页认证才能访问互联网。但是有的嵌入式设备并没有安装UI,只能通过ssh的方式进行访问,如果这些设备具有无线网卡,能够通过wpa_supplicant工具连入无线网络,如何才能进行认证上网呢?

解决方案:
其中有一个简单的方式便是通过ssh反向代理。
首先要对嵌入式设备上的ssh-server进行配置,打开GatewayPorts:
openssh-server需要配置/etc/ssh/sshd_config,最后添加GatewayPorts yes:
openwrt需要配置/etc/config/dropbear,后面添加option GatewayPorts 1。
假设嵌入式设备有线网卡IP为192.168.1.1,无线认证IP为10.13.0.20(也可以为域名),认证端口8080,在嵌入式终端执行如下命令:
ssh -NfR 0.0.0.0:9022:10.13.0.20:8080 root@192.168.1.1
然后输入嵌入式设备ssh密码,即可通过访问http://192.168.1.1:9022 来访问认证界面完成上网认证(如果认证网址需要参数,可以在嵌入式终端中执行wget http://baidu.com,得到跳转参数,附加到上面认证网址后面即可)
实现原理,参考 http://blog.csdn.net/houxn22/article/details/73278141

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐