如何在Windows 7 +重定向到本地网页中创建wifi热点?


7

在深入探讨该问题之前,请先提供一些快速的背景信息:
我建立了一个小型实验,该实验可与运行Windows 7的计算机配合使用。在这台计算机上,有一个小型网络服务器,该服务器为网页提供不断更新的状态信息。现在,此实验将在某些事件中显示(想象为MakerFaire,...),我很想知道人们是否可以使用他们的智能手机(或笔记本电脑)以尽可能少的配置直接显示此网页。

基本上我想要达到的是:

  1. 使用计算机的内置wifi适配器创建Wifi接入点,人们可以连接到该适配器(打开或受密码保护)

  2. 拦截和重定向DNS和/或HTTP请求,以便实验网页在打开浏览器(如强制门户)时显示

到目前为止,我已经能够使用Windows 7的托管网络功能实现第1点,该功能非常适合Wifi AP部件。但是,当修改DHCP答案以提供自定义DNS服务器时,我陷入了困境,而DNS服务器又会将所有流量转发到我的Web服务器:有什么方法可以做到吗?

我有一些限制(否则,这太容易了;-)):

  • 我一直使用Windows 7(我知道使用Linux可以早就解决问题了!)
  • 该计算机是一台独立的计算机,即无法访问其他网络或Internet。这也意味着没有路由器或任何其他外部设备!

任何帮助或建议,我们将不胜感激!


您可以为网络服务器计算机在网段内提供一个静态IP地址(例如192.168.0.200),然后在智能手机地址上为http://192.168.0.200/webpage。如果您担心DHCP冲突,请修改路由器,使其从其范围中排除200(即192.168.0.0-199)。某些路由器使用的地址为192.168.1.x。
harrymc

也许在我的原始帖子中还不够明确,但是并没有涉及路由器或其他设备:仅是带有内置Wifi适配器的Windows PC!
Federico 2014年

Answers:


2
  1. 获取MaraDNS

MaraDNS是用于Windows和Linux的免费,轻量级且相对易于配置的DNS服务器。从这里下载并将其解压缩到某个文件夹。

  1. 配置MaraDNS

打开“ secret.txt”并将其值更改为其他值(随机字符)。

MaraDNS配置位于同一目录中的“ mararc”文件中。DNS服务器具有两组功能。它们可以充当“权威名称服务器”或“递归/缓存名称服务器”。

权威名称服务器为域名指定IP地址。递归名称服务器存储来自权威名称服务器的信息,并以递归方式传递查询。

我们将在MaraDNS中配置权威性功能和递归功能。

2.1权威配置

我们将配置服务器以提供LAN域名的权威名称。选择任何域名,我选择“ local.com”(请注意,如果选择现有域名,您将无法访问实际的“ local.com”网站)。

将配置行添加到“ mararc”,如下所示:

csv2 = {}
csv2["local.com."] = "db.lan.txt"

其中local.com是您选择的域名,而db.lan.txt是我们接下来将要创建的第二个配置文件的名称(如果要命名第二个配置文件,请对其进行更改)。

在与MaraDNS相同的目录中创建一个名为“ db.lan.txt”的新文件。

对于要解析为名称的每台计算机,在“ db.lan.txt”中添加一行。例如,对于两台机器,一台“ dev.local.com”和另一台“ blog.local.com”,添加以下行:

dev.%       192.168.1.4 ~
blog.%        192.168.1.6 ~

做完了!

2.2递归配置

我们将设置MaraDNS询问所有其他域的默认名称服务器,以便您可以将所有其他域名解析为正确的IP地址。

找出您的ISP的DNS服务器地址。这些可能会在“路由器状态”页面上列出,或者通过检查网络适配器上的详细信息列出。

现在,将您的ISP的DNS服务器添加为“ mararc”中的上游服务器:

upstream_servers = {}
upstream_servers["."] = "xxx.xxx.xxx.xxx, yyy.yyy.yyy.yyy"

其中xxx.xxx.xxx.xxx和yyy.yyy.yyy.yyy是您的ISP的DNS服务器。

做完了!

  1. 运行MaraDNS并使用askmara.exe对其进行测试

双击“ runmara.bat”,并保持服务器运行。

打开命令提示符,导航到MaraDNS目录并尝试运行:

askmara.exe Agoogle.com.

askmara.exe Ablog.local.com.

您应该得到这样的答复:

# Querying the server with the IP 127.0.0.1
# Question: Agoogle.com.
google.com. +300 a 74.125.67.100
google.com. +300 a 74.125.53.100
google.com. +300 a 74.125.45.100
# NS replies:
# AR replies:

和:

# Querying the server with the IP 127.0.0.1
# Question: Ablog.local.com.
blog.local.com. +86400 a 192.168.1.6
# NS replies:
#local.com. +86400 ns synth-ip-7f000001.local.com.
# AR replies:
#synth-ip-7f000001.local.com. +86400 a 127.0.0.1

如果您在第一个查询中遇到问题,则弄乱了递归DNS设置(您的ISP DNS服务器地址正确吗?),如果在第二个查询中遇到错误,则弄乱了权威性设置。

  1. 更改MaraDNS以答复您局域网中的查询

关闭MaraDNS窗口,并将“ mararc”的前两行更改为:

ipv4_bind_addresses = "192.168.1.2
recursive_acl = "192.168.1.0/24"

其中192.168.1.2是将在其上运行服务器的计算机的IP地址,并且recursive_acl的“ 192.168.1”部分与网络上的相同(可能为192.168.0.0/24)。

再次启动MaraDNS,并使其运行。

  1. 设置路由器以分发新的DNS服务器

打开路由器的Web界面,然后找到DHCP服务器设置。应该有一个设置DNS服务器的选项。输入将在其上运行DNS服务器的计算机的IP地址。

对于您的每台计算机,断开网络连接(例如,通过在Windows中禁用和启用它,或者在Linux上使用“ ifconfig eth0 down” /“ ifconfig eth0 up”)。

就是这样,您现在应该能够通过其局域网名称来引用您的局域网计算机。

资源


嗨!感谢您建议在Windows下运行的DNS服务器。但是,当您提到“在路由器上”的DHCP服务器设置时,我认为您错过了问题的重要部分:完整的解决方案(WiFi AP + DNS服务器+ DHCP服务器+ Web服务器)在Windows上必须“自包含” PC ...
Federico

因此,您在这里确实有5个问题:如何在Win7中设置wifi AP?如何在Win7中设置DNS服务器?如何在Win7中设置DHCP服务器?如何在Win7中设置Web服务器?您如何整合所有这四个项目,以便它们一起工作?
Everett 2014年

我认为我从未问过这些问题中的任何一个...唯一的问题是:如何自定义Windows托管网络功能中内置的DHCP服务器分发的DHCP答复(以便包括自定义DNS服务器) 7?
Federico 2014年

是的,您做到了::完整的解决方案(WiFi AP + DNS服务器+ DHCP服务器+ Web服务器)需要“独立”
Everett

因为您喜欢引号:“当涉及到修改DHCP答案[]时,我感到很困惑:有什么办法吗?”。我从没说过我在设置DNS服务器或Web服务器时遇到问题...
Federico
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.