如何设置“本地”域,以便本地网络上的每个人都可以查看本地托管的网站?

如何设置“本地”域,以便本地网络上的每个人都可以查看本地托管的网站?

我想在我家的一台机器上安装 MediaWiki,然后让本地网络上对“wiki.home”或“wiki.local”的所有请求都指向该框。我知道这可以通过单独编辑每个 /etc/hosts 文件来实现,但我想要更自动化的东西,例如,如果朋友或家人来我家,他们不需要乱搞 hosts 文件就可以查看网站。

有没有简单的方法可以做到这一点?我已经启动并运行了 wiki,并且一直在研究 dnsmasq,但我不知道如何正确设置 DNS。由于我想要一个自动化解决方案,我觉得我需要更改路由器上的 DNS 设置,但如果我在那里更改 DNS 设置,我如何才能解析外部主机?

配置详细信息

  • 路由器:Netgear WNR2000v2。路由器为我提供了手动指定 DNS 服务器的选项,我假设如果要启动并运行它,我必须将其指向我的 Ubuntu 机器。

  • MediaWiki 和 dnsmasq 主机:运行 Ubuntu 12.04。我在 dnsmasq 配置方面遇到了一些困难(主要是因为我缺乏经验)。例如,我不确定,但我认为在安装过程中,Ubuntu 修改了我的 DNS 设置,因此/etc/resolv.conf现在只有127.0.0.1唯一的 DNS 服务器。那时,我可以解析本地主机,但不能解析其他任何内容。我通过修改/etc/resolv.conf和添加192.168.1.1辅助名称服务器暂时解决了这个问题,但这里担心的是192.168.1.1将使用 Ubuntu 框进行 DNS。我是否遗漏了这里显而易见的东西?

  • dnsmasq 设置:取消注释以下几行:

    domain-needed
    bogus-priv
    local=/local/
    domain=local
    

答案1

使用标准 DNS,您可以运行一个对您选择的本地域 (如典型.home.lan“标准” .home.arpa) 具有权威性的 DNS 服务器,同时还可以充当其他所有内容的“正常”解析器。

域名系统可用于此目的 - 它默认启用递归模式,您的配置看起来不错;只需告诉它要为非本地域使用哪些名称服务器。通常,这些将从系统/etc/resolv.conf文件中读取;但是,由于您希望本地域也在 DNS 服务器计算机上工作,因此您需要创建解析配置文件仅供域名系统,而原来的解析配置文件会指向nameserver 127.0.0.1

# cp /etc/resolv.conf /etc/dnsmasq-resolv.conf
# echo "nameserver 127.0.0.1" > /etc/resolv.conf
# dnsmasq -r /etc/dnsmasq-resolv.conf

注意:这些说明非常基础,应根据所使用的 Linux 发行版进行调整。特别是,检查DebianUbuntudnsmasq 指南。

此后,需要配置路由器以使用此计算机作为 DNS 服务器;然后,网络中计算机的所有 DNS 查询都将由域名系统

(功能齐全的 DNS 服务器,例如bind9,可以自行执行递归查询——配置上游名称服务器完全是可选的。例如,这就是您的 ISP 名称服务器的工作方式。但是,使用bind9一开始相当复杂,与简单的相比域名系统


注意:如果您在 Avahi (又名 Bonjour) 上配置了任何网络上的计算机(Ubuntu 默认有),最好避免local.在 DNS 中并选择类似的内容,因为Avahi 已经处理了home.形式的名称。name.local

(尽管 Avahi 通常仅响应current-hostname.local,但实际上可以发布其他条目,例如wiki.local;但是,由于 mDNS 的工作方式,它们需要添加其他 IP 地址。因此,使用 Avahi 代替集中式 DNS 不会提供任何更多优势,所以我不建议这样做。)

答案2

我发现 Avahi 守护程序是执行此操作的最简单方法。注意:如果您使用 Windows 计算机连接到 .local 域,则需要确保这些计算机上安装了 iTunes 或其他 Bonjour 客户端。

请查看此链接了解更多信息:http://www.howtogeek.com/167190/how-and-why-to-assign-the-.local-domain-to-your-raspberry-pi/

虽然该链接特定于 Raspberry Pi,但它应该以相同的方式在 Ubuntu 机器上工作。对于不使用的其他 Linux 发行版apt-get,只需调整apt-get到适当的包管理器 - 例如yumFedora 和 CentOS)

以下是我在 Raspberry Pi 媒体服务器上运行的具体命令:

sudo apt-get update && sudo apt-get upgrade sudo apt-get install avahi-daemon

从那里开始,它会自动使用您计算机的主机名加上.local扩展名作为其域名。因此,如果您的机器的主机名是,那么您可以通过在任何装有 Bonjour/Avahi 的机器(即所有 Mac,以及安装了 iTunes 的 Windows 机器)的 URL 栏中输入来mediaserver在网络上访问它。mediaserver.local

答案3

本地名称解析是一项简单的功能,它已成为我使用的大多数路由器的一部分。它也在 DD-WRT 固件中实现。Netgear 并不关心这个功能不断要求

因此,答案比这里发布的其他答案简单得多 - 避免麻烦,将 Netgerat 路由器更改为支持本地名称解析的路由器。或者,如果这不是一个选择,并且您觉得自己有实力并且有时间,请在其上刷新 DD-WRT。

相关内容