我需要使用可从 LAN 中的所有设备访问的自定义 URL 名称。
我知道可以在/etc/hosts
文件中设置
127.0.0.1 myname
127.0.1.1 system09-System-Product-Name
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
输入myname
主机时,可以访问 myname/urlpath 。它仅适用于我的系统。我怎样才能使这个系统在我的局域网中也可用?
答案1
顾名思义,本地主机只能从本地系统访问。
如果您需要其他用户访问您的自定义 URL,您需要将您的系统 IP 地址与所使用的名称进行映射,然后通过编辑其 /etc/hosts 文件在所有 LAN 工作站上添加此条目,例如:
127.0.0.1 <custom_name> # this is for localhost
<your_ip_address> <custom_name> # this is to be added to other workstations in the LAN
其他解决方案是使用本地 LAN 中的 DNS 服务器并为您的自定义名称创建 A 记录,该记录将允许 LAN 中的其他用户访问您的链接。
答案2
该名称localhost
仅供本地访问。
另一方面,您不应该localhost
从其中删除/etc/hosts
任何一个。如果您尝试这样做,您会发现很多问题。
从此时起,您有 3 个选择。
/etc/hosts
在所有相邻PC的文件中创建一个条目- 在网络上设置 DNS 服务器并向其添加条目。大多数家庭路由器都有内置的 DNS 服务器/代理,其中许多允许添加自定义条目。
- 使用 mDNS。 mDNS 是零配置网络。它允许计算机自动解析本地网络上的其他主机,而无需为这些主机手动配置 DNS 服务器。它通过发送广播请求并等待响应来实现这一点。
设置它的确切过程因操作系统而异,但 Arch Linux 有一个很好的指导。
一旦您运行它,您所要做的就是将相邻主机称为foo.local
(对于名为 的主机foo
)。
该解决方案是跨平台的,因为它在 OS-X 和 Windows 上都受支持(我认为两者都默认启用)。