[ 服务器 ] ___ Linux : Tftpd

[ 服务器 ] ___ Linux : Tftpd

简介


Tftpd是用于普通文件传输协议的服务器,TFTP协议广泛用于支持无磁盘设备的远程引导,服务器通常由inetd启动,但也可以独立运行。
tftpd-hpa是一个功能增强的TFTP服务器。它提供了很多TFTP的增强功能,它已经被移植到大多数的现代UNIX系统。

安装


客户端服务器端的安装:

linux@localhost:~$ sudo apt-get install tftpd-hpa tftp-hpa

客户端如果不需要可以不安装

配置


tftpd-hpa服务器的默认配置文件是/etc/default/tftpd-hpa
如果要配置TFTP服务器,则必须修改此配置文件并重新启动tftpd-hpa服务器。

  1. 使用vim编辑器打开配置文件进行编辑。

linux@localhost:~$ sudo vim /etc/default/tftpd-hpa

这是TFTP服务器的默认配置。

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"
  • TFTP_USERNAME设置为tftp。意味着TFTP服务器将以用户tftp的身份运行。
  • TFTP_DIRECTORY设置为/srv/tftp。意味着/srv/tftp是此服务器上的目录,可以通过TFTP访问该目录
  • TFTP_ADDRESS设置为:69。意味着TFTP将在端口69上运行
  • TFTP_OPTIONS设置为--secure。启动时更改根目录。意味着远程主机不需要传递目录作为转让的一部分,可能会增加安全性。这是一项安全功能选项,也可以使用更多选项来配置TFTP服务器行为
  1. 默认参数修改

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/tftpd-hpa"
TFTP_ADDRESS="0.0.0.0:52013"
TFTP_OPTIONS="-l -c -s"

TFTP服务器以独立(侦听)模式运行服务器,指定侦听52013端口上运行,服务器允许创建新的文件。

权限


创建用户自定义目录

linux@localhost:~$ sudo mkdir -p /home/tftpd-hpa

设置所有者和所属组为tftp

linux@localhost:~$ sudo chown tftp:tftp /home/tftpd-hpa

设置访问目录权限

linux@localhost:~$ sudo chmod -R 755 /home/tftpd-hpa

设置防火墙端口权限允许

linux@localhost:~$ sudo ufw allow 52013

启动


linux@localhost:~$ sudo service tftpd-hpa restart

查看


linux@localhost:~$ systemctl status tftpd-hpa
● tftpd-hpa.service - LSB: HPA's tftp server
   Loaded: loaded (/etc/init.d/tftpd-hpa; bad; vendor preset: enabled)
   Active: active (running) since Wed 2020-11-26 00:53:13 PST; 2s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 3873 ExecStop=/etc/init.d/tftpd-hpa stop (code=exited, status=0/SUCCESS)
  Process: 3884 ExecStart=/etc/init.d/tftpd-hpa start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/tftpd-hpa.service
           └─3898 /usr/sbin/in.tftpd --listen --user tftp --address 0.0.0.0:52013 -l -c -s /home/tftpd-hpa

Nov 26 00:53:13 ubuntu systemd[1]: Stopped LSB: HPA's tftp server.
Nov 26 00:53:13 ubuntu systemd[1]: Starting LSB: HPA's tftp server...
Nov 26 00:53:13 ubuntu tftpd-hpa[3884]:  * Starting HPA's tftpd in.tftpd
Nov 26 00:53:14 ubuntu tftpd-hpa[3884]:    ...done.
Nov 26 00:53:14 ubuntu systemd[1]: Started LSB: HPA's tftp server.

测试


在客户端中使用tftp进行上传和下载测试
当前服务器主机设置ipi地址为 : 192.168.1.128

  1. 上传本地文件
[ root@arm / ] # ls -la
-rwxr-xr-x    1 root     root         47328 Jan 20  2020 3G.png
[ root@arm / ] # tftp -p -l  192.168.1.128:52013 3G.png
3G.png              100% |*******************************| 47328   0:00:00 ETA
  1. 下载远端文件
[ root@arm / ] # tftp -p -l  192.168.1.128:52013 light.png
light.png              100% |*******************************| 20022   0:00:00 ETA
已标记关键词 清除标记
背景:欲利用TFTPD给开发板烧写boot、uImage、rootfs。 平台:win7、Ubuntu10.04、海思H3515 第一种方法: 下载tftp32,配置好路径和服务器IP; 板子处于uboot命令状态,利用板子ping win7主机机可以ping通。 开始使用tftp 82000000 uImage烧写。 结果:每次烧写一半就卡主了,就烧写失败。 查看tftp32的日志:如下: Connection received from 192.168.1.10 on port 3276 [18/03 22:53:54.640] Read request for file <uImage>. Mode octet [18/03 22:53:54.641] OACK: <timeout=1,tsize=3193424,blksize=1468,> [18/03 22:53:54.641] Using local port 64785 [18/03 22:53:54.641] TIMEOUT waiting for Ack block #1001 [18/03 22:54:04.382] Connection received from 192.168.1.10 on port 3670 [18/03 22:54:04.467] Read request for file <uImage>. Mode octet [18/03 22:54:04.467] OACK: <timeout=1,tsize=3193424,blksize=1468,> [18/03 22:54:04.470] Using local port 62299 [18/03 22:54:04.470] TIMEOUT waiting for Ack block #283 [18/03 22:54:11.501] Connection received from 192.168.1.10 on port 2696 [18/03 22:54:11.636] Read request for file <uImage>. Mode octet [18/03 22:54:11.637] OACK: <timeout=1,tsize=3193424,blksize=1468,> [18/03 22:54:11.637] Using local port 62300 [18/03 22:54:11.637] TIMEOUT waiting for Ack block #0 [18/03 22:54:17.687] 第二种方法: 在虚拟机中Ubuntu搭建ftpd服务器;在虚拟机中自测tftpd服务器正常; 板子处于uboot命令状态,利用板子ping虚拟机可以ping通。 开始使用tftp 82000000 uImage烧写。 结果:每次烧写一半就卡主了,就烧写失败。 特别说明: 板子是可以正常烧写的;在另一台win7电脑上用第一种方法烧写正常。 本想利用tftp32的日志来查问题,Google不到什么内容,所以来救助大家,谢谢!
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页