在ubuntu10.4下,安装的是tftp-hpa和tftpd-hpa而不是tftp和tptpd。因为,通过网上搜索到的帖子,安装tftp和 tptpd后,如果在本地测试的话是OK的。而换台电脑,真正的远程通过tftp来get文件或put文件。则总是显示Transfor time out。但是,通过 $ netstat -nlp命令查看,tftpd的确已经启动了呀。不知何解,故放弃tftp和tftpd。
1.安装tftp的服务端和客户端:
sudo apt-get install tftpd-hpa ;安装tftp服务端
sudo apt-get install tftp-hpa
2.安装xinetd
sudo apt-get install xinetd
3.在/下建立tftpboot目录,作为服务器的目录
sudo mkdir /tftpboot
释放权限:
sudo chmod 777 /tftpboot
4.配置TFTP服务器:
sudo gedit /etc/default/tftpd-hpa
打开tftpd-hpa文件,进行编辑。
其内容为:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
#TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
#TFTP_OPTIONS="--secure"
#服务器目录,需要设置权限为777
mkdir /tftpboot
chmod 777 /tftpoot
#这个目录要改为你自己的TFTP根目录~~~
TFTP_DIRECTORY="/home/thexin/tftpboot"
#参数设置看个人需要
TFTP_OPTIONS="-l -c -s"
5.重启xinetd服务
sudo /etc/init.d/xinetd restart
6.重启tftpd服务
sudo /etc/init.d/tftpd-hpa restart
7.这样就可以了,在/home/tftpd中建立一个文件
touch haha
切换到另一个目录中,然后
tftp localhost(或者是自己的IP)
tftp>get haha
这样就能在当前目录下get到 haha文件了(put是上传)
如果 get的时候显示 time out,应该是服务没有启动
sudo /etc/init.d/xinetd restart
sudo /etc/init.d/tftpd-hpa restart
这样应该就可以了
遇到的问题:
#tftp 192.168.1.47
#get zImage
Error code 0: Permission denied
原因:zImage 权限太高
解决办法:
$cd /home/tftpd
$ls -l zImage
-rwx------ 1 yan yan 1978508 2009-08-23 17:24 zImage
$chmod 777 zImage
这样就可以访问该文件
报错如下: TFTP error: 'Only absolute filenames allowed'
表示需要绝对路径: tftp c0000000 /srv/tftpdir/zImage