Linux

Linux:tftp 不工作,傳輸超時,可能是什麼原因?

  • December 21, 2015

我有一個執行 cobbler 和 tftp 伺服器的伺服器。我的任務是配置一個讀寫 tftp 伺服器。

tftp是通過xinetd配置的,配置文件如下:

service tftp
{
       disable                 = no
       socket_type             = dgram
       protocol                = udp
       wait                    = yes
       user                    = root
       server                  = /usr/sbin/in.tftpd
       server_args             = -B 1380 -v -s -c /var/lib/tftpboot
       per_source              = 11
       cps                     = 100 2
       flags                   = IPv4
}

問題是,即使它看起來有效,但它不接受連接並以“傳輸超時”消息退出。

一些細節:

  • tftp 目錄為:/var/lib/tftpboot
  • selinux 和 iptables 被禁用
  • 文件夾權限如下:

drwxrw-rw-. 8 root root 4096 2015-12-20 11:17 /var/lib/tftpboot/

  • netstat 顯示埠已打開:

udp 0 0 0.0.0.0:69 0.0.0.0:* 21455/xinetd

  • /var/log/messages日誌中沒有錯誤

這是我測試配置的方式:

[root@ams2srv1 ~]# touch file.test
[root@ams2srv1 ~]# tftp localhost
tftp> put file.test
Transfer timed out.

tftp> quit
[root@ams2srv1 ~]# tftp localhost -c put file.test
Transfer timed out.
[root@ams2srv1 ~]#

[root@ams2srv1 ~]# touch /var/lib/tftpboot/test.file
[root@ams2srv1 ~]# tftp localhost -c get test.file
Transfer timed out.

編輯#1: 在連接到機器的真實 IP 時嘗試相同的命令時,會出現一條新的錯誤消息,如下所示:

[root@ams2srv1 ~]# tftp 10.x.x.38
tftp> put test
Error code 0: Permission denied
tftp>

但是/var/lib/tftpboot文件夾的權限是777,如上圖。

關於如何解決這個問題的任何想法?

iptables 已禁用,但您是否刷新了在禁用服務之前載入的任何規則?

另外,我會在 /etc/xinetd.d/tftp 中使用最基本的 server_args 進行測試…例如:

  server_args             = -s /var/lib/tftpboot

編輯:在我的機器上,tftp 127.0.0.1 和 tftp 192.168.0.2 都可以正常工作,但 tftp localhost 給出的結果與您觀察到的相同。

引用自:https://serverfault.com/questions/744304