这几天公司需要将一个文件从Windows7传到装在虚拟机中的Linux系统中,由于Linux系统只开了tftp协议的69端口,只能通过tftp协议传送文件。网上找了好多的教程,但是感觉都比较的乱,综合了好几个网站给的教程后,给出了一个相对完整的教程,一方面作为自己的存档,另一方面可以分享给大家,相信所有和我一样“菜鸟”级的选手在看过这篇文档后都会轻松的利用tftp协议在Windows和Ubuntu之间传送文件。个人的电脑配置为Windows7,在VMware虚拟机中安装了Ubuntu14.04。
传送文件的过程大致可以分为这几步:
1、在Ubuntu14.04中安装tftp客户端和服务器端。
2、配置Ubuntu系统tftp服务器端文件。
3、配置Ubuntu系统和Windows7 系统的IP地址为静态IP。
4、在Windows7中安装tftpd32应用程序。
5、利用tftp协议传送文件。
一、安装tftp服务器和客户端
注意:此时Ubuntu虚拟机应该是可以上网的,如果不能上网请检查虚拟机“设置”中的网络适配器选择的是不是桥接模式或者NAT模式。最好选择桥接模式,原因一会儿就知道了。
1、Ubuntu系统打开后,点击左边“启动器”第一个图标,搜索Terminal(中文名称为终端),打开后右键左边栏打开后的图标,将打开后的终端固定在“启动器”。
2、在打开的终端中输入“apt-get install tftp-hpa tftpd-hpa”,表示安装tftp客户端(tftp-hpa)和tftp服务器端(tftpd-hpa),如果提示如图1所示的权限不够,则需要输入“sudo -s”后回车,在输入密码后,就可以得到root最高权限。如图2所示。
图1
图2
3、再次输入“apt-get install tftp-hpa tftpd-hpa”,就会开始安装tftp客户端和服务器端了,中间如果提示是否下载(Yor N),选择Y就是了。中间会下载一些安装文件,如图3所示。如果不放心没有安装上,可以再次执行安装命令,如果出现图4所示,提示已经安装上,就表明安装成功了。
图3
图4
二、配置tftp服务器
4、在配置tftp服务器之前建议大家安装一下vim,这对tftp文件的修改会非常的方便。安装vim命令为“apt-get install vim”,安装过程和安装tftp基本上一样。如图5所示。
图5
5、配置tftp服务器文件
安装好vim后开始配置tftp服务器。输入“vi /etc/default/tftpd-hpa”后会进到如图6所示的配置界面。
图6
6、将图标移至TFTP_DIRECTORY开头,这时按下键盘上的“i”,表示插入/修改文件内容,这时在命令行的左下角会出现“插入”字样,将文件内容修改为如图7所示的内容后,按“Esc”键表示退出修改,之后输入“:wq”(此时的:wq应该在命令行最左下面)表示保存并退出。这样tftp服务器就配置好了。
图7
图8
7、重启tftp服务器
退出后,在命令行中输入“sudo service tftpd-hpa restart”表示重新启动tftp服务器。
三、配置IP地址
如果在刚开始虚拟机的网络配置选择为“桥接模式”,这是就可以直接配置IP地址了。如果选择的是“NAT模式”,则需要重新关机,将模式设置为“桥接模式”。
8、查看IP地址
在命令行中输入“ifconfig -a”,查看本机的IP地址。如图9所示。此时因为选择的是桥接模式,网络会自动给Ubuntu分配一个动态IP地址,笔者的IP地址为10.0.6.25。
图9
9、修改IP地址为静态IP地址
在左边启动器中找到“System Settings(系统设置)”,点进去后找到“Network(网络)”。打开后如图10所示。点击右下角“options…”按钮,进入到如图11所示的“Editing Wired connection 1”界面。
图10
图11
10、将图11的网络连接配置成为如图12所示,主要配置的是Method、Addresses和DNS选项。配置结束后,点击保存按钮。之后“Log out”后IP地址就改成了静态IP。
图12
11、Windows的IP地址也需要设置成和Ubuntu系统在一个网段。并且能够相互ping通,在此不多赘述。
接下来就是最关键的地方了。
由于Windows本身并没有tftp服务器,只有tftp客户端。所以如果说想要将Ubuntu作为客户端,Windows作为服务器端的话,需要下载tftpd32应用程序,这样的话Windows就可以作为服务器了。如果将Ubuntu作为服务器端,Windows作为客户端的话,由于Ubuntu已经安装tftpd,就不需要做任何操作。
四、Ubuntu为客户端,Windows为服务器
12、在Windows端打开刚刚下载好的tftpd32应用程序。这时tftpd会自动识别Windows的IP地址,点击Browse可以选择将传输的文件存放的位置(默认在tftpd32安装的文件夹下),ShowDir按钮可以查看选择的存放文件夹下的文件信息。如图13所示。
图13
13、利用命令行的方式生成两个txt文件
利用命令行生成两个txt文件,需要对一些基本的命令有一定的了解。如下图13所示,“ls”表示查看该目录下文件夹/文件信息,“cd文件夹名称”表示进入文件夹,“echo “hello”>>a.txt”表示在所在的目录下创建一个名称为a的txt文件,文件内容为“hello”。
图14
14、传输文件
在Ubuntu端命令行下输入如下命令:如图15,16所示
root@ubuntu:~/tftpboot#tftp
(to)10.0.0.180 //10.0.0.180为服务器端的IP地址
tftp>put b.txt //put表示将客户端的文件发送给服务器端
tftp>get c.txt //get表示将客户端得到服务器端的文件
图15
图16
五、Windows作为客户端,Ubuntu作为服务器端
12、重启Ubuntu的tftpd服务
在把Ubuntu作为服务器端时,一般需要重启服务器“sudo service tftpd-hpa restart”。如图17所示,会提示服务器重启成功。
图17
13、传送文件
重启Ubuntu的服务器后,就可以在Windows客户端传送文件了。在Windows的命令行中输入“tftp –i 10.0.0.121 PUT a.bin”就表示把a.bin这个文件放到IP地址为10.0.0.121的终端中(如图18所示)。Windows端对tftp的定义为:“tftp [–i]服务器的IP地址 [PUT/GET]客户端文件名称 [服务器端的文件名称]”,服务器端的文件名称可以省略,也可不省略。如图19就是没有省略服务器端的文件名称,并且把a.bin改名为b.txt,图20就是Ubuntu中收到的文件。
图18
图19
图20