scenario:
屋里有个wireless router, 想让自己的linux, mac osx, iphone, ipod touch能互相用hostname resolve. 而不用static ip.
这样就能很方便地在机器之间访问(比如ssh, ftp, 甚至互相导git的commit等), 而不是依赖于有可能会更改的dhcp分配的ip地址.
workaround:
并且使用 hostname.local 能解析出对方的IP地址.
首先, linux要安装avahi-daemon等一系列工具.
avahi是zeroconf的一种implementation, 支持mDNS协议,
它使得机器能在LAN范围内广播service(SSH)等, 而不用通过外围DNS解析.
(router没有DNS功能)
安装成功后, 可以使用avahi-discover, avahi-resolve等工具测试是否成功.
最重要的是, 必须安装libnss-mdns,
这个lib使得其它如ssh/ping等程序能使用mDNS正确解析出local domain的hostname.
(我的机器已经把avahi/bonjour都配置好了, 但在这个问题上折腾了两小时, 悲剧啊... 后来总算google到了答案.)
而apple家的产品用的是bonjour, 已经preinstalled. 无需额外配置.
teststing:
ping/ssh 到 hostname.local 检查是否能正确解析出主机ip即可.
No comments:
Post a Comment