ubuntu TFTP设置配置

UBUNTU tftp 配置

1:sudo apt-get install tftp tftpd openbsd-inetd

apt-get install tftpd-hpa

apt-get install xinetd


特别指出很多文章里用的是netkit-inetd,但是实际下载时发现
这个软件是下不到的,特改用openbsd-inetd,实验效果不错。


2:在根目录下创建文件夹 tftpboot
cd /
sudo mkdir tftpboot      建立文件夹
sudo chmod 777 tftpboot  更改文件夹权限


3: sudo gedit /etc/inetd.conf  修改成如下样子

注释掉上面一句,不然TFTP启动又从上个命令开始

#tftp  dgram  udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd

tftp    dgram   udp     wait    nobody  /usr/sbin/tcpd  /usr/sbin/in.tftpd /home/andy/workspace/tftpboot

4: sudo gedit /etc/xinetd.d/tftp  修改成如下样子(如果没有tftp文件就创建它)(如果没有xinetd,是没有安装xinetd)

service tftp
{
disable         =no
socket_type     =dgram
protocol        =udp
wait            =yes
user            =root
server          =/usr/sbin/in.tftpd
server_args     =-s /home/andy/workspace/tftpboot -c/tftpboot是tftp服务器建立的文件夹位置。如果不是根目录建立的需要修改路径
source          = 11
cps             = 100 2



5: sudo gedit /etc/default/tftpd-hpa  修改成如下样子

  # /etc/default/tftpd-hpa
   
  TFTP_USERNAME="tftp"
  #TFTP_DIRECTORY="/var/lib/tftpboot"
  TFTP_DIRECTORY="/home/andy/workspace/tftpboot"(/tftpboot是tftp服务器建立的文件夹位置。如果不是根目录建立的需要修改路径
  TFTP_ADDRESS="0.0.0.0:69"
  TFTP_OPTIONS="-l -c -s"    

6: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
9:lsof -i:69 查看tftp状态

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
in.tftpd 1071 root    4u  IPv4   8971      0t0  UDP *:tftp

如果显示时IPV6那么配置上就有问题,需要检测配置项。


10: 开始测试tftp服务
cd  /home
tftp  192.168.14.74

sudo /etc/init.d/xinetd restart

至此Ubuntu tftp服务已经安装完成了,下面可以对其进行一下测试。(假设在当前目录下有一个测试文件test.txt)

$tftp 127.0.0.1                      
tftp> put test.txt
Sent 1018 bytes in 0.0 seconds
tftp> get test.txt
Received 1018 bytes in 0.1 seconds
tftp> quit

通过get命令,可以把当前目录下的test.txt文件,通过Ubuntu tftp上传到它的服务文件目录。这时,在/tftpboot下面会出现test.txt文件。通过put命令,可以从/tftpboot下,下载test.txt文件。这样就验证了Ubuntu tftp服务配置的正确性。当文件上传与下载结束后,可以通过quit命令退出。严格按照以上步骤配置Ubuntu tftp服务,一般都可以成功。如果出现无法get或者put的时候,可以查看一下防火墙是否关闭。



注意: 1:如果出现permission denied 错误  则是操作者权限不够,
需要提升权限
su  root
输入密码后就可以正常进行tftp传输操作了

2:如果出现Access violation错误 则是文件权限没有解开,
将要操作的文件操作权限全解开就可以了
chmod 777 文件名
学习 交流 进步 未来现象一:

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 是不是配置好
 
 

你可能感兴趣的:(ubuntu TFTP设置配置)