如何将 Ubuntu 服务器 IP 地址更改为网址?例如,我需要在浏览器上访问的地址是 192.168.x.xxx。我如何更改为 dev.robi.local?谢谢!
文件/etc/hosts
:
127.0.0.1 localhost localhost
192.168.0.105 dev.robi.local robi
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
文件resolv.conf
:
nameserver 8.8.8.8
nameserver 8.8.4.4
domain dev.robi.local
search dev.robi.local
答案1
传统上,名称解析(即将 IP 地址映射到主机名和将主机名映射到 IP 地址)是由 DNS(域名系统)服务器完成的。
您可能有一个互联网路由器,为您的本地网络提供 DNS。您的路由器允许您向其 DNS 添加条目,但通常客户级硬件不提供此功能。检查一下不会有什么坏处,因为这是最简单的方法。
由于这可能不太可能,因此有多种方法可以实现
笔记:该域.local
指的是一个称为米(多播)DNS,又名zeroconf/bonjour/avahi- 有关技术细节,请参阅请求函数。如果没有专用的 DNS 服务器可用,它会提供名称解析和服务公告,尽管在 OS X(bonjour)和 Ubuntu(avahi)上它是默认启用的。
更新:我发现 avahi 方法并非立即可行,并且设置本地 DNS 只有当它可以作为网络的主 DNS 运行时才有意义。
大多数操作系统都会维护一个
hosts
文件,其中包含类似这样的条目IP hostname
。您可以手动添加一个条目(用正确的 IP 替换 x!)192.168.x.x dev.robi
到/etc/hosts
LAN 上的每个客户端。此方法很简单,但如果 IP 或主机名经常更改,则不太实用。
如上所述,
avahi-daemon
Ubuntu 上默认运行。您可以将计算机配置为以多个名称宣布自己,但 LAN 中的每台计算机上都需要运行 mDNS 客户端,该客户端应解析新的主机名(在 Windows 计算机上,Apple 的 bonjour 服务随 iTunes 一起安装)。尝试添加192.168.x.x dev.robi.local
并/etc/avahi/hosts
使用 重新启动服务sudo service avahi-daemon restart
。现在尝试新主机名是否已解析,例如通过从另一台机器 ping 它。
更新:所述使用 avahi 设置别名的方法不起作用!Avahi 不允许将多个主机名绑定到同一个 IP,因为它总是会尝试注册相应的 PTR,这会导致冲突。这是预期的良好行为。但是,存在一个扩展avahi-别名允许注册别名 (CNAME)。遗憾的是,这些别名至少不会被 Windows 客户端识别,但只要您只运行带有 avahi 的客户端,这就会提供一个真正的选项。
要在 Ubuntu 系统上安装 avahi,请执行以下操作
sudo apt-get install avahi-daemon libnss-mdns
设置本地 DNS 服务器。我建议
dnsmasq
。可以使用 进行安装sudo apt-get install dnsmasq
。它附带一个 DHCP 服务器,您需要禁用它。其配置存储在 中/etc/dnsmasq.conf
。要禁用 DHCP,请设置no-dhcp-interface=eth0
eth0
连接到 LAN 的接口在哪里。dnsmasq 会自动读取/etc/hosts
,因此请hosts
像上面所述的那样添加您的主机名。最后将运行 dnsmasq 的机器添加到每个客户端的 DNS 服务器列表中。
更新:您可能已经运行了 DNS 服务器,例如在您的互联网路由器上。客户端将向该服务器发送 DNS 查询。您不能简单地将辅助 DNS 添加到客户端配置中,因为只有在主 DNS 无法访问时才会查询它。除非您运行的是可以成为网络主 DNS 的始终在线的机器,否则无法实现这一点。
总之:在纯 Linux 环境中,您可以在每个客户端上运行 avahi-daemon,avahi 方法实际上提供了一种解决方案。我自己尝试过。
由于您可能无法将一台机器变成始终在线的 DNS 服务器,dnsmasq
因此安装和配置不建议。
不过,最直接但有点麻烦的方法就是在每个客户端的 hosts 文件中添加一个条目!
您最近遇到的 DNS 解析问题可能源自运行 dnsmasq。我现在实际上不建议使用 dnsmasq,因为它无法解决您的问题。停止服务sudo service dnsmasq stop
。然后尝试host -v ro.archive.ubuntu.com
。它应该使用 中配置的 Google DNS 8.8.8.8 进行解析resolv.conf
。
此外,如果您使用此hosts
方法,请不要附加域.local
,因为它是为 mDNS 保留的。相反,只需输入
192.168.0.5 dev.robi
在/etc/hosts
,不在dev.robi.local
。