나는 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