2018-01-31 TFTP 安装与使用

1. 软件安装


  • TFTP客户端: tftp-hpa
  • TFTP服务端: tftpd-hpa
  • 网络守护进程服务程序: xinetd
[zqq@ubuntu ~]# sudo apt install tftp-hpa
[zqq@ubuntu ~]# sudo apt install tftpd-hpa
[zqq@ubuntu ~]# sudo apt install xinetd

2. 配置TFTP服务器


  1. 修改 /etc/default/tftpd-hpa 配置文件:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot "  //将 /tftpboot 改成自己建立的tftp共享文件夹路径
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"    //这里是选项
  1. 新建|修改 /etc/xinetd.d/tftp 配置文件:
// 如果有这个文件, 修改一下就可以了
service tftp
{
    disable = no  // tftp 服务器开关 no:on yes:off
    socket_type = dgram
    protocol = udp
    wait = yes
    user = root    //修改为你登录系统的用户名
    server = /usr/sbin/in.tftpd
    server_args = -s  /tftpboot  -c   // /tftpboot 为你存放TFTP的文件目录; -c参数允许上传(>可以创建文件)
    per_source = 11
    cps = 100 2
}

3. 重启TFTP服务


[zqq@ubuntu ~]# sudo service  tftpd-hpa restart  //重启服务器
[zqq@ubuntu ~]# sudo /etc/init.d/xinetd reload
[zqq@ubuntu ~]# sudo /etc/init.d/xinetd restart  //重启xinetd,tftp的一个脚本

4. 测试


据说需要关闭防火墙, 由于没有开启, 不知道会出现什么情况:

# Ubuntu, 需要安装 ufw
sudo ufw disable
# 其他 Linux
/etc/init.d/iptables stop

复制一个文件到tftp服务器目录,然后在主机启动tftp软件,进行简单测试:

[zqq@ubuntu ~]# tftp 192.168.1.2
# 下载文件
tftp>get 
# 上传文件
tftp>put 
# 退出
tftp>q

5. TFTP 基本使用


进入TFTP操作:

connect:连接到远程tftp服务器
mode:文件传输模式
put:上传文件
get:下载文件
quit:退出
verbose:显示详细的处理信息
tarce:显示包路径
status:显示当前状态信息
binary:二进制传输模式
ascii:ascii 传送模式
rexmt:设置包传输的超时时间
timeout:设置重传的超时时间
help:帮助信息
? :帮助信息

在 Busybox 中使用如下(其他桌面系统命令参数不一样,我的Ubuntu16.04就只适用get/put那种):

tftp [option] ... host [port]

[option]
-g 表示下载文件 (get)
-p 表示上传文件 (put)
-l 表示本地文件名 (local file)
-r 表示远程主机的文件名 (remote file)

以下是 tftp 快速上传下载命令使用:

# 1. 不更名上传下载(-gr/-gl | -pl/-pr),要从远程主机192.168.1.2上下载 tftp_test,则应输入以
下命令:
[root@ ~]# tftp -gr tftp_test 192.168.1.2
# 2. 从 192.168.1.2 下载文件 A.txt, 并更名为 B.txt (不更名就同名)
[root@ ~]# tftp -g -l B.txt -r A.txt 192.168.1.2
# 3. 上传文件 C.txt 到 192.168.1.2, 并更名为D.txt(不更名则C.txt)
[root@ ~]# tftp -p -r D.txt -l C.txt 192.168.1.2

6. 如果老是出现“AVC Denial, click icon to view”的错误,并不能传输文件,需要作如下修改


修改 /etc/sysconfig/selinux, 将 SELINUX 设定为 disable,使用命令 setenforce 0 让 selinux 配置文件生效。

*关于上传失败的原因

出错: Error code 1: File not found (可下载不能上传)

因为TFTP默认只允许下载文件,要上传文件,必须是服务器中已存在同名的文件,且该文件的权限允许被覆盖! -- HMK-Linux (tftp成功启动,get或put命令测试出现Error code 1: File not found)

所以在上传文件时, 需要先在 TFTP 目录下创建同名文件, 并且赋予可写的权限; 并且, 在配置 /etc/xinetd.d/tftp 文件时, server_args = -s /tftpboot -c-c 必须要有(-c参数允许上传).


[reference]

[1] LoTGu. Ubuntu14.04环境下配置TFTP服务器. (2017-03-20 15:03) https://www.cnblogs.com/AP0904225/p/6589085.html
[2] linuxde.net. tftp命令[M]. http://man.linuxde.net/tftp
[3] believe209. tftp命令使用说明[M]. (2015年12月01日 15:03:12) http://blog.csdn.net/wangzhen209/article/details/50129275
[4] HMK-Linux. tftp成功启动,get或put命令测试出现Error code 1: File not found. (2011-12-05 17:09) http://forum.ubuntu.org.cn/viewtopic.php?t=324925

你可能感兴趣的:(2018-01-31 TFTP 安装与使用)