如何安装配置tftp服务?

FTP

1 前言

一个问题,一篇文章,一出故事。
笔者公司需要一个tfpt服务用于传输日志文件,于是整理此文。
对于TFTP,我们简单的介绍如下,
– TFTP是一种简单文件传输协议
– TFTP支持用户使用UDP协议传输数据
– TFTP广泛地应用于无盘设备引导的工作场景

2 最佳实践

2.1 环境信息

tftp Server,
Host Name = tftp.cmdschool.org
IP Address = 10.168.0.155
OS = RHEL 7.8 x86_64

tftp Client,
Host Name = any.cmdschool.org
IP Address = any
OS = RHEL 7.8 x86_64

2.2 配置服务器端

2.2.1 安装服务器端软件包

yum install -y tftp-server

2.2.2 启动服务

systemctl start tftp.service
systemctl enable tftp.service

服务启动后,可使用如下命令确认服务启动,

 pgrep -u root sftp-server -a

可见如下服务进程,

21167 /usr/libexec/openssh/sftp-server
21420 /usr/libexec/openssh/sftp-server

2.2.3 修改服务控制脚本

cp /usr/lib/systemd/system/tftp.service /usr/lib/systemd/system/tftp.service.default
vim /usr/lib/systemd/system/tftp.service

配置修改如下,

[Unit]
Description=Tftp Server
Requires=tftp.socket
Documentation=man:in.tftpd

[Service]
ExecStart=/usr/sbin/in.tftpd -c -p -s /var/lib/tftpboot
StandardInput=socket

[Install]
Also=tftp.socket

tftp守护进程“/usr/sbin/in.tftpd”的参数,
– 参数“-c”声明允许客户端新建文件(默认只允许覆盖已经存在的文件)
– 参数“-p”声明不对指定用户执行超出系统正常访问控制权限的检查
– 参数“-s”声明服务启动时的根目录
根据参数的需求,你需要使用如下命令授予相应的目录权限,

chmod 777 /var/lib/tftpboot

配置修改后,你需要使用如下命令重载服务使配置生效,

systemctl daemon-reload

然后,你需要重启服务使配置生效,

systemctl restart tftp.service

2.2.4 开方服务端口

firewall-cmd --permanent --add-service=tftp
firewall-cmd --reload
firewall-cmd --list-all

2.3 使用客户端测试服务

2.3.1 安装服务器端

yum install -y tftp

2.3.2 获取命令行帮助

man tftp

2.3.3 查询可用的操作命令

tftp 10.168.0.155

命令向导如下,

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

2.3.4 测试文件上传

cd /etc
tftp 10.168.0.155

命令向导如下,

tftp> verbose
Verbose mode on.
tftp> put messages
putting messages to 10.168.0.155:messages [netascii]
Sent 208008 bytes in 0.1 seconds [26409132 bit/s]
tftp>
tftp> quit
没有评论

发表评论

RHEL-Like
如何修复共享库报错?

1 前言 一个问题,一篇文章,一出故事。 笔者每次在RHEL 5.1系统跑SOSRepo都会遇到如下 …

RHEL-Like
如何监视磁盘使用IO状态?

1 前言 一个问题,一篇文章,一出故事。 笔者最近需要查看磁盘的IO压力,于是整理此文。 2 最佳实 …

RHEL-Like
如何实现audit日志轮替?

1 前言 一个问题,一篇文章,一出故事。 笔者之前定义过日志的轮替,详细请参阅如下文档, 如何部署日 …