tftp 시작 문제: recvfrom: 비소켓에서의 소켓 작업

tftp 시작 문제: recvfrom: 비소켓에서의 소켓 작업

나는 tftpd(없는 아치에서 inetd) 간단한(내 생각에는) 작업(영구적인 작업은 아님)을 시작하려고 합니다.

그러나 tftpd <directory>매뉴얼에서 권장하는 대로 시작하면 시스템 로그에 다음 설명이 표시되면서 실패합니다.

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를 사용하는 사람이 없습니다. 방화벽을 일시적으로 비활성화했습니다.

답변1

tftpd여러 가지 구현이 있습니다. 일부는 inetd데몬에서만 실행될 수 있고 다른 일부는 독립 실행형 작업을 지원합니다. iputils tftpd이 글을 쓰는 시점에서 Linux는 inetd데몬 하에서의 실행만 지원하므로 해당 방식으로 실행해야 합니다. 다른 구현에는 독립형 데몬으로 실행하기 위한 하나 -l이상의 옵션이 있을 수 있습니다.--listen

관련 정보