openWrt启动mDNS服务

本文详述了openWrt启动mDNS服务的步骤和问题解决过程。通常,mDNS服务应自动启动,但作者遇到未启动的情况。mDNS是一种局域网设备发现协议,使用UDP的224.0.0.251和5353端口。在openWrt中,mDNS服务由umdns包提供,但作者发现缺少该包,选择使用avahi包作为替代方案。安装并配置avahi后,成功启用了mDNS服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

openWrt启动mDNS服务

引言:一般情况下,openwrt会自动启动mDNS服务的,但由于我刷写的镜像的问题,我的openWrt并没有启动mDNS这个守护进程。在解决这个问题的过程中遇到一些问题,在此记录一下。

mDNS网络协议

DNS(Domain Name System,域名系统)是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。

在局域网中,设备和设备之前相互通信需要知道对方的ip地址的。然而,大多数情况,设备的ip不是静态ip地址,而是通过dhcp 协议动态分配的ip 地址,如何发现局域网的设备呢?

现在物联网设备和app之间的通信,要么app通过广播,要么通过组播,发一些特定信息,感兴趣设备应答,实现局域网设备的发现。但是,使用mDNS比这方便多了。

mdns 即多播dns(Multicast DNS),mDNS主要实现了在没有传统DNS服务器的情况下使局域网内的主机实现相互发现和通信,使用的端口为5353,遵从dns协议,使用现有的DNS信息结构、名语法和资源记录类型,并且没有指定新的操作代码或响应代码。

mDNS是基于UDP协议的,使用的组播地址为:224.0.0.

### 配置 OpenWRT 服务开机自启 在 OpenWRT 中配置服务开机自启动涉及多个阶段,具体过程如下: #### 编写启动脚本 为了使特定的服务能够在系统启动时自动运行,通常会编写一个启动脚本来完成这一目标。对于希望启动位于 `/home/nps` 文件夹中的 `nps` 应用程序而言,可以创建名为 `gw.sh` 的 shell 脚本[^3]。 ```bash #!/bin/sh cd /home/nps ./npc -server=你的ip:8024 -vkey=你的密码 -type=tcp </dev/null >/dev/null 2>&1 & ``` 此脚本的作用在于切换到应用程序所在的目录并执行它,在后台模式下运行以确保不会阻塞其他进程的初始化。 #### 将脚本加入至启动项 为了让上述编写的 Shell 脚本能够随系统一同启动,需将其路径添加进系统的启动管理器中。一种方法是通过编辑 `/etc/inittab` 文件来实现这一点;另一种更为推荐的方法则是利用 `/etc/rc.local` 或者将该脚本放置于 `/etc/init.d/` 下作为一项服务注册,并链接到相应的 S 开头的启动级别文件内[^1]。 如果选择后者,则还需要为新创建的服务提供必要的元数据描述以及启用命令以便正确加载。下面是一个简单的例子展示如何操作: ```bash chmod +x /path/to/gw.sh # 确保脚本具有可执行权限 ln -s /path/to/gw.sh /etc/init.d/S99gw # 创建软连接使其成为启动项目的一部分 /etc/init.d/S99gw enable # 启用服务 ``` 以上步骤完成后,每当设备重新上电或重启之后,指定的应用将会被自动激活而无需人工干预。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值