Tftpd

tftp啟動問題:recvfrom: Socket operation on non-socket

  • October 2, 2015

我正在嘗試tftpd(在沒有 的拱門上inetd)開始一個簡單的(或者我認為是這樣的)操作(不是永久性的)。

但是,tftpd <directory>按照手冊中的建議啟動失敗,並在 syslog 中顯示此註釋:

tftpd[PID]: recvfrom: Socket operation on non-socket

strace tftpd說:

(...)
geteuid()                               = 0
setgid(65534)                           = 0
setuid(65534)                           = 0
ioctl(0, FIONBIO, [1])                  = 0
recvfrom(0, 0x603600, 516, 0, 0x6035d0, 0x603828) = -1 ENOTSOCK (Socket operation on non-socket)
brk(0)                                  = 0xbe9000
brk(0xc0a000)                           = 0xc0a000
(...)

那麼發生了什麼?還沒有人使用 UDP 埠 69,我暫時禁用了防火牆。

tftpd有多種實現方式;有些只能在inetd守護程序下執行,而另一些則支持獨立操作。撰寫本文時的 Linuxiputils tftpd僅支持在inetd守護程序下執行,因此必須以這種方式執行。其他實現可能具有作為獨立守護程序執行的選項-l--listen

引用自:https://unix.stackexchange.com/questions/233556