tftpd-hpa 是一个功能增强的TFTP服务器。它提供了很多TFTP的增强功能,它已经被移植到大多数的现代UNIX系统
1、sudo apt-get install tftp-hpa tftpd-hpa xinetd或者sudo apt-get install tftp tftpd xinetd
2、建立配置文件
sudo vi /etc/xinetd.d/tftp
新建文件tftp
3、建立tftp服务文件目录tftp内容:
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot -c
per_source = 11
cps = 100 2
}
mkdir /tftpboot
修改权限:sudo chmod 777 /tftpboot -R
4、重新启动服务。
当配置好tftp的配置文件后,需要重新启动一下xinetd;在终端中输入 sudo /etc/init.d/xinetd reload,重新加载一下进程;再输入 sudo /etc/init.d/xinetd restart,重启服务。(网上一般推荐的是使用这两种方法,但是我试过后还是不行,然后重启就OK了,所以我推荐配置完成后,直接重启电脑)
记住,每次修改完配置文件后,都需要重新启动一下服务。
后记:后来我使用sudo /etc/init.d/xinetd reload是可以的,不用重启电脑
5、安装完成!测试方法:
然后 登录另一个目录 运行tftp 192.168.123.202 //换成你的IP
进入tftp命令行
输入get abc 看看是不是能把文件下下来,如果可以就可以了,也可以put 文件上去。
如果出现Error code 1: File not found 解决办法:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot " //改成你想要的那个tftpboot
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s" //这里是选项
然后记得重启服务, sudo /etc/init.d/xinetd restart
如果还是上面的错误,把文件复制到 /var/lib/tftpboot ,再试下,如果成功,则要重启系统使上面的配置生效。
以后就可以用你改的那个tftpboot了。
如果出现Error code 2: Access violation 解决办法:
在使用tftp给服务器上传文件的时候,会出现Error code 2: Access violation这个错误提示,是因为在tftpboot目录下不存在这个文件,或者是这个文件的权限有问题。
如:假如我要上传一个mxj2文件,那么需要首先在tftpboot目录下创建一个空的mxj2文件
cd /tftpboot; touch mxj2;
然后再修改tftpboot目录下修改该文件的权限
sudo chmod 0777 mxj2;
此时使用tftp上传文件就没有问题了:
tftp 192.168.1.11
put mxj2
经过测试后没有问题