我正在使用 Raspberry Pi Zero W。操作系统是 Raspbian Buster。我安装了 DNSCrypt-Proxy,但无法启动它。
已用 检查过sudo systemctl status dnscrypt-proxy
。
得到[FATAL] listen udp 127.0.0.1:53: bind: permission denied
。
因此检查谁在监听端口 53 sudo lsof -i :53
。
得到:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root 83u IPv4 12291 0t0 TCP 127.0.2.1:domain (LISTEN)
systemd 1 root 84u IPv4 12295 0t0 UDP 127.0.2.1:domain
我想,也许我可以通过禁用来修复它systemd-resolved
,结果发现它已经被禁用了。
尝试编辑/etc/systemd/resolved.conf
;添加了行DNSStubListener=no
。仍然没有任何结果。
顺便说一下,还尝试停止 Avahi 守护进程。
有什么建议可以说明到底是什么占用了 53 端口吗?非常感谢。
答案1
我也遇到了这个问题,而且不只是在 Raspbian 上。我认为这permission denied
是由于权限问题,而不是正在使用的端口(您看到的 IP 不同)。当我以 root 身份手动运行命令时,它运行正常。
我从 Github 下载了最新版本并安装了这些说明。然后我照做了systemctl edit dnscrypt-proxy
,并将其更改为以下内容:
[Service]
DynamicUser=yes
AmbientCapabilities=cap_net_bind_service cap_net_broadcast cap_net_admin cap_net_raw
这环境能力似乎是允许它绑定到端口 53 的关键。不确定所有这些都是必需的,但这对我来说是有效的。