通过互联网为多台机器使用D-Bus

Mik*_*one 0 dbus

我正在写一个服务器(在C中),它服务于不同的机器.我想通过互联网使用D-Bus进行远程过程调用,但我听说D-Bus不能用于很多机器,而是用于一台机器.是对的吗?我可以在这种情况下使用D-Bus吗?

Lin*_*lle 7

简短的回答是肯定的,这是可能的; dbus可以在不同的机器上使用(但请参阅下面的安全警告).

在您的服务器上,dbus-daemon配置文件(您可能只想为您的服务设置整个其他总线而不是重用系统或会话总线)需要配置为通过TCP接受连接,而不是仅通过本地套接字接受/tmp.在dbus-daemon中设置适当的listen命令有一些技巧,这些技巧都有详细记录.

此外,如果您无法修改本地dbus-daemon(或者您被迫使用与RHEL一起分发的旧的,破坏版本的dbus-daemon,它不会侦听远程套接字),您可以运行名为dbus-daemon的应用程序-proxy将侦听套接字并转发到本地dbus-daemon的连接.

无论哪种方式,在客户端计算机上,您都需要将DBUS_SESSION_BUS_ADDRESS变量设置为具有dbus-daemon或代理服务器正在侦听的IP地址和端口.

安全警告:线路上没有数据加密,dbus访问机制仅适用于本地连接,而不适用于TCP连接.要正确保护使用TCP传输机制的dbus连接,您将面临一些工作.