TFTP:无法发送/接收文件,显示错误:TFTP,操作码:错误代码(5)

TFTP:无法发送/接收文件,显示错误:TFTP,操作码:错误代码(5)

我尝试使用 TFTP 从网络交换机发送/接收文件到 ubuntu(Windows 10 Pro 上的 VirtualBox),但收到错误代码 5

通过执行下面提到的步骤,我的本地主机似乎正在使用 TFTP 服务器,我可以使用本地主机发送和接收文件:

/home/abc# tftp localhost

tftp> put test

Sent 16 bytes in 0.0 seconds

tftp> get test

Received 16 bytes in 0.0 seconds

root@abc:/home/abc# ls -l /var/lib/tftpboot/
total 4
-rwxrwxrwx 1 root root 14 Sep  6 18:03 test

当我在交换机中使用命令发送/接收文件时,我收到错误消息:

简单文件传输协议

操作码:错误代码 (5)

[目标文件:测试]

错误代码:访问冲突 (2)

错误消息:访问冲突

[专家信息(警告/响应):TFTP ERROR 数据包]

[TFTP错误数据包]

[严重级别:警告]

[组:回应]

您能指导我如何解决这个问题吗?

https://icesquare.com/wordpress/how-to-setup-tftp-on-ubuntu/

首先,让我们安装所有必需的软件包:

sudo apt-get install xinetd tftpd tftp -y

接下来,我们需要创建一个配置文件:

sudo nano /etc/xinetd.d/tftp

将以下内容放入文件中。

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

在server_args中,我有var/lib/tftpboot,它代表tftp根目录的位置,即/var/lib/tftpboot。请注意,我跳过了根目录 /。

现在让我们更改目录的所有权:

sudo mkdir /var/lib/tftpboot
sudo chown -R nobody:nobody /var/lib/tftpboot
sudo chmod -R 777 /var/lib/tftpboot

并启动TFTP服务:

sudo service xinetd stop
sudo service xinetd start

验证 TFTP 是否正常运行:

netstat -na | grep LIST | grep 69
You should see something like this:
tcp        0      0 0.0.0.0:69              0.0.0.0:*     LISTEN

测试:将文件上传到 TFTP 服务器 现在让我们先登录服务器来测试 TFTP 服务器:

tftp localhost 并上传文件:

tftp> put myfile.jpg
Sent 56733279 bytes in 5.7 seconds
Quit:
q

确保文件已上传:

ls -l /var/lib/tftpboot

测试:从 TFTP 服务器下载文件 现在,让我们转到另一个目录并下载刚刚上传的文件。

cd some_other_directory

再次登录tftp服务器:

tftp localhost

并获取文件:

tftp> get myfile.jpg
Received 56733279 bytes in 5.7 seconds

答案1

问题是,交换机网络 IP 和 Ubuntu 机器 IP 地址位于不同的网络上。通过设置我的 Ubuntu 机器的静态 IP 地址(与交换机 IP 相同的网络 IP),问题已得到解决。

相关内容