![TFTP:无法发送/接收文件,显示错误:TFTP,操作码:错误代码(5)](https://linux22.com/image/160225/TFTP%EF%BC%9A%E6%97%A0%E6%B3%95%E5%8F%91%E9%80%81%2F%E6%8E%A5%E6%94%B6%E6%96%87%E4%BB%B6%EF%BC%8C%E6%98%BE%E7%A4%BA%E9%94%99%E8%AF%AF%EF%BC%9ATFTP%EF%BC%8C%E6%93%8D%E4%BD%9C%E7%A0%81%EF%BC%9A%E9%94%99%E8%AF%AF%E4%BB%A3%E7%A0%81(5).png)
我尝试使用 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),问题已得到解决。