标签: avahi

dbus_bus_request_name():不允许连接拥有该服务

我在arm上构建了一个根文件系统.它应该运行dbus-daemon和avahi-daemon,但是当我尝试运行时avahi-daemon

$ dbus-daemon --system
$ avahi-daemon
Run Code Online (Sandbox Code Playgroud)

我收到这条消息:

Found user 'avahi' (UID 4) and group 'avahi' (GID 4).
Successfully dropped root privileges.
avahi-daemon 0.6.28 starting up.
WARNING: No NSS support for mDNS detected, consider installing nss-mdns! 
dbus_bus_request_name(): Connection ":1.0" is not allowed to own the service "org.freedesktop.Avahi" due to security policies in the configuration file
WARNING: Failed to contact D-Bus daemon.
avahi-daemon 0.6.28 exiting.
Run Code Online (Sandbox Code Playgroud)

怎么了?是关于dbus配置吗?

linux dbus avahi busybox

20
推荐指数
3
解决办法
2万
查看次数

如何开发Avahi客户端/服务器

我正在尝试使用python开发客户端/服务器解决方案,服务器必须使用Avahi广播服务可用性.我使用以下代码发布服务:

import avahi
import dbus

__all__ = ["ZeroconfService"]

class ZeroconfService:
    """A simple class to publish a network service with zeroconf using
    avahi.

    """

    def __init__(self, name, port, stype="_http._tcp",
                 domain="", host="", text=""):
        self.name = name
        self.stype = stype
        self.domain = domain
        self.host = host
        self.port = port
        self.text = text

    def publish(self):
        bus = dbus.SystemBus()
        server = dbus.Interface(
                         bus.get_object(
                                 avahi.DBUS_NAME,
                                 avahi.DBUS_PATH_SERVER),
                        avahi.DBUS_INTERFACE_SERVER)

        g = dbus.Interface(
                    bus.get_object(avahi.DBUS_NAME,
                                   server.EntryGroupNew()),
                    avahi.DBUS_INTERFACE_ENTRY_GROUP)

        g.AddService(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC,dbus.UInt32(0),
                     self.name, self.stype, self.domain, self.host,
                     dbus.UInt16(self.port), self.text)

        g.Commit()
        self.group = g

    def …
Run Code Online (Sandbox Code Playgroud)

python avahi

17
推荐指数
1
解决办法
1万
查看次数

如何检测网络上的iPhone?

我试图检测我的iPhone是否与我的Raspberry Pi在同一网络中.我想在家里执行脚本,我的iPhone在我的局域网中注册.

似乎当手机处于待机状态时,甚至找不到iphone同步端口(6207/tcp)."/ usr/bin/nmap -n -sT -p62078 [我的手机的本地IP]"显示没有主机.我想知道还有什么我可以扫描的.显然,手机处于在线状态并准备接受正面通话(通过3G停用的数据).我可以用我在Raspberry Pi上使用的avahi来完成某些事情,或者还有其他方法.

iphone shell nmap avahi raspberry-pi

13
推荐指数
1
解决办法
8230
查看次数

我可以使用avahi跨子网发布服务吗?

Avahi通常用于服务发现.我想从不同的子网中发现一个服务,我可以使用avahi来实现这个目标吗?

例如,服务主机ip为"192.168.1.100",掩码为"255.255.255.0",因此它位于192.168.1.X子网中.另一个主机IP是"192.168.2.100",掩码为"255.255.255.0".我可以使用avahi让这个主机发现以前的服务主机吗?

linux networking mdns service-discovery avahi

10
推荐指数
2
解决办法
6166
查看次数

Avahi主机名解析:它是否在某处缓存?

我使用Fedora 18和avahi命令行工具(版本0.6.31)

我使用avahi-resolve-host-name来发现我子网上单元的IP地址,以便在开发过程中进行测试.我使用Wireshark监控请求和响应.在一次成功的请求和响应之后,Wireshark上没有进一步的请求,但该工具仍然返回一个IP地址.计算机/ avahi守护进程/其他东西是否有可能"缓存"结果?

问题:我希望通过每次调用avahi-resolve-host-name发送请求数据包.这可能吗?

原因:可以说我得到'误报'.我尝试解决'test1.local',我得到了一个结果IP,但该单元不再位于此IP.我希望每次都发送请求,这样我就可以避免看到IP地址不正确的单位.

linux networking mdns zeroconf avahi

9
推荐指数
2
解决办法
5056
查看次数

如何在Docker容器中做广告和浏览mDNS?

我正在尝试创建一个基于ubuntu 17.04的Docker容器,该容器可以浏览我的网络(在docker网络外部)上的mDNS并在mDNS上向我的网络(在docker网络外部)做广告。

我希望能够在macOS主机(在开发过程中)和Linux(Debian)主机上运行此docker容器进行生产。

https://github.com/ianblenke/docker-avahi似乎已经为Linux主机解决了这一问题(利用avahi守护程序并将/ var / run / dbus卷映射到主机)。在Macbook上进行开发时,我想使用mDNSResponder。

如何创建一个可以在本地网络上做广告和浏览的容器,该容器也可以在我的macOS笔记本电脑和Linux服务器上运行?

这是我到目前为止所拥有的。

Docker文件

FROM ubuntu:17.04    
WORKDIR /app

RUN apt-get update && apt-get install -yq avahi-daemon avahi-utils libnss-mdns \
  && apt-get -qq -y autoclean \
  && apt-get -qq -y autoremove \
  && apt-get -qq -y clean

RUN update-rc.d avahi-daemon enable

COPY docker/etc/nsswitch.conf /etc/nsswitch.conf
COPY docker/etc/avahi-daemon.conf /etc/avahi/avahi-daemon.conf

COPY docker/start.sh /app    

CMD ["/bin/bash","start.sh"]
Run Code Online (Sandbox Code Playgroud)

start.sh

#!/bin/bash

service avahi-daemon restart
service avahi-daemon status
avahi-browse -a
Run Code Online (Sandbox Code Playgroud)

nsswitch.conf

hosts: files mdns_minimal [NOTFOUND=return] dns

avahi-daemon.conf

...
enable-dbus=no
... …
Run Code Online (Sandbox Code Playgroud)

mdns avahi docker

9
推荐指数
1
解决办法
6153
查看次数

创建由avahi广播的节目

我正在尝试编写一个程序来输出可以通过网络与avahi提供的数据.我看过的文档似乎说我必须用dbus注册服务然后将它连接到avahi,但是执行此操作的文档非常稀疏.有谁知道它的好文档?我一直在看这些:

python-dbus:http: //dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html#exporting-objects

python-avahi:http://www.amk.ca/diary/2007/04/rough_notes_python_and_dbus.html

我真的不熟悉avahi的工作方式,所以任何指针都会有所帮助.

python dbus avahi

6
推荐指数
2
解决办法
3481
查看次数

倾倒Avahi和Bonjour,DNS-SD区域文件

我正在寻求改进mDNS的Go库:https://github.com/davecheney/mdns/

我和作者谈过,他简单地说"我把它弄到了适合我的地步",这很好,完全符合开源的精神.

他提到Avahi,Bonjour和dns-sd发现工具的一些互操作性问题没有找到他导出的服务.

我想了解Avahi在使用端口进行简单服务时发布的记录,以及简单的名称.

我曾预料到适当的版本:

dig @localhost .local -t AXFR
Run Code Online (Sandbox Code Playgroud)

可能让Avahi导出它的区域,但它对我不起作用(提示"你做错了"!) - 我想了解典型Avahi服务导出的最小记录,并自动检查Lee-Hambleys-Macbook.local从笔记本上的Apple实现中导出,我可以改进对mDNS的Go lang支持.

当其他人正在使用Avahi/Bonjour/mDNS时,他们使用什么工具来挖掘并检查事情是否按预期工作?

#avahi的善良人士非常友好地给我以下提示:

 killall -USR1 avahi-daemon
Run Code Online (Sandbox Code Playgroud)

这导致avahi-daemon将其区域文件转储到syslog.

但理想情况下,我想知道如何最好地查询服务器,tcpdump看起来也很有希望,但它仍然只显示得到查找的记录,而不是完全转储区域中的所有内容:

sudo tcpdump dst port 53
Password:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:43:28.883763 IP 192.168.178.41.50916 > resolver2.opendns.com.domain: 50479+ A? e3191.c.akamaiedge.net. (40)
09:43:29.046201 IP 192.168.178.41.61989 > resolver2.opendns.com.domain: 55378+ PTR? 251.0.0.224.in-addr.arpa. (42)
09:43:29.123784 IP …
Run Code Online (Sandbox Code Playgroud)

dns mdns multicast go avahi

6
推荐指数
1
解决办法
3356
查看次数

如何从 docker 容器“avahi-browse”?

我正在运行一个基于 ubuntu:14.04 的容器,我需要能够在其中使用avahi-browse。然而:

(.env)root@8faa2c44e53e:/opt/cluster-manager# avahi-browse -a
Failed to create client object: Daemon not running
(.env)root@8faa2c44e53e:/opt/cluster-manager# service avahi-daemon status
Avahi mDNS/DNS-SD Daemon is running
Run Code Online (Sandbox Code Playgroud)

我遇到的实际问题是pybonjour错误;pybonjour.BonjourError: (-65537, 'unknown')但我读过这与 avahi-daemon 的问题有关。

所以; 如何从容器连接到 avahi-daemon?

PS 我必须在 avahi-daemon.conf 填充中关闭 dbus 才能启动它,否则 avahi-daemon 将无法启动,出现如下 dbus 错误: (.env)root@8faa2c44e53e:/opt/cluster-manager# avahi-daemon Found user 'avahi' (UID 103) and group 'avahi' (GID 107). Successfully dropped root privileges. avahi-daemon 0.6.31 starting up. dbus_bus_get_private(): Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory WARNING: …

mdns avahi docker

6
推荐指数
1
解决办法
5401
查看次数

Nginx 动态 proxy_pass 变量到 .local 区域

因此,我想proxy_pass在我的服务器上由 Avahi 控制的 .local 区域中对 vagrant 机器进行动态化。我有一个 nginx 虚拟主机配置:

server {
        listen 80;
        server_name     ~^(?<subdomain>.+)\.example\.com$;

        location / {

                resolver 127.0.0.1 valid=30s;

                proxy_set_header            Host $http_host;
                proxy_set_header            X-Real-IP $remote_addr;
                proxy_set_header            X-Forwarded-Proto $scheme;
                proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header            Host $host;

                proxy_pass                  http://$subdomain-example.local;
                proxy_connect_timeout       600;
                proxy_send_timeout          600;
                proxy_read_timeout          600;

                send_timeout                600;

        }
    }
Run Code Online (Sandbox Code Playgroud)

Nginx 在 /var/log/nginx/error.log 中返回了一个错误:

2016/09/26 18:03:34 [error] 24401#24401: 
*1 no resolver defined to resolve test-example.local, 
client: 192.168.1.101, 
server: ~^(?<subdomain>.+)\.example\.com$, 
request: "GET / HTTP/1.1", 
host: "test.example.com"
Run Code Online (Sandbox Code Playgroud)

但是,例如,如果我手动设置$subdomain为“测试”,它就可以工作并按照我真正想要的方式传递到 test-example.local 机器。 …

dns nginx proxypass avahi vagrant

6
推荐指数
1
解决办法
1028
查看次数