mDNS安装与开启

article/2025/9/18 5:34:31

在局域网建立.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次点赞

目录 [隐藏]

  • I. hostname
  • II. hosts
  • III. mdns
  • IV. avahi

ubuntu setup .local domain in lan

需要理解linux下面的几个概念。

I. hostname

主机名,默认保存在/etc/hosname,可以通过命令hostname查看和更改。

 

$hostname #查看

hachi-jay

$sudo hostname -F /etc/hostname #编辑`/etc/hostname`后应用该命令更改。

II. hosts

本地域名文件,配置后再本机立即生效。默认地,会设置本机hostnamehosts使之映射到127.0.0.1。同样地,局域网内也可以通过http://hostname 到该机器。

 

$cat /etc/hosts

127.0.0.1 localhost

127.0.0.1 hachi-jay

# 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

III. mdns

  • Multicast DNS
  • 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。


http://chatgpt.dhexx.cn/article/SNgsynE4.shtml

相关文章

安卓基于MDNS协议的局域网内服务发现

mDNS简介 mdns 即多播(组播)dns(Multicast DNS),用于本地局域网服务发现的协议,在Apple 的设备上(电脑,笔记本,iphone,ipad等设备)都提供了这个服务(Bonjour)。 mDNS有…

mDNS协议

1,这个项目主要使用go的原生net包和github.com/miekg/dns这个dns工具包来实现mdns的。我们需要实现mdns的服务端和客户端的代码,可以从开源项目里找过来用的。 数据包主要用到了网络层的icmp差错控制协议来返回响应数据包的,它里面携带了一个…

网络协议学习-mDNS

前面在学习局域网设备发现的时候,学习了UPnP协议,学习到了里面的设备发现协议SSDP,SSDP设备发现。 最近又发现了一种常见的协议,用来发现局域网内的设备及服务,就是mDNS协议,这是一种零配置服务。 mDNS即多…

mysql数据库备份 dump,使用mysqldump对数据库备份和恢复

数据库存储引擎:InnoDB 启用binlong 一、恢复误删除的数据库到最新状态 1、备份数据库 mysqldump -A -F -uroot -p --master-data2 --single-transaction > /backups/all-date %F_%T.sql 2、对数据库误删除 MariaDB [reset_gq]> drop database reset_gq; 3、对…

MySQL全量备份和增量备份

MySQL目前是市面上比较流程的关系型数据库,很多人使用MySQL里的数据真的安全吗?如果发生以下问题的话: MySQL数据目录所在磁盘损坏MySQL服务器发生故障人为操作失误导致删除了一些数据黑客入侵导致数据被攻陷等问题 这个时候如果没有备份数…

mysql备份test数据库_mysql和test数据库

安装mysql yum -y install mysql mysql-server mysql-devel service mysqld startmysqladmin -uroot -p password "123456"mysql -uroot -pshow databases; use mysql; sho... 文章 weibinwps 2017-12-25 983浏览量 mysql导入和导出数据 Linux下如何单个库进行导入和…

app服务器 数据库文件,app访问服务器mysql数据库文件

app访问服务器mysql数据库文件 内容精选 换一换 云数据库RDS服务上的MySQL在使用上有一些固定限制,用来提高实例的稳定性和安全性,具体详见表1。 对于mysqlpump工具,由于在并行备份场景有coredump问题,不建议您使用,推…

定时备份MYSQL数据库

首先查看磁盘情况,选择空间充足的磁盘空间,避免出现因空间不足导致备份失败 df -h 这里选择磁盘较大的,app 创建备份目录 cd /app mkdir bkdatabase cd bkdatabase 创建备份的shell脚本 vim backmysql.sh 添加内容: #!/bi…

MYSQL数据库(八)数据库备份和恢复

成功不易,加倍努力! 5 备份和恢复5.1 备份恢复概述5.1.1 为什么要备份5.1.2 备份类型5.1.3 备份什么5.1.4 备份注意要点5.1.5 还原要点5.1.6 备份工具5.1.6 基于 LVM 的快照备份5.1.7 实战案例:数据库冷备份和还原 5.2 mysqldump备份工具5.2.…

【脚本分享】- Windows下利用Powershell进行MySQL数据库备份

关注「WeiyiGeek」公众号 将我设为「特别关注」,每天带你玩转网络安全运维、应用开发、物联网IOT学习! 测试环境: Server 2008 R2 所需软件: - MySQLdump.exe - msvcp120.dll x64/x86- msvcr120.dll x64/x86- powershell- 7z 设置PowerShell策略: PS…

数据库备份脚本大全

备份脚本六个注意点 在写脚本前我这里按照个人习惯大概总结了以下六点,感兴趣的可以继续看看,不感兴趣的直接跳过就好。 1、首先要注意的一点就是 shell 环境是 bash 还是 sh ,需要在你的脚本开头中注明。 #!/bin/bash 2、其次就是数据库环境变量需要申明…

C#实现MySQL数据库数据的备份与恢复

这几天一直在做学校的C#期末项目,其中有一个功能就是数据的备份与恢复,在百度了一番之后,只找到了适用于SQL Server的备份SQL语句 BACKUP DATABASE database_name TO DISK physical_device_name [ WITH { DIFFERENTIAL | COPY_ONLY | {…

Linux Mysql自动备份

1.配置自动备份环境 1.1 创建文件见放脚本文件和备份数据 # 创建/data/backup/mysqlmkdir -p /data/backup/mysqlcd /data/backup# 创建mysql_backup.sh的脚本并且填充数据vi mysql_backup.sh# vi mysql_backup.sh进行编辑和修改 1.2 创建 备份数据的语句 mysql_backup.sh…

wamp 备份 mysql数据库_wamp:MySql数据库备份还原(mysqldump)

mysql数据库备份和恢复命令在mysql安装目录中的bin目录下,例如wamp安装在e:\wamp目录下,备份目录就在e:\wamp\mysql\mysql5.0.51b\bin目录中,备份和恢复操作在DOS命令符状态下完成: 1、备份数据库: mysqldump -u 用户名…

MySQL 20 MySQL 数据库备份

8.2 数据库备份 不用我多说,都知道 为什么需要数据库备份。因为 你在增删改查的时候,肯定会 出现 误操。(导致一些数据修改错误,或者一些数据被不小心干掉!) 保证重要的数据不丢失为了让我们 对数据操作的…

MySQL数据库的定时备份实践

1.背景介绍 也许你会发现本站建站时间久远,但是本站的各类访问量总是很低,这大概是有两个方面的原因,其一是因为本站升级2.0后,所有的文章访问数据并未同步(不仅仅是文章,所有的数据均为同步,比…

Python NumPy计算欧氏距离(Euclidean Distance)

欧氏距离定义: 欧氏距离( Euclidean distance)是一个通常采用的距离定义,它是在m维空间中两个点之间的真实距离。 在二维和三维空间中的欧式距离的就是两点之间的距离,二维的公式是: begin{equation} d sq…

Euclidean division

In arithmetic, Euclidean division – or division with remainder – is the process of dividing one integer (the dividend) by another (the divisor), in a way that produces an integer quotient and a natural number remainder strictly smaller than the absolute …

PRN(20201012):Improved updating of Euclidean distance maps and Voronoi diagrams

[*] Lau B , Sprunk C , Burgard W . Improved updating of Euclidean distance maps and Voronoi diagrams[C]// IEEE/RSJ International Conference on Intelligent Robots & Systems. IEEE, 2010. 本文对[*]中的Occupancy Map to Euclidean Distance Maps算法进行python…

java余弦距离_使用TensorFlow实现余弦距离/欧氏距离(Euclideandistance)以及Attention矩阵的计算...

最近在使用tensorflow完成句子相似度建模等任务时常常会用到各种距离的计算,而且有很多论文提出了Attention机制,所以这里就介绍一下如何使用tensorflow实现上述各种功能。 这里首先假定我们的输入是两个四维的Tensor,然后我们需要计算的是其…