一、tftp配置方法
1:安装openbsd-inetd
sudo apt-get install tftp tftpd openbsd-inetd
特别指出很多文章里用的是netkit-inetd,但是实际下载时发现
这个软件是下不到的,特改用openbsd-inetd,实验效果不错。
2:在根目录下创建文件夹 tftpboot
cd /
sudo mkdir tftpboot 建立文件夹
sudo chmod 777 tftpboot 更改文件夹权限
3:修改 /etc/inetd.conf
sudo gedit /etc/inetd.conf 修改成如下样子
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
(上面这是一行,注意不要分开)
4:修改tftpd文件
sudo gedit /etc/xinetd.d/tftpd 修改成如下样子(如果没有tftpd文件就创建它)
(注意文件名是tftpd)
service tftp
{
disable = no
socket_type = dgramprotocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot -c
source = 11
cps = 100 2
}
5:修改tftpd-hpa
sudo gedit /etc/default/tftpd-hpa 修改成如下样子
RUN_DAEMON="no"
OPTIONS="-s /tftpboot -c -p -U tftpd"
6:启动tftp
sudo /etc/init.d/openbsd-inetd reload
sudo /etc/init.d/xinetd restart
sudo in.tftpd -l /tftpboot
7: 在tftpboot文件夹下新建测试文件 aaa
cd /tftpboot
sudo touch aaa
sudo chmod 777 aaa
8: 开始测试tftp服务
cd /home
tftp 192.168.1.111
get /tftpboot/aaa
如果没有出现错误代码且在home目录下出现aaa文件则证明tftp
服务建立成功
二、常见错误处理
1.
tftp> get file
ransfer 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选项,允许上传文件~上传的时候一定要确保文件先存在于上传目录下。
4.
tftp> get file
tftp: : Permission denied
原因:
权限不足
请查看chmod 是不是配置好