![大型域上的 mDNS](https://linux22.com/image/1619205/%E5%A4%A7%E5%9E%8B%E5%9F%9F%E4%B8%8A%E7%9A%84%20mDNS.png)
我在公司 VPN 上远程工作,可以使用服务器 IP 地址连接到我们的内联网网页。我读到,也许可以使用http://servername.local/ourwebsite
whereservername.local
替换 IP 来解决问题。
- 我们的服务器显然有一个 avahi-daemon 进程正在运行
- 我开放了UDP端口5353。
- 我在我的 Windows 客户端(win7)上安装了 bonjour。
- 问题:我是无法使用计算机名称发现/解析服务器
mDNS 似乎是家庭网络层面的一个好解决方案,但它是否因为我处于不同的子网而无法正常工作?或者也许我需要在服务器上安装更多 avahi 软件?
PS 我知道我可以编辑我的 hosts 文件,但这是不可取的,因为我不希望所有同事都想编辑他们的文件。同样,我也不指望他们更改他们的 DNS 服务器配置。
答案1
常规 DNS 将是最佳选择,并且很可能是需要的解决方案至少您的同事无需做太多工作。您的公司网络可能已经有一个 DNS 域,因此剩余步骤如下:
为您的内部网网站添加标准子域。
如果域名是私有的(虚构的或者只是未公开委托),则告诉每个人只要连接到公司网络就使用公司 DNS。
但如果域名是公共的(全球性的),那么其他人就可以继续使用他们已经在使用的同一个 DNS 服务器。是的,您可以将私有 IP 地址放在公共 DNS 中。
如果您不想这样做,请在公司网络上设置一个“反向代理”服务器 - 为其指定一个“正常”IP 地址,并将其配置为内部 Web 服务器的前端。当然,代理仍然可以使用防火墙来限制哪些客户被允许访问它。
mDNS 似乎是家庭网络层面的一个很好的解决方案,但是由于我在不同的子网上,它是否不起作用?
确实如此 – 1) 大多数路由器未配置为转发多播;2) mDNS 使用“链路本地”组,该组并不意味着3)除此之外,Avahi 甚至故意在其 mDNS 数据包上设置 TTL=1,这样即使路由器做过支持它。
我不希望他们改变他们的 DNS 服务器配置。
我想对此我有两种相互矛盾的观点:
一方面,如果他们连接到公司网络,那么他们就应该使用公司 DNS 服务器,无论他们是否愿意。
这也适用于 VPN。大多数 VPN 系统能够自动提供 DNS 配置作为标准连接过程的一部分,因此只要您的同事连接到公司 VPN,他们的计算机就会自动开始使用公司 DNS。
(有时甚至可以使用“拆分” DNS,其中某些域使用公司 DNS 解析,但其他所有内容仍通过用户的正常 ISP DNS 服务器进行解析。)
但另一方面,DNS本来应该是全球的以前,它的内容不应该根据您使用的服务器而改变。我这样做可能很愚蠢,但我宁愿创建一个可以在全球范围内解析的子域,从一开始就避免整个“更改 DNS 服务器”问题。
如果您不想将内部 IP 放在公共 DNS 中,那么“反向代理”服务器可以避免这个问题。然后子域可以指向反向代理的公共地址,从而隐藏实际的服务器。