实现TFTP服务

Posted 凭栏听枫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现TFTP服务相关的知识,希望对你有一定的参考价值。

安装和使用TFTP

安装包

  • tftp-server 服务器包
  • tftp 客户端包

安装tftp

#安装tftp服务器包
[root@centos7 ~]# yum install -y tftp-server
[root@centos7 ~]# rpm -ql tftp-server 
/etc/xinetd.d/tftp
/usr/lib/systemd/system/tftp.service	#tftp service文件
/usr/lib/systemd/system/tftp.socket		#tftp socket文件
/usr/sbin/in.tftpd	#tftp主程序
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot	#TFTP服务数据目录

启动服务

#启动服务
[root@centos7 ~]# systemctl enable --now tftp
[root@centos7 ~]# systemctl status tftp
● tftp.service - Tftp Server
   Loaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)
   Active: active (running) since Sat 2021-05-08 15:52:31 CST; 38s ago
     Docs: man:in.tftpd
 Main PID: 2979 (in.tftpd)
   CGroup: /system.slice/tftp.service
           └─2979 /usr/sbin/in.tftpd -s /var/lib/tftpboot

May 08 15:52:31 centos7 systemd[1]: Started Tftp Server.

准备测试文件

[root@centos7 ~]# cp /etc/fstab /var/lib/tftpboot/f1.txt
[root@centos7 ~]# mkdir /var/lib/tftpboot/dir
[root@centos7 ~]# cp /etc/passwd /var/lib/tftpboot/dir/f2.txt
[root@centos7 ~]# tree /var/lib/tftpboot/
/var/lib/tftpboot/
├── dir
│   └── f2.txt
└── f1.txt

1 directory, 2 files

安装tftp客户端

[root@centos8 ~]# yum install -y tftp

客户端通过tftp下载文件

#非交互式下载文件
[root@centos8 ~]# tftp 10.0.0.217 -c get f1.txt f2.txt

#交互式下载
[root@centos7 ~]#tftp 10.0.0.8
tftp> help
tftp-hpa 5.2
Commands may be abbreviated. Commands are:
connect connect to remote tftp
mode  set file transfer mode
put   send file
get   receive file
quit  exit tftp
verbose toggle verbose mode
trace  toggle packet tracing
literal toggle literal mode, ignore ':' in file name
status show current status
binary set mode to octet
ascii  set mode to netascii
rexmt  set per-packet transmission timeout
timeout set total retransmission timeout
?    print help information
help  print help information
#查看状态
tftp> status
Connected to 10.0.0.8.
Mode: netascii Verbose: off Tracing: off Literal: off
Rexmt-interval: 5 seconds, Max-timeout: 25 seconds
6 利用 PXE 实现自动化系统部署
6.1 PXE介绍
PXE:Preboot Excution Environment,预启动执行环境,是由Intel公司研发,基于Client/Server的网
络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,可以引导
和安装Windows,linux等多种操作系统
PXE启动工作原理
#下载文件
tftp> get f1.txt
tftp> get dir/f2.txt
#退出
tftp> quit
[root@centos7 ~]#ls
anaconda-ks.cfg f1.txt f2.txt
#以下在tftp服务器执行,当用户下载文件后,可以观察到服务器端自动打开in.tftpd主程序
[root@centos8 tftpboot]#ps aux|grep in.tftp
root    1276  0.0  0.2  14912  1720 ?    Ss  12:03  0:00
/usr/sbin/in.tftpd -s /var/lib/tftpboot
root    1282  0.0  0.1  12108  960 pts/0  R+  12:04  0:00 grep --
color=auto in.tftp

以上是关于实现TFTP服务的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu linux tftp配置

Ubuntu linux tftp配置

linux-TFTP服务

Linux中tftp安装及使用笔记

Ubuntu配置TFTP服务器

嵌入式开发-迅为4412开发板学习笔记-TFTP服务器的搭建