如需转载,请注明,未经授权,不得用于任何商业性的文章,书籍以及任何未列出但符合商业目的的用途。
==============================我是分割线==================================
网上有很多相关资料,不过几乎没有一个试验成功的~~T_T,最后还是自己摸索出来怎么弄,在这里记下来以便其他人能够解决此问题。
首先列出来使用的系统和虚拟机,系统不同无法保证以下步骤一定成功。
==============================我是分割线==================================
系统&环境
物理上使用的操作系统:Window XP SP3
虚拟操作系统:Ubuntu-10.04-desktop-正式版
虚拟机:Virtual Box 3.2.10 r66523
==============================我是分割线==================================
安装&测试
OK,书接上回,各位看官,我们先说步骤,再详细讨论相关的问题和解决办法。">"代表命令行提示符,如果不知道命令行是啥意思,对不起,请百度之,谢谢。
1) > sudo apt-get install tftp-hpa tftpd-hpa
2) > mkdir ~/tftproot
2) > sudo vi /etc/default/tftp-hpa
该文件内容如下
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
3)修改成如下内容
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
#TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_DIRECTORY="~/tftproot"
TFTP_ADDRESS="0.0.0.0:69"
#TFTP_OPTIONS="--secure"
TFTP_OPTIONS="-l -c -s"
注意, ~/tftproot 是我创建的目录,用来作为tftp的根目录
4)> sudo chmod 777 ~/tftproot
5)> sudo service tftp-hpa restart
OK,运行5)之后,如果你看到下面的输出信息,说明tftpd-hpa已经运行起来了,其process ID为2064
tftpd-hpa start/running, processing 2064
如果输出信息只有逗号前的部分 tftpd-hpa start/running, 没有后面的 processing 2064, 那非常有可能tftpd-hpa并没有运行。
现在我们可以测试一下tftp是否工作。
1)> echo hello world > ~/a.txt
2)> echo tftp test > ~/tftproot/b.txt
3)> cd ~
4)> tftp localhost 或者 tftp 127.0.0.1
5)> tftp> put a.txt
6)> tftp> get b.txt
7)> tftp> q
现在你可以检查~/和~/tftproot两个目录下是否存在a.txt和b.txt,如果上述命令没有任何报错,且两个文件都可以看见,那么恭喜你,你已经搞定tftp的安装了,而且下次reboot系统tftp也可以工作。如果不是,那么不好意思,你还得多看一会本文。
==============================分割线又来了==================================
问题集萃
1)Q: put命令时报错
Error code 0:Permission denied
A:tftproot访问权限设置问题,将其改为全权限(777或者rwxrwxrwx),参考安装步骤4)
2)Q:put命令时报错
tftp: [filename] :No such file or directory
A: 这说明你要put的文件不存在,检查在运行tftp命令时所在的路径里是否存在该文件
3)Q:get命令报错
Error code 1:File not found
A:检查你指定的tftp根目录里是否存在你想get的文件
4)Q:sudo service tftp-hpa restart 时只看到tftpd-hpa start/running, 没有后面的 processing 2064
A:检查是否已经运行了tftpd,注意这个和tftpd-hpa是不同的两个程序,二者是冲突的,如果一个运行,另一个就不能正常运行。想办法让tftpd不要运行。详见下面的其他注意事项2)
==============================又一个分割线==================================
其他注意事项
1)ubuntu 10.04下有两种tftp服务器,tftpd和tftpd-hpa,二者是冲突的,只能安装一个。我是用tftpd-hpa试成功的,另一个也许也可以,但是本文没有涵盖。
2)很多说法说要安装xinetd,然后还要写/etc/xinetd.d/tftp文件,这个是不需要的,而且如果装了,又装了tftpd(不是tftpd-hpa),那么再按照上述安装步骤会出现问题集萃里的4)。解决办法是删掉tftp文件
3)还有说法是安装inetd,这个我没有试,不过我想即使可以成功也没有上述方法简单,只要安装tftpd-hpa的两个包即可以。我有个类似洁癖的习惯,就是尽量安装最少的包来达到目的,我不想让好好的linux像windows一样丑陋。
==============================最后的分割线==================================
OK,到此本文就结束了,本人能力有限,肯定还有很多问题的细节没有覆盖到,这就需要各位看官一起努力完善了 ^_^