Node.js 公共WiFi热点中使用的Node JS互联网网关/专属门户

Node.js 公共WiFi热点中使用的Node JS互联网网关/专属门户,node.js,routing,wifi,iptables,Node.js,Routing,Wifi,Iptables,我想构建一个节点js internet网关/捕获门户。因此,我可以让用户“授权”他的mac地址或ip地址,如果mac地址不可能像用于wifi热点一样 所以我想到的是,节点可以有一个dhcp服务器,并将其ip地址作为网关。因此,如果用户在web浏览器上加载一个页面,它会给他们一个身份验证屏幕,然后他们可以登录,网关可以正确路由其数据包 如何使用node.js执行授权步骤,以便在他们未登录时显示登录页面&如果他们要正确路由数据包 你需要几块来把它拼在一起 #1:http代理-如果可以运行DHCP服务

我想构建一个节点js internet网关/捕获门户。因此,我可以让用户“授权”他的mac地址或ip地址,如果mac地址不可能像用于wifi热点一样

所以我想到的是,节点可以有一个dhcp服务器,并将其ip地址作为网关。因此,如果用户在web浏览器上加载一个页面,它会给他们一个身份验证屏幕,然后他们可以登录,网关可以正确路由其数据包


如何使用node.js执行授权步骤,以便在他们未登录时显示登录页面&如果他们要正确路由数据包

你需要几块来把它拼在一起

#1:http代理-如果可以运行DHCP服务器并分配IP地址,则可以运行和http代理以捕获所有internet流量

#2:然后您需要将身份验证逻辑添加到此代理,该代理可以检查cookie、魔术包、令牌或验证访问并允许他们通过或重定向到登录页面的东西

是一个非常流行和灵活的节点http代理服务器,您可以轻松地访问它

是另一个这样的项目,具有如何处理内置身份验证的详细说明


拥有代理还允许您将站点/IP列入白名单/黑名单,这是您可能希望根据目标受众所做的事情。

我会使用Node.js应用程序来管理客户端和web界面,但要使用系统的路由功能。很酷的项目。我希望有一个很好的解决办法。谢谢!。我曾考虑使用iptables来路由和更改使用节点的规则,但我不确定当用户没有会话时如何将流量重定向到捕获门户。方法是使用捕获门户的IP响应DNS查询。但这是有问题的,因为客户端通常已经缓存了一些DNS条目。此外,带有恶意软件的客户端通常会将一些DNS查询重定向到本地主机或外部DNS服务器。最后,客户端可以手动配置自己的DNS服务器。您需要做的是透明地将端口80上的所有TCP流量重定向到服务器。我不知道该怎么做。我想弄明白你的问题:那么你基本上想将node.js作为网络操作系统的一部分(安装在路由器上),有效地充当网络上的默认网关?可以编写一个应用程序,在端口80上接收连接,然后在从客户端发送和返回请求和响应后延迟转发连接(隧道传输)。。。但是将node.js配置为默认网关是另一回事。所以请澄清,也许我能帮上忙。我不确定这是否能达到同样的最终目标——但在节点中创建HTTP/SOCKS代理并在其上添加一些身份验证要快得多。如果你想让我详细说明,请告诉我,我可以留下一个适当的答案。。