我使用 Calibre 来管理我的电子书。
Caibre 有一个服务器选项,我可以通过链接在我的 Ubuntu 12.10 机器上访问它:
http://my_computer_name:8080
或者通过http://my_IP_address:8080
。
在本地网络上的另一台机器上,我可以通过 IP 地址访问服务器,但不能通过计算机名访问。由于每次连接时 IP 地址都会改变,所以我希望能够通过计算机名连接。
我该怎么办?
一些信息:
有一个路由器管理我的网络,但我对它了解不多,因为我不是网络管理员。不过,两台机器都在同一个本地网络上。
cat /etc/hostname
给出username-computer-name
avahi-resolve --name username-computer-name.local
给出如下内容:username-computer-name.local ff70::465d:57ef:fed5:dd46
。(这是什么?)
avahi-resolve -n username-computer-name.local
给出我的 192.168.0.xxx IP 地址,即路由器分配的地址。
ping username-computer-name
给出:64 bytes from username-computer-name (127.0.1.1): icmp_req=1 ttl=64 time=0.017 ms
但我通过网络可访问的 IP 地址不是 127.0.1.1,而是 192.168.0.xxx。我也可以成功 ping 后者的地址。
答案1
Ubuntu 默认使用 Avahi 启用了链路本地多播 DNS。这是我的答案关于 UL 上的几乎相同的问题。这是一种完全独立于本地网络设置方式的方法,因此即使您未在计算机上使用本地 DNS 服务器,这种方法在大多数情况下也有效。
我假设这里的两个主机都在同一个 LAN(第 2 层网络段)中。在大多数设置中,家庭网络中只有一个主机,无线和有线都在第 2 层连接。
假设一个主机被调用host1
,另一个被调用host2
,那么你们应该能够使用host1.local
和互相交谈host2.local
。就是这样。
但是,这与常规名称解析有何关系?是“特殊的”,并且您的 Ubuntu 系统也.local
配置为尝试:mDNS
cat /etc/nsswitch.conf
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
检查您的主机名配置/etc/hostname
。它应该是一个单词,并且您在安装 Ubuntu 时已经指定了它。