使用场景:

  把windows下的文件写入到linux(嵌入式设备中);

下载地址:

  https://bitbucket.org/phjounin/tftpd64/wiki/Download%20Tftpd64.md

  或者在github上下载;

使用过程:

  1、下载安装完成后,运行程序:

  

  2、选择windows下文件所在的文件夹:

  在安装目录创建文件夹data,将要发送到Linux中的文件放在这个文件夹中;

  3、选择服务器接口:

  这里选择的ip地址是在linux上用到的主机地址:(假设选择的是192.168.100.1这个地址)

  4、做好上面的选择就可以使用了:

  在linux系统终端输入:

  a、从windows上传到linux:tftp -r 文件 -g 服务器地址

  b、从linux上传到windows:tftp -l 文件 -p 服务器地址

  还有的人说成读写:

  读取文件: tftp -r Remove_file -g Host_IP

  写入文件: tftp -l Local_file -p Host_IP

  5、windows下打开tftp应用:

    在程序和功能中-》启用或关闭Windows功能:

    

注意:  

  安装完的tftp64可能不能运行,需要手动启动服务:

  在计算机管理中的服务项中:

  

  但是在电脑重启之后,还需要手动启动,否则不能运行。我们可以修改其属性:

  设置为自动(延迟启动),这样在电脑重启之后就不再用手动去启动了。

    我有测试了一下,这样修改后,电脑重启后还是要手动启动,才能启动tftpd;

在使用的时候可以ping通,但是无法下载,需要将windows下的防火墙关掉,当然这种方式简单粗暴,但是有安全隐患,使用完后即使将防火墙打开。

下面有更详细的介绍,转自:https://blog.csdn.net/mango_girl/article/details/45332095

TFTPD32是一个不足1M的小工具,但最近却帮了大忙。在研究网络安装的过程中,了解了一下这个工具,下面汇总一下。

1. TFTP介绍

TFTP = Trivial File Transfer Protocol(简单文件传输协议),是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议。

TFTP基于UDP协议实现,使用UDP的69端口,因此它可以穿越许多防火墙。不过它也有缺点,比如传送不可靠、没有密码验证等。

TFTP协议设计时的目的是进行小文件传输,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,不能进行交互,它传输8位数据。可以将它看作是FTP的简化版。

TFTP代码所占的内存较小,因此执行时开销小,可以灵活应用在小容量只读存储器上。

2. TFTPD32介绍

TFTPD32是一个集成DHCP, TFTP, SNTP和Syslog多种服务的袖珍网络服务器包,同时提供TFTP客户端应用,tsize, blocksize 和 timeou支持等等。

(1)全局功能设置

打开进入主窗口后,可以在“Current  Directory”设置文件下载目录,默认的下载目录即tftp所在目录,设置完可以点击“Show Dir”查看;

在“Server interface”选择本机将要进行通信的IP,如下图所示。

点击“settings”进入功能设置(Settings)窗口,如下图所示。可以在GLOBAL标签选择需要开启的服务;在其余标签进行具体的server配置。

(2)TFTP server设置

在Settings窗口,点击TFTP标签进行TFTP server配置,设置窗口及可参考汉化窗口截图如下所示。

在"Base Directory"中,输入要上传的文件目录,这个目录默认为空(百度百科似乎有上传目录必须跟tftp所在目录一致的说法,没注意不清楚,但使用的时候跟下载目录设置一样就没问题)。

厉害的设置在“Advanced TFTP Options”里,给不同的选项打钩就可以实现不同场合下的应用,比如下图的汉化窗口就适用于PXE网络启动下载。

   

(3)TFTP client设置(纯理论,未实践)

在server建立好之后,client端就可以与server读/写文件了(但server不能对client进行文件读写)。

在主窗口点开“Tftp Client”标签,在"Host"填入server的IP,如下图。

如果要读文件,就在“Remote File”填入要读取的文件名,点击“Get”;

如果要写入文件,就在“Local File”填入要写入的文件名,点击“Put”。

另外,

对于windows,有自带TFTP客户端。可以在命令行模式下通过命令行传输文件。

“开始--> 运行”--> 输入"CMD"--> cd Current_Directory进入tftp所在目录,

读取文件则Tftp -i Host_IP get Remote_File;

写入文件则Tftp -i Host_IP put Local_File。

windows自带TFTP客户端默认是开启的,这也导致会被网络蠕虫利用来获取需要的攻击程序和后门程序的风险。

该服务的开启和关闭可在%systemroot%\system32\drivers\etc\services文件中设定,如下图。

修改tftp服务对应的udp端口号,69/udp为开启服务,0/udp为关闭服务。

(4)DHCP server设置

DHCP = Dynamic Host Configuration Protocol(动态主机分配协议),DHCP 协议是基于UDP层之上的应用。

DHCP的前身是 BOOTP。BOOTP 原本是用于无磁盘主机连接的网络上面的:网络主机使用 BOOT ROM 而不是磁盘起动并连接上网络,BOOTP 则可以自动地为那些主机设定 TCP/IP 环境。但 BOOTP 的设置是静态的,而DHCP是动态的。

DHCP server一般会提供IP地址资源池、子网掩码、默认网关的配置,也可以提供域名服务 (DNS) 服务器地址和 Windows Internet 名称服务 (WINS) 服务器地址。对于网络启动主机还会提供启动文件名(然后网络主机再到tftp server下载),因此tftpd32配置也类似,如下图所示。

3.  TFTPD32实际应用

(1)网络安装系统

网络安装可使用TFTPD32同时配置TFTP server和DHCP server。

首先设置好tftp目录,然后到全局功能设置里选择开启TFTP server和DHCP server,最后到settings依次配置TFTP和DHCP。

   

  

(2)windows之间文件互传(纯理论,未实践)

由于tftp server是不能从client端读写文件的,所以要实现windows之间的文件互传,需要在互传文件的windows主机上均安装TFTPD32并互为tftp server。需要读写的一方,进入Tftp Client执行读写操作即可。

(3)linux和windows之间文件传送(纯理论,未实践)

TFTPD32目前看来只是一个windows平台下的应用,所以要安装在windows主机上。这样可以在windows主机上使用TFTPD32建立TFTP server,linux主机作为TFTP client从windows主机读写文件。(若要windows主机从linux主机读写文件,则可以使用WinSCP)

读取文件 tftp -r Remote_File -g Host_IP

写入文件 tftp -l Local_File -p Host_IP

参考:

TFTPD32_百度百科

windows和linux系统下数据传输工具——tftpd32使用说明

细说Windows tftp服务器配置

tftp32.exe工具的用法

Tftpd32使用说明_百度文库

DHCP(动态主机配置协议)基本信息

tftpd64-SE使用的更多相关文章

  1. eclipse SE增加Web开发插件

    最近接触了些java项目,之前安装了eclipse SE版本.没有Web开发插件,调试不了Web代码.点击“Window”--“Preference” 左边菜单栏是找不到“Server”项来配置服务器 ...

  2. 关于 Java(TM) Platform SE binary 已停止工作 的解决方法

    一.问题描述 昨天晚上Myeclipse还用着好好的,今天早上打开工程,只要运行就卡住,大半天弹出个消息窗口:Java(TM) Platform SE binary 已停止工作. 如图 关闭Myecl ...

  3. Using Headless Mode in the Java SE Platform--转

    原文地址: By Artem Ananiev and Alla Redko, June 2006     Articles Index This article explains how to use ...

  4. Mac下打开eclipse 始终提示 你需要安装Java SE 6 Runtime

    Mac下打开eclipse 始终提示 你需要安装Java SE 6 Runtime        周银辉 我的mac os 版本是10.9.2,  JDK配置得好好的,但打开eclipse时还是提示需 ...

  5. 软件工程(FZU2015)赛季得分榜,第11回合(beta冲刺+SE总结)

    目录 第一回合 第二回合 第三回合 第四回合 第五回合 第6回合 第7回合 第8回合 第9回合 第10回合 第11回合 增补作业 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分:b ...

  6. mac下需要安装旧 Java SE 6 才能打开程序解决办法

    今天我在mac系统下面安装myeclipse2014(myeclipse-pro-2014-GA-offline-installer-macosx.dmg)的时候,发现显示错误: 您需要安装旧 Jav ...

  7. ubuntu配置 Java SE 1.6

    今天编译android 4.0时提示如下错误:   You are attempting to build with the incorrect version of java. Your versi ...

  8. eclipse SE增加Web开发插件;安装配置Apache

    在eclipse SE版本点击"Help"--"Install New Software..."--"Work with"中输入" ...

  9. 《写给大忙人看的java se 8》笔记

    现在才来了解java8,是不是后知后觉了点? 新的编程技术,个人不喜欢第一时间跟进. 待社区已有实践积淀再切入似乎更划算些? 一点点精明的考虑. 不多说,上代码. //读<写给大忙人看的java ...

  10. Java SE 基础:注释

    Java SE 基础:注释 一.注释定义 用于解释说明程序的文字. 二.注释的作用 1.解释说明程序,提高程序的可读性 2.可以帮助我们调试程序:通过注释代码块,检测错误位置 三.格式 1.单行注释 ...

随机推荐

  1. 视图家族之mixins视图工具类与generics工具视图类

    视图家族之mixins视图工具类与generics工具视图类 一.mixins视图工具类 作用: 提供了几种后端视图(对数据资源进行曾删改查)处理流程的实现,如果需要编写的视图属于这五种,则视图可以通 ...

  2. C#-类型转换和引用转换

    对象的引用可以被: 隐式地向上转换 显示的向下转换 向上转换 向上转换是指一个从一个基类指向一个子类: House house = new House(); Asset asset = house; ...

  3. 操作uwsgi命令

    uwsgi -i 你的目录/uwsgi.ini & 后台开启uwsgi pkill -f uwsgi 重启uwsgi

  4. VCRedist_x86.exe Vcredist_x64.exe

    Update for Visual C++ 2013 and Visual C++ Redistributable Package https://support.microsoft.com/en-u ...

  5. Storm 重启排查

    Storm实战常见问题及解决方案 https://www.cnblogs.com/catkins/p/5302634.html Storm 重启排查(续) https://www.iteye.com/ ...

  6. 文件下载post请求,返回文件流转换zip,

    最近一个需求是批量下载文件,最后打包成zip包,post请求, 因为是文件流下载,所以在取后台数据的时候,要多传递一个[responseType: ‘blob’]这个参数 download() { t ...

  7. JavaScript学习笔记 - 进阶篇(5)- 事件响应

    什么是事件 JavaScript 创建动态页面.事件是可以被 JavaScript 侦测到的行为. 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件. 比如说,当用户单击 ...

  8. 网站的ssl证书即将过期,需要续费证书并更新

    SSL这个证书的续费也挺奇怪,续费跟新购买一样. 证书这个东西,申请成功之后,每次都要重新下载,需要处理好格式之后,放在服务器的指定目录里. 大致操作如下: 首先,申请/续费证书,证书下来后,下载下来 ...

  9. 01 语言基础+高级:1-7 异常与多线程_day06 【线程、同步】

    day06 [线程.同步] 主要内容 线程 同步 线程状态 一.学习目标 1. 能够描述Java中多线程运行原理 2. 能够使用继承类的方式创建多线程 3. 能够使用实现接口的方式创建多线程 4. 能 ...

  10. Linux c 操作MySQL

    #include <mysql/mysql.h>#include <stdio.h>#include <stdlib.h>int main() { MYSQL *c ...