tftpd-hpa 服务器(客户端超时)请帮忙

tftpd-hpa 服务器(客户端超时)请帮忙

我对 Ubuntu 14.04 版本还不太熟悉:
没有可用的 LSB 模块。

我正在尝试设置一个 tftp 服务器,主要用于备份 cisco ios 配置。我按照所有教程操作,但一无所获。问题似乎是超时,等待来自客户端的写入请求:

在我尝试转移之前:

ps -aux | grep tftp
root      7804  0.0  0.0  15128   160 ?        Ss   10:48   0:00 /usr/sbin/in.tftpd --listen --user tftp --address 0.0.0.0:69 --secure -c -vv -i /var/lib/tftpboot

在我使用 Windows 7 tftp 客户端发送 put 请求后:

jarrod@Dangerfield:~$ ps -aux | grep tftp
root      7804  0.0  0.0  15128   160 ?        Ss   10:48   0:00 /usr/sbin/in.tftpd --listen --user tftp --address 0.0.0.0:69 --secure -c -vv -i /var/lib/tftpboot
tftp      8819  0.0  0.0  15132   632 ?        S    11:04   0:00 /usr/sbin/in.tftpd --listen --user tftp --address 0.0.0.0:69 --secure -c -vv -i /var/lib/tftpboot

您可以看到它打开了第二个连接,然后它超时了。

然后创建一个空文件:

-rw-rw-rw- 1 tftp tftp 0 Apr 28 11:04 AcousticList.txt

在目录中:

drwxrwxrwx 2 tftp tftp 4096 Apr 28 11:04 tftpboot

这些是我的默认设置:

:/etc/default$ more tftpd-hpa
# /etc/default/tftpd-hpa

#RUN_DAEMON="yes"
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure -c -vv -i"

我有 -c 用于创建文件,安全用于一个目录,-vv 用于详细日志记录。我在其中一个帮助文件中找到了 i 选项。添加它既没有帮助也没有坏处。它总是做同样的事情。UFW
已禁用。

/etc/default$ sudo service ufw status
ufw stop/waiting

我看不出还有什么可以阻止这种情况。

我 kill -9 root 和 tftp 用户进程。root 进程立即再次开始监听。tftp 用户进程仅在您启动 tftp 传输时启动。这只是使用 upstart。我曾尝试在独立模式下运行它,结果相同。

in.tftpd[8897]: WRQ from 192.168.0.6 filename AcousticList.txt

我试过跑步wiresharksudo tcpdump -vvv -i eth0 | grep tftp

我实际上并没有取得任何进展,只是写入请求进来,然后客户端出现超时。

如果有人能帮助我,我将不胜感激,因为我已经走投无路了。

答案1

这样对我有用

安装以下软件包。

sudo apt-get install xinetd tftpd tftp

创建/etc/xinetd.d/tftp并放置此条目

service tftp
{
protocol        = udp
port            = 69
socket_type     = dgram
wait            = yes
user            = nobody
server          = /usr/sbin/in.tftpd
server_args     = /tftpboot
disable         = no
}

创建一个文件夹/tftpboot,该文件夹应与您在 server_args 中提供的内容相匹配。大多数情况下它将是 tftpboot

sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot

重新启动 xinetd 服务。

sudo /etc/init.d/xinetd restart

答案2

我也遇到了同样的问题。这是由 Windows 防火墙引起的。添加 tftp 客户端后,您还需要确保防火墙允许它

进入WindowsFirewall > allowed programs > allowed another program > 找到tftp.exec:\windows\systems32\tftp.exe

答案3

检查防火墙状态并禁用它

$ sudo ufw disable
Firewall stopped and disabled on system startup

然后重新启动 xinetd 服务。

$ sudo /etc/init.d/xinetd restart

 * Stopping internet superserver  xinetd  [ OK ] 
 * Starting internet superserver xinetd   [ OK ] 

相关内容