作为我工作的一部分,我每天都使用 tftp。到目前为止,一切都很好,从昨天(2016 年 6 月 21 日)开始,它就不再起作用了。我不知道确切的原因,因为在讨论这个问题的人都找不到任何支持(是因为没有其他人像我一样使用 tftp 来使用 Apple 刷新路由器吗?)。
我启动 tftpd 的基本程序:
$ launchctl load -F /System/Library/LaunchDaemons/tftp.plist
$ launchctl start com.apple.tftpd
然后我将固件放在“/private/tftpboot”目录下,该目录已经设置为模式 0777。
为了下载固件,过程很简单:
$ tftp
tftp> connect
(to) localhost
tftp> get firmware.bin
Transfer timed out.
正如您可能猜到的那样,“传输超时”对我来说并不是一件好事。
查看带有尾部的“/var/log/system.log”,我可以在循环中看到以下消息(说真的,这是一个巨大的消息量,我的 SSD HD 几乎烧毁了,因为日志写入时这种高密集 I/O) :
...
Jun 22 14:36:59 MacBook-Pro tftpd[57553]: setgid to -2: Operation not permitted
Jun 22 14:36:59 MacBook-Pro com.apple.xpc.launchd[1] (com.apple.tftpd[57553]): Service exited with abnormal code: 1
Jun 22 14:36:59 MacBook-Pro tftpd[57554]: setgid to -2: Operation not permitted
Jun 22 14:36:59 MacBook-Pro com.apple.xpc.launchd[1] (com.apple.tftpd[57554]): Service exited with abnormal code: 1
Jun 22 14:36:59 MacBook-Pro tftpd[57555]: setgid to -2: Operation not permitted
Jun 22 14:36:59 MacBook-Pro com.apple.xpc.launchd[1] (com.apple.tftpd[57555]): Service exited with abnormal code: 1
...
因为它是一个不间断的服务,导致密集的 I/O,我不得不停止它,这是我一直做的通常的过程:
$ launchctl stop com.apple.tftpd
$ launchctl unload -F /System/Library/LaunchDaemons/tftp.plist
我需要这个工具,因为我正在研究它。您能否评估正在发生的事情?也许某些操作系统更新将这种错误行为带到了 tftpd?
运行绑定到 UDP/69 的 tftpd 的 Docker 容器都无法工作。我什至擦除了我所有的磁盘内容并尝试进行全新的 OS X 安装,认为某种错误的更新导致我的系统出现混乱。
笔记:
已经在禁用系统完整性保护(无根)的情况下尝试过:
已经尝试使用“sudo”运行 launchctl 启动程序(如上所述)。
为了获得更多意见,我从Ask Different和Server Fault中复制了这个问题。
谢谢您最好的问候。