在Ubuntu12中安装tftp的说明有很多,但是很多方法老报错,或者连接不上,或者显示找不到文件,经过摸索,我整理了一个简单有效到安装方法。下面的操作都是在root权限下。
第一步:在终端中输入下面到命令,安装tftp软件
apt-get install tftpd-hpa tftp-hpa
第二步,建立tftp目录,并提升权限
我建立到tftp是 /home/lqc/tftpboot,然后提升其权限
chmod 777 -R /home/lqc/tftpboot
第三步,配置tftp, 在终端输入下面到命令,打开tftp的默认配置文件
gedit /etc/default/tftpd-hpa
将文件里的内容设置为:
<span style="font-size:18px;"># /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/lqc/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"</span>
然后保存退出。
第四步:重启tftp服务
service tftpd-hpa restart
第五步:测试
在tftpboot中创建一个文件 tftp_test ,里面输入几个字符。
然后在终端输入
tftp 127.0.0.1
然后在tftp中输入get tftp_test,观察文件是否保存到当前文件夹下。
但是有时候会遇到问题,网上有很多高质量的博客,这里复制一个很有用的博客:
1.安装tftp的服务端和客户端:
sudo apt-get install tftpd-hpa ;安装tftp服务端
sudo apt-get install tftp-hpa ;安装tftp客户端
2.安装xinetd
sudo apt-get install xinetd
3.安装完 xinetd应该会建立目录/etc/xinetd.d,在此目录中添加文件:tftpd
sudo touch tftpd
4.sudo gedit /etc/xinetd.d/tftpd
想tftpd中添加如下内容:
service tftp
{
disable = no
socket_type = dgram
wait = no
user = root
protocol = udp
server = /usr/sbin/in.tftpd
server_args = -s /home/tftpd ----------------------------自己创建的tftp主目录
log_on_success = PID HOST DURATION
log_on_failure = HOST
}
5.在/home下建立tftpd目录,作为服务器的目录
sudo mkdir /home/tftpd
释放权限:
sudo chmod 777 /home/tftpd
6.打开inetd.conf 注释掉内容:
sudo gedit /etc/inetd.conf
#tftp dgram udp wait nobody /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot ----------若没有请自己添加此句。
7.重启xinetd服务
sudo /etc/init.d/xinetd restart
8.重启tftpd服务
sudo /etc/init.d/tftpd-hpa restart
通过查看进程可以查看当前tftp server 主目录
ps -axu | grep tftp
root 10736 0.0 0.0 2280 684 ? Ss 21:26 0:00 /usr/sbin/in.tftpd -s /home/tftpd
下面是网上总结出来的常见错误及解决方法:
现象一:
tftp> get file
Transfer timed out.
原因:
tftpd服务没有启动
解决方法:启动服务
sudo /etc/init.d/xinetd restart
sudo /etc/init.d/tftpd-hpa restart
现象二:
tftp> get file
Error code 2: Only absolute filenames allowed
原因:
在/etc/xinetd.d/tftpd中设置的server_args为/etc/default/tftpd-hpa
下面是我的机器上/etc/default/tftpd-hpa配置
# /etc/default/tftpd-hpa
RUN_DAEMON="yes"
TFTP_ADDRESS="0.0.0.0:69"
OPTIONS="-s /home/tftpd -c -p -U 077 -u tftpd"
现象三:
tftp> put file
Error code 1: File not found
原因:
指定的文件不存在;或tftpd启动参数中没有指定-c选项,允许上传文件~上传的时候一定要确保文件先存在于上传目录下。
现象四:
tftp> get file
tftp: : Permission denied
原因:权限不足
请查看chmod 是不是配置好