Ubuntu使用tftp服务时出现transfer time out问题

在linux 嵌入式开发中,需要用tftp向硬件传输linux内核 但是在使用tftp服务时 出现transfer time out 困扰了一个星期都没解决

下面列出网上常见的解决方法 但是这些方法并没有解决我的问题

1.SELinux没有关闭
查看SELinux状态:
1、/usr/sbin/sestatus -v     ##如果SELinux status参数为enabled即为开启状态
SELinux status:              enabled
2、getenforce              ##也可以用这个命令检查
关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0               ##设置SELinux 成为permissive模式
                         ##setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
2.服务器防火墙未关闭
防火墙开启会导致,网络可以ping通,但无法使用tftp命令。
所以必须要关闭防火墙,使用下面的命令可以查看防火墙状态。
sudo ufw status
如果返回是
Status: active
说明防火墙开启
如果返回是
Status: inactive
说明防火墙关闭。
如果防火墙开启,采用下面的命令可以关闭防火墙。
sudo ufw disable
3.服务没有启动
sudo service tftpd-hpa restart
sudo /etc/init.d/xinetd reload
sudo /etc/init.d/xinetd restart
4.tftp版本问题

在这里插入图片描述
搜来搜去就是这几个答案 解决不了问题还得自己动手
我把文件复制到主机下 通过tftp32软件发现板子可以从主机上获取文件 也就是主机的tftp功能是正常的
然后我尝试从虚拟机获取主机上的文件 发现还是会出现transfer time out 的问题 因此我判断问题出在虚拟机上
使用wireshark抓包tftp服务 结果如下
抓包结果
显示主机管理禁止 也就是虚拟机禁止了
修改搜索词汇为Destination unreachable (Host administratively prohibited)
结果如下:Host administratively prohibited

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F

我可qnmgb
还是防火墙的问题 但是为什么我使用sudo ufw status的时候确实是显示了不活跃
也不知道这是什么时候的答案了 网上就抄来抄去 导致一直以为不是防火墙的问题

下面记录一下整个流程 供以后参考吧

开发环境

虚拟机使用的是VM
Ubuntu的版本为16.04 IP为192.168.1.100
主机使用W10 IP为192.168.1.99
嵌入式板子 IP为192.168.1.55

首先先确保各个IP之间能互相ping通 这是前提 其中主机和虚拟机再ping板子的时候可能出现主机无法访问的情况 这是正常的 因为在裸机中网卡不是一直开启的 只有在进行网络活动时才会打开
需要确保:
板子–>ping–>虚拟机 能ping的通 这时板子可以通过tftp获取虚拟机上的文件
板子–>ping–>主机 能ping的通 这时板子可以通过tftp获取主机上的文件
虚拟机 <–ping–>主机 能互相ping通 主机和虚拟机之间可以互传文件

设置虚拟机的IP

在开始栏里找到虚拟网络编辑器 右键以管理员方式打开
打开虚拟网络编辑器
选中桥接模式 选择桥接模式对应的网卡 即板子连接电脑时使用的网线接口对应的网卡
设置桥接网卡
打开虚拟机设置 修改网络连接为桥接方式
设置网络连接方式
进入ubuntu系统 修改固定IP
设置固定地址
其中ens33为unbuntu的桥接网卡名称 可能跟图片的不一样并不影响
也可以通过命令方式sudo ifconfig ens33 192.168.1.100强制修改 重启后失效
修改后查看IP
修改后IP

设置主机IP

找到桥接对应的网卡
设置主机IP
右键属性 internet协议4 打开后修改如下图
修改IP
至此 主机和虚拟机之间能互相ping通
主机ping虚拟机
虚拟机ping主机
关于板子的IP设置方式就不再赘述了

TFTP服务安装

ubuntu下安装可以参考如下链接 这是我看到比较好的安装教程
Ubuntu下配置tftp服务

主机下使用tftp服务需要下载tftp32软件 以及相关设置
tftp32软件下载
相关设置

安装好tftp服务后 可以先在主机和虚拟机之间进行尝试 如果主机和虚拟机之间没有问题 那板子和虚拟机之间应该也不会有问题

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值