TFTP 구성 문제

TFTP 구성 문제

내 시스템에서 TFTP가 제대로 작동하도록 할 수 없습니다. 나는 /etc/default/tftpd-hpa모든 것과 마찬가지로 권한을 설정했지만 /srv/tftp/이를 수행할 때마다 시간 초과가 발생합니다(그리고 localhost에서 127.0.0.1에 연결됩니다). TFTP가 어딘가에 문서화되어 있지 않은 것 같은데요, 그렇죠? 이 문제를 디버깅하는 방법에 대한 도움을 주시면 대단히 감사하겠습니다!777/srv/get test

편집 #1

/srv이것은 가 소유한 콘텐츠가 있는 (K)Ubuntu 시스템에 있었고 root:root지금은 으로 변경했지만 nobody:nogroup여전히 동일한 시간 초과가 발생합니다.

$ ls -la
total 12
drwxrwxrwx 3 nobody nogroup 4096 Nov  5 08:47 .
drwxrwxrwx 3 nobody nogroup 4096 Nov  5  2013 ..
drwxrwxrwx 2 nobody nogroup 4096 Nov  5  2013 artifacts
-rwxrwxrwx 1 nobody nogroup    0 Nov  5 08:48 test
-rw-r--r-- 1 reg    reg        0 Nov  5 08:47 vx.bin
reg@ubuntu:/srv/tftp$tftp 127.0.0.1
tftp> get test
Transfer timed out.

편집 #2

tftp실행 중인 인스턴스가 없는 것 같다는 것을 깨닫고 부팅을 시도 #tftp했는데 Ubuntu에서 apt-get install cobblerCobbler를 설치해야 한다고 해서 그렇게 했습니다. 그런 다음 다시 시도하여 다음과 같은 결과를 얻었습니다.

# tftpd
Traceback (most recent call last):
  File "/usr/sbin/tftpd", line 51, in <module>
    import tornado.ioloop as ioloop
ImportError: No module named tornado.ioloop
root@ubuntu:/srv# 

이것이 무엇을 의미하는지 궁금합니다. 단서가 있습니까?

답변1

나는 최근에 이 문제를 몇 번이나 직접 처리해야 했는데, 문제를 해결하기 위해 나 자신에게 던진 질문은 다음과 같습니다.

  • tftpd는 xinetd에서 실행됩니까, 아니면 별도의 데몬으로 실행됩니까?
  • /etc/hosts.allow 또는hosts.deny를 변경해야 합니다.
  • SELinux가 활성화되어 있습니까("getenforce" 명령을 사용하여 확인)?
  • 호스트 방화벽이 실행되고 있습니까? (서비스 iptables 상태)
  • tftpd가 데이터 디렉토리로 사용하고 있는 디렉토리가 확실합니까?
  • "가져오려는" 파일이 실제로 존재합니까?

내 내기는 위의 조합입니다. 방화벽, SELinux 및 데이터 디렉터리 위치 등.

/srv가 모드 0777에서 열리는 것을 원하지 않습니다. 그리고 tftp 데이터 디렉터리에 대해서도 이 작업을 수행할 필요가 없습니다. 누구나 읽을 수 있는 파일만 있으면 됩니다. 파일을 서버에 올려 놓지 않는 한. 이 경우 미리 파일을 생성하고 파일을 작성할 때 누구나 쓸 수 있도록 설정해야 합니다.

행운을 빌어요!

답변2

나는 결국 따라 갔다.이 가이드이는 openbsd-inetd이 프로그램도 설치되어야 하며 RUN_DAEMON="yes"tftp 구성 파일에서도 설정 해야 함을 나타냅니다 /etc/default/tftpd-hpa.

업데이트 #1

위의 링크는 더 이상 작동하지 않으므로 여기에서 다음과 같은 대안을 찾았습니다. Ubuntu 12.04 LTS에서 TFTP 서버 실행(정확함)고쳐 쓰다.

답변3

방금 Debian Jessie에서 "전송 시간이 초과되었습니다."라는 문제가 발생했습니다.

에는 /etc/default/tftpd-hpa주소 줄이 있습니다: TFTP_ADDRESS="0.0.0.0:69".

전체 서버 주소로 바꾸세요. 예를 들어:

TFTP_ADDRESS="192.168.99.10:69"

그리고 데몬을 다시 시작하세요. 이것으로 문제가 해결된 것 같습니다.

데비안의 이 변수는 --address데몬에 대한 옵션을 설정합니다. 배포판마다 다르게 설정해야 할 수도 있지만, 결국 다음과 같이 하면 주소가 표시됩니다 ps x.

# ps x | grep tftp
3988 ?        Ss     0:00 /usr/sbin/in.tftpd --listen --user tftp --address 192.168.99.10:69 --secure /docs/tftp-pxe

서버나 클라이언트에 버그가 있는 것 같습니다.

답변4

CentOS/Fedora라면 이와 같이 TFTP에서 자세한 메시징을 활성화할 수 있습니다. 구성 파일에서 /etc/xinetd.d/tftpserver_args 변수를 다음으로 변경합니다.

server_args = -v -v -l /var/log/tftpd

반드시 서버를 다시 시작하세요. 다른 -v스위치를 추가하여 더 자세하게 만들 수 있습니다.

관련 정보