我正在尝试为我的本地会话 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 套接字是否以 开始显示,以@
使其成为抽象套接字。我敢打赌没有这样的@
。我有两个运行完全不同版本的系统。一种是使用具有随机条目的抽象套接字进行监听,@/tmp/dbus-QVAhTtSPNB
另一种是使用 unix 进行监听(非摘要)套接字与/run/user/1000/bus
.
正确的命令可能是:
socat TCP-LISTEN:55556,reuseaddr,fork,range=127.0.0.1/32 UNIX-CONNECT:/run/user/1000/bus