在局域网建立.local域名 参考来源
1 苹果设备自带 Bonjour无需安装
2 windows需要安装 bonjour 装了也没用 安卓也没找到可用的 目前就苹果和乌班图可互通
3 linux设备 ubuntu 安装avahi
sudo apt-get install avahi-daemon
sudo apt-get install avahi-utils
Bonjour是苹果公司开发的,苹果和windows设备可用的,为基于组播域名服务(multicast DNS)的开放性零设置网络标准所起的名字。使用Bonjour的设备在网络中自动传播它们自己的服务信息并聆听其它设备的服务信息,设备之间就象在打招呼,这也是命名为Bonjour(法语:你好)的原因。这样,Bonjour使局域网中的系统和服务即使在没有网络管理员的情况下很容易被找到。
苹果的 Bonjour 的多址广播域名服务(mDNS) 使用“.local ”后缀来识别 Bonjour 可访问的设备
比如树莓派可以用用raspberrypi.local
去访问非常方便,无需在DHCP中保留地址
其他Linux发行版可通过安装avahi服务实现local本地域名
ubuntu avahi用法
ubuntu avahi用法
在 ubuntu 16.04 中已经自带 avahi 服务了
如果没有 请使用 下面命令 安装 安装完成会自动启动并开机自启
sudo apt-get install avahi-daemon
sudo apt-get install avahi-utils
查看局域网内所有的mdns服务,
avahi-browse -a
测试 : xxxxx是hostname
ping xxxxx.local
mDNS
为了不用在局域网中每一次查询IP地址,可以打开centos的mDNS功能。这样子我们在局域网内就可以直接用服务器名进行访问了。例如:ping centos.local
centos安装avahi步骤:
1 安装 备注 centos里的总是自己挂掉 最后用的Ubuntu
yum install avahi
2 开启
systemctl start avahi-daemon
验证
用局域网中其他机器 ping XXXX.local
XXXX是hostname
转载自 在局域网建立.local域名 - Li Jie's Notes
在局域网建立.local域名
lijie 默认分类,linux,ubuntu 2019-11-26 6045 次浏览 51次点赞
目录 [隐藏]
ubuntu setup .local domain in lan
需要理解linux下面的几个概念。
I. hostname
主机名,默认保存在/etc/hosname
,可以通过命令hostname
查看和更改。
| |
| |
|
II. hosts
本地域名文件,配置后再本机立即生效。默认地,会设置本机hostname
到hosts
使之映射到127.0.0.1
。同样地,局域网内也可以通过http://hostname
到该机器。
| |
| |
| |
| |
| |
| |
| |
| |
|
III. mdns
mdns 即多播dns(Multicast DNS),mDNS主要实现了在没有传统DNS服务器的情况下使局域网内的主机实现相互发现和通信,使用的端口为5353,遵从dns协议,使用现有的DNS信息结构、名语法和资源记录类型。并且没有指定新的操作代码或响应代码。在局域网中,设备和设备之前相互通信需要知道对方的ip地址的,大多数情况,设备的ip不是静态ip地址,而是通过dhcp协议动态分配的ip 地址,如何设备发现呢,就是要mdns大显身手,例如:现在物联网设备和app之间的通信,要么app通过广播,要么通过组播,发一些特定信息,感兴趣设备应答,实现局域网设备的发现,当然mdns 比这强大。
当mDNS客户端需要解析主机名时,它会发送一个IP多播查询消息,要求具有该名称的主机标识自己。然后该目标机器多播包含其IP地址的消息。然后,该子网中的所有计算机都可以使用该信息来更新其mDNS高速缓存。任何主机都可以通过发送生存时间(TTL)等于零的响应数据包来放弃其对名称的声明。
默认情况下,mDNS仅限并且专门解析以.local顶级域(TLD)结尾的主机名。如果该域包括未实现mDNS但可以通过传统单播DNS服务器找到的主机,则会导致问题。解决此类冲突需要违反零配置目标的网络配置更改 [1] 。
IV. avahi
-
install
$sudo apt-get install avahi-daemon
-
control
成功安装会自动通过systemd启动avahi服务,可以通过systemd控制器状态。
$systemctl status avahi-daemon.service
$sudo systemctl start avahi-daemon.service
$sudo systemctl status restart.service
-
config
成功启动avahi服务后,会自动建立
hostname.local
域名到当前ip的映射。$systemctl status avahi-daemon.service
● avahi-daemon.service - Avahi mDNS/DNS-SD Stack
Loaded: loaded (/lib/systemd/system/avahi-daemon.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-11-26 11:45:00 CST; 2h 59min ago
Main PID: 19887 (avahi-daemon)
Status: "avahi-daemon 0.7 starting up."
Tasks: 2 (limit: 4915)
CGroup: /system.slice/avahi-daemon.service
├─19887 avahi-daemon: running [hachi.local]
└─19908 avahi-daemon: chroot helper
11月 26 11:45:01 hachi avahi-daemon[19887]: Server startup complete. Host name is hachi.local. Local service cookie is 1132714104.
如果还需要配置其他域名/ip映射,可以配置更改
/etc/avahi/hosts
文件。$cat /etc/avahi/hosts
# Examples:
192.168.1.1 router.local
#192.168.1.57 hachi.local
# 2001::81:1 test.local
提示:成功启动avahi-daemon 服务后会默认映射本地
hostname
到当前ip地址,所以无需再次在/etc/avahi/hosts
文件中重复配置,否则会提示ip 地址冲突。Static host name hachi0.local: avahi_server_add_address failure: Local name collision
本文由 lijie 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处,点赞51。