AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 119525
Accepted
m6a-uds
m6a-uds
Asked: 2010-03-06 05:59:37 +0800 CST2010-03-06 05:59:37 +0800 CST 2010-03-06 05:59:37 +0800 CST

将所有 WiFi 请求重定向到我的服务器(如强制门户)

  • 772

我实际上正在尝试开发公共无线网络(不是商业,只是为了教育目的,我正在学习计算机科学......)。但是我缺乏实现这个目标所需的知识(我通常更喜欢编程而不是网络管理[喜欢 Stack Overflow ;-)])。

我想要做的就像许多城市/学校的公共网络一样,每个地址都被重定向到登录页面,然后才能访问互联网。

我目前的设置是这样的:我的互联网连接到有线路由器。此路由器连接到交换机。我的个人电脑连接到这个交换机。我有一个连接到路由器的 IIS 服务器。

我有一个无线接入点,但我不知道如何设置它以将传入的 IP 重定向到我的 IIS。基本上我想阻止所有互联网并将非本地请求重定向到我的本地 IIS(仅限 WiFi 用户,局域网应该有互联网)。

我想也许在我的服务器上安装一个 DNS 并将其设置为路由器中的主 DNS。或者可能将 WiFi 连接到服务器(使用第二个网络适配器)并通过防火墙/代理重定向,但我不知道这些在理论上是否可行,然后再开始学习如何设置这些选项之一......

非常感谢任何帮助!

http wifi iis captive-portal redirection
  • 2 2 个回答
  • 13570 Views

2 个回答

  • Voted
  1. Daniel
    2014-11-28T06:00:35+08:002014-11-28T06:00:35+08:00

    您的 wifi 需要连接到网关,您可以将流量重定向到您的强制门户(登录页面)。

    您可以通过在 linux 上使用 iptables 来做到这一点。假设您的接口 eth0 已通过192.168.0.0/24子网连接到您的接入点,并且您的网关(Linux 服务器)配置为192.168.0.1在单独的接口上进行 Internet 访问。您的 IIS 服务器已打开192.168.0.2:80。

    您的 iptables 规则可能类似于:

    iptables -t mangle -N my_access_filter
    iptables -t mangle -A INPUT -i eth0 -j my_access_filter
    
    iptables -t mangle -A my_access_filter -m mac --mac-source 11:22:33:44:55:66 -j RETURN # Grant access to mac 11:22:33:44:55:66, by returning and not marking the traffic
    iptables -t mangle -A my_access_filter -j MARK --set-mark 99 # Arbitrarily selected number
    
    # that's it for the mangle table, now the nat table
    iptables -t nat -A PREROUTING -p tcp --dport 80 -m mark --mark 99 -j DNAT --to 192.168.0.2:80 # ip o
    iptables -t nat -A PREROUTING -p udp --dport 53 -m mark --mark 99 -j DNAT --to 192.168.0.1 # For good measure, lets redirect their dns queries to our own dns server.
    
    # now the filter table reads:
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # standard rule to accept established connections
    iptables -A FORWARD -i eth0 -m mark --mark 99 -j DROP # This will drop traffic that is marked, preventing clients from accessing the internet
    

    您的强制门户只需将客户端 ip 或 mac,或您过滤的任何内容放入 mangle 表中的 my_access_filter 中,这可以通过

    iptables -t mangle -I my_access_filter -m mac --mac-source <mac> -j RETURN
    

    或者

    iptables -t mangle -I my_access_filter -s 192.168.0.xx -j RETURN # by ip
    

    希望这能给一些启发。

    • 2
  2. Best Answer
    Wesley
    2010-03-06T06:10:41+08:002010-03-06T06:10:41+08:00

    您要做的是实施一个强制门户(如您所知)。最受欢迎的强制门户之一是WiFi Dog。它是开源的,应该可以满足您的需求。

    您可以使用ZoneCD从 Live CD 运行强制门户,但有些人说它很慢。另外,我不确定设置是否可以重新启动(可能不会,因为我认为没有任何内容写入非易失性存储)

    • 1

相关问题

  • 设置 http 代理以使用 Web 界面?

  • 无法连接到 Ubuntu Desktop 中的端口 80 或 VMWare Workstation 6.52 中的 Server 9.04

  • IIS 7.5 (Windows 7) - HTTP 错误 401.3 - 未经授权

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • Tomcat 6 HTTP 日志滚动和清除

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve