Linux DBus Удаленное TCP-соединение с ошибками SystemD - PullRequest
0 голосов
/ 20 апреля 2020

Я работаю на платформе Embedded Linux с версией SystemD 241 и версией ядра Linux 4.19.78.

Я хочу использовать D-Feet для удаленной проверки различных интерфейсов DBus.

В прошлом я делал это с более старой версией SystemD, используя следующие инструкции: Подключение к dbus через tcp

Я создал новый файл конфигурации DBus (d -feet.conf) в / usr / share /:

root@me:/usr/share/dbus-1/system.d# pwd
/usr/share/dbus-1/system.d

root@me:/usr/share/dbus-1/system.d# cat d-feet.conf 
<listen>tcp:host=localhost,bind=*,port=55556,family=ipv4</listen>
<listen>unix:tmpdir=/tmp</listen>

<busconfig>
  <auth>ANONYMOUS</auth>
  <allow_anonymous/>
</busconfig>

Когда я запускаю netstat, я вижу, что порт связан:

root@me:/usr/share/dbus-1/system.d# !76
netstat -plntu | grep 55556
tcp6       0      0 :::55556                :::*                    LISTEN      1/init

Я также редактировал dbus. файл сокета:

cat /lib/systemd/system/dbus.socket
[Unit]
Description=D-Bus System Message Bus Socket

[Socket]
ListenStream=/var/run/dbus/system_bus_socket
ListenStream=55556

Однако, когда я пытаюсь подключиться с компьютера с Ubuntu 18.04 Linux в той же сети, я вижу, что он не работает и не предлагается метод аутентификации "ANONYMOUS", который я определил :

can not connect to 'tcp:host=192.168.1.16,port=55556': g-io-error-quark: Exhausted all available authentication mechanisms (tried: EXTERNAL) (available: EXTERNAL) (0)

Как мне заставить это работать? Спасибо.

ОБНОВЛЕНИЕ: Я пытался использовать '0.0.0.0' в качестве адреса привязки:

cat /usr/share/dbus-1/system.d/d-feet.conf 
<listen>tcp:host=localhost,bind=0.0.0.0,port=55556,family=ipv4</listen>
<listen>unix:tmpdir=/tmp</listen>

<busconfig>
  <auth>ANONYMOUS</auth>
  <allow_anonymous/>
</busconfig>

Тем не менее, он все еще не работает с той же ошибкой, и вывод "systemctl show dbus" .socket "включает в себя следующее:

PassCredentials=no
PassSecurity=no
RemoveOnStop=no
Listen=/var/run/dbus/system_bus_socket (Stream)
Listen=[::]:55556 (Stream)
Mark=-1
MaxConnections=64
MaxConnectionsPerSource=0
MessageQueueMaxMessages=0

1 Ответ

0 голосов
/ 28 апреля 2020

Я просто наткнулся на то, что работает. Если я отредактирую файл /usr/share/dbus-1/system.conf и добавлю следующее:

<listen>tcp:host=localhost,bind=0.0.0.0,port=55556,family=ipv4</listen>
<listen>unix:tmpdir=/tmp</listen>

<busconfig>
  <auth>ANONYMOUS</auth>
  <allow_anonymous/>
</busconfig>

Кажется, что это работает, если я этого не делаю, и полагаюсь на свои изменения в файл d-foot.conf, то кажется, что он не работает.

...