socat을 통해 tcp를 d-bus로 전달하는 데 실패함

socat을 통해 tcp를 d-bus로 전달하는 데 실패함

내 로컬 세션 dbus 데몬에 대한 TCP 프록시를 구축하려고 합니다. 내가 해냈어

 socat TCP-LISTEN:55556,reuseaddr,fork,range=127.0.0.1/32 ABSTRACT-CONNECT:/run/user/1000/bus

그러나 DBUS_SESSION_BUS_ADDRESS=tcp:host=127.0.0.1,port=55556 notify-send hello이 오류가 발생합니다 .

2018/12/31 03:11:56 socat[4316] E connect(5, AF=1 "\0/run/user/1000/bus", 21): Connection refused
2018/12/31 03:11:56 socat[4317] E connect(5, AF=1 "\0/run/user/1000/bus", 21): Connection refused

이 문제를 어떻게 해결할 수 있나요? 오프라인 박스이기 때문에 보안에는 전혀 신경쓰지 않습니다.

답변1

추상 소켓으로 만들기 ss -xnl위해서는 Unix 소켓이 start로 나타나는지 확인해야 합니다 . @그런 건 없을 것 같아요 @. 완전히 다른 버전을 실행하는 두 개의 시스템이 있습니다. 하나는 임의의 항목이 있는 추상 소켓을 사용하여 수신하는 것이고 @/tmp/dbus-QVAhTtSPNB다른 하나는 unix를 사용하여 수신하는 것입니다(아니요정리) 소켓 /run/user/1000/busvs.

올바른 명령은 다음과 같습니다.

 socat TCP-LISTEN:55556,reuseaddr,fork,range=127.0.0.1/32 UNIX-CONNECT:/run/user/1000/bus

관련 정보