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

Dan*_*Dan 30 dns lan webserver dnsmasq

我想在我的一台家用机器上设置 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
    
    Run Code Online (Sandbox Code Playgroud)

use*_*686 14

使用标准 DNS,您将运行一个对本地域具有权威性的 DNS 服务器(home.或者local.,尽管最好避免使用后者 - 请参见下面的注释),但也充当所有其他域的解析器。

dnsmasq可用于此目的——它默认启用递归模式,您的配置看起来不错;所需要的只是告诉它哪些名称服务器用于非本地域。通常这些会从系统/etc/resolv.conf文件中读取;但是,由于您希望本地域也能在 DNS 服务器计算机上运行,​​您将需要创建resolv.conf的专用副本,该副本仅供dnsmasq 使用,而原始resolv.conf将指向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
Run Code Online (Sandbox Code Playgroud)

注意:这些说明是非常基本的,应该适应正在使用的 Linux 发行版。特别是,请查看dnsmasq 上的DebianUbuntu指南。

之后需要配置路由器使用这台电脑作为DNS服务器;然后,您网络中计算机的所有 DNS 查询都将由dnsmasq处理。

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


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

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


cam*_*rcu 13

我发现 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