macOS下运行Responder.py时UDP端口5353/5355占用问题求助
解决macOS运行Responder.py时UDP端口5353/5355占用问题
参数正确性确认
-i参数用于指定Responder绑定的IP地址,你使用热点WiFi的本机IP是可行的,但需要确保该IP确实属于你指定的-I tun0接口。可以通过以下命令验证:
如果输出的IP不是ipconfig getifaddr tun0172.20.10.8,建议将-i参数的值替换为tun0接口的实际IP,或者直接省略-i参数,让Responder自动绑定tun0接口的IP。
端口占用的根本解决方法
报错中的5353是macOS自带Bonjour服务(mDNS)的默认端口,即使杀掉Google进程,系统的mdnsresponder守护进程会自动重启并占用该端口,因此需要针对性处理:
1. 临时停止Bonjour服务
执行以下命令停止Bonjour服务(注意:此操作会影响本地设备发现功能,使用完毕后务必恢复):
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
恢复服务:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
2. 排查5355端口占用
同理,先检查5355端口的占用进程:
sudo lsof -i UDP:5355
根据输出的PID杀掉对应进程,如果是系统服务,可以参考Bonjour的方式临时停止对应的launchd守护进程。
3. 修改Responder端口配置
如果不想停止系统服务,可以修改Responder的配置文件更换端口:
- 找到Responder目录下的
Responder.conf文件(通常路径为/usr/local/share/Responder/或下载的源码目录) - 打开文件后,找到
[MDNS]和[DNS]部分,修改Port值为未被占用的端口,例如:[MDNS] Port = 53530 [DNS] Port = 53550 - 保存配置后重新运行Responder命令。
权限与防火墙排查
- 确保使用
sudo运行Responder,避免权限不足 - 可以临时关闭macOS防火墙测试是否有拦截:
测试完成后重新开启:sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate offsudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
内容的提问来源于stack exchange,提问作者maxer
相关产品推荐
相关产品推荐

