Captive|Captive Portal - 连接WiFi自动弹出认证页面
文章图片
摘要
解释Captive Portal是什么、为什么连上WiFi后会自动弹出认证页面。同时,说明主流操作系统的支持情况。
Captive Portal
中文通常译作“强制主页”或“强制登录门户”。是一个登录Web页面,通常由网络运营商或网关在用户能够正常访问互联网之前拦截用户的请求并将一个强制登录或认证主页呈现(通常是通过浏览器)给用户。该页面可能要求用户输入认证信息、支付、接受某些条款或者其他用户授权等,随后用户才能被授权访问互联网。该技术广泛用于移动和个人宽带服务,包括有线电视、商业WiFi、家庭热点等,也可用于访问企业和住宅区有线网络。
实现策略
实现Captive Portal的方法有很多,常见的几种方式有:
- DNS拦截:拦截所有DNS请求且返回认证主机IP地址(设置了强制主页),这样用户访问任何网站都会看到同一个强制主页。
- HTTP重定向:利用HTTP重定向功能将所有的HTTP请求重定向到认证主机,如此一来,用户的发出的任何HTTP请求都会得到重定向后的强制主页。当用户通过认证后,便不再重定向用户请求。
- IP跳转:把所有IP包里的目标地址改为认证主机地址,在认证主机上进行404跳转,当然是跳转到强制主页了。
- 内核层劫持:当网关收到一个访问外网地址(80端口)的TCP SYN请求包后,立即伪造一个来自外网地址的TCP ACK包。客户端收到此伪造的响应后会误认为外网主机可以连接便再次发送ACK,此时TCP握手成功。客户端发起请求,网关再次劫持后回应ACK+PUSH包,其中就包含强制主页。
- iOS从3.0开始支持,主动弹出窗口显示认证页面(非浏览器窗口)。
- Android从4.0以上开始支持,主动弹出窗口显示认证页面(非浏览器窗口)。
- macOS(OS X EI Capitan)支持,主动弹出窗口显示认证页面(非浏览器窗口)。
- Windows 7也支持。但并不是主动弹出认证页面,而是在网络图标上显示消息,提示打开浏览器。然后你需要随便访问一个页面(例如:
http://www.163.com
)即可在浏览器上显示认证页面。
GET http://www.example.com/
网关可以返回如下内容给客户端:
浏览器或操作系统会重新加载url页面内容(就是认证页面)。
相关开源项目
- Wifidog
- pfSense
- ChilliSpot
- CoovaChilli
推荐阅读
- py连接mysql
- Android|Android BLE蓝牙连接异常处理
- springboot整合数据库连接池-->druid
- Python3|Python3 MySQL 数据库连接
- Xshell5|Xshell5 远程连接本地虚拟机Ubuntu16
- mac|mac 链接linux服务器 如何在Mac上连接服务器
- TCP长连接与段链接
- 运维|如何限制IP 通过 SSH连接服务器
- 网络|网络编程释疑(TCP连接拔掉网线后会发生什么)
- 服务器未能释放tcp连接,TCP连接的建立和释放