You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS下Podman部署Pi-hole时53端口占用问题求助

在macOS通过Podman运行Pi-hole时端口53占用问题的解决方法

问题场景

在macOS系统中尝试用Podman容器运行Pi-hole,执行命令如下:

podman machine init
podman machine set --rootful=true
podman machine start
podman run -d --name=pihole --restart always -e TZ=Europe/Zurich -e WEBPASSWORD=admin -e FTLCONF_LOCAL_IPV4=192.168.1.4 -e ServerIP=192.168.1.4 -e PIHOLE_DNS_=1.1.1.1 --cap-add=NET_ADMIN -p 80:80 -p 53:53/tcp -p 53:53/udp -p 443:443 pihole/pihole:latest

运行失败,报错信息:

Error: cannot listen on the TCP port: listen tcp4 :53: bind: address already in use

使用lsof -i :53检测后,未发现进程占用53端口。

解决方法

1. 排查系统级隐藏进程占用

普通用户执行lsof可能无法看到系统进程,改用sudo权限重新检测:

sudo lsof -i :53

如果发现mDNSResponder等系统服务占用端口,可临时停止该服务:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

启动Pi-hole容器后,若需恢复系统DNS服务,执行:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

2. 修改Podman端口映射规则

避免绑定主机所有IP的53端口,改为绑定指定本地IP:

podman run -d --name=pihole --restart always -e TZ=Europe/Zurich -e WEBPASSWORD=admin -e FTLCONF_LOCAL_IPV4=192.168.1.4 -e ServerIP=192.168.1.4 -e PIHOLE_DNS_=1.1.1.1 --cap-add=NET_ADMIN -p 192.168.1.4:80:80 -p 192.168.1.4:53:53/tcp -p 192.168.1.4:53:53/udp -p 192.168.1.4:443:443 pihole/pihole:latest

或者修改主机端口为非53端口(如5353),后续需调整设备DNS指向该端口:

podman run -d --name=pihole --restart always -e TZ=Europe/Zurich -e WEBPASSWORD=admin -e FTLCONF_LOCAL_IPV4=192.168.1.4 -e ServerIP=192.168.1.4 -e PIHOLE_DNS_=1.1.1.1 --cap-add=NET_ADMIN -p 80:80 -p 5353:53/tcp -p 5353:53/udp -p 443:443 pihole/pihole:latest

3. 关闭潜在冲突服务

检查并关闭VPN、AirDrop相关服务或第三方DNS工具,这类服务可能在后台静默占用53端口。

内容的提问来源于stack exchange,提问作者Octavian-Codrut Popescu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 05:10:32