升级到 v0.9.3 后,Caddy 服务器无法启动并显示此错误:
listen tcp :443: bind: permission denied
我以用户身份使用 systemd 运行 caddy caddy
。我检查发现该二进制文件实际上归所有caddy
。
答案1
如果您运行的是 systemd v229 或更高版本,则可以执行此操作而无需本质上提供二进制功能:
AmbientCapabilities=CAP_NET_BIND_SERVICE
答案2
这不是 caddy 的问题,也不是用户权限的问题。Linux 默认不允许进程监听低级端口。
授予访问权限:
sudo setcap CAP_NET_BIND_SERVICE=+eip $(which caddy)