我的计算机上有 IIS7,我可以通过我电脑的 IP 地址 192.168.1.10x 通过同一网络上的其他计算机访问它。我希望能够转到 http://somename/,而不是输入 http://192.168.1.10x/
我知道您可以更改 hosts 文件来添加它,但我必须在每台计算机上都这样做,并且我仍然必须输入 IP 才能从我的 iPod/Wii 等访问它。
答案1
这可以在没有 DNS 服务器的情况下使用广播名称(机器名称)来完成,因此您可以输入http://我的电脑/从您的网络内部
大多数路由器都有 DHCP 和自己的 DNS 服务器,因此您很可能已经有一个 DNS 服务器。
答案2
如果你的局域网上的机器运行现代的操作系统,那么你只需要输入
http://machine_name.local
来访问它。不要忘记.local
后缀。
要从 IP 获取名称,请使用
avahi-resolve-address IP
答案3
对于“大多数客户端”,您可以通过使用 mDNS 来避免使用 DNS 服务器设置,mDNS 用于网络上机器公布的名称。想想 P2P。安全性非常低,因此名称可以被伪造,但 MacOSX 和大多数消费者 *nix 版本都支持它。如果您将服务器称为“fred”,那么可以通过“fred.local”访问它,您甚至可以将“local”放在 DNS 搜索路径中,任何家用路由器都支持这样做。
苹果称之为 Bonjour,他们有一个Windows 版本. 在Linux上,最常见的实现是Avahi。
我怀疑 mDNS 是否能与 Wii 兼容,但它应该能与 iPod 兼容。
更可靠的方法是使用常规 DNS,但如果您使用的是常规消费者家用路由器,那么它可能不支持将域委托给您控制,因此您需要从使用路由器的 DNS 服务切换到网络上的另一个 DNS 服务器。然后,该 DNS 流量将必须通过 NAT(假设您正在使用 NAT,但您的 IP 地址示例暗示您正在使用 NAT),这可能会破坏任何安全性并增加路由器上的状态关联负载——对于廉价路由器来说,这可能会有问题。
如果您有基于 Linux/BSD 的路由器,那么情况会有所改善,因为您可能可以将内容放入路由器上的 DNS 服务中。例如,许多此类服务都使用 dnsmasq,这使得这变得非常容易。因此,最可靠的方法可能是在路由器上安装类似 dd-wrt 的东西,然后在其中配置主机名到 IP 地址的条目。
答案4
如果您希望 DNS 在所有不同设备上都能正常工作,则必须在某个时候对其进行配置。通常的策略是设置自己的 DNS 服务器,确保本地网络中的所有设备都连接到该服务器,然后添加一个包含所需设备名称的新区域。传统上,您会在名称中添加类似 .local 的内容以确保不会发生名称冲突。
可以让设备在开机时自行在 DNS 中注册,也可以让 DHCP 服务器进行注册。这称为“动态 DNS”,具体规定见RFC 2136。
一个更巧妙的解决方案是注册一个普通域名,然后将子域名指向你的(私有)IP 地址。这样就很好用了。