背景
ftp由于历史原因应当被淘汰,所以我个人不再使用,但是简单协议tftp我相信它依然有广泛的应用价值,在部署tftp时我依然遇到了一些小小的挫折,在这里记录一下部署tftp服务时应当注意的事项。
操作
操作系统与开发环境(建议在云主机上尝试,方便快捷):
[root@aliyun ~]$ more /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
1.安装tftp程序
[root@aliyun ~]$ yum install tftp-server tftp
Loaded plugins: langpacks, product-id, subscription-manager
………………省略部分输出信息………………
Installing:
tftp x86_64 5.2-11.el7 rhel 35 k
tftp-server x86_64 5.2-11.el7 rhel 44 k
Installing for dependencies:
xinetd x86_64 2:2.3.15-12.el7 rhel 128 k
Transaction Summary
================================================================================
Install 2 Packages (+1 Dependent package)
Total download size: 207 k
Installed size: 373 k
Is this ok [y/d/N]: y
Downloading packages:
………………省略部分输出信息………………
Installed:
tftp.x86_64 0:5.2-11.el7 tftp-server.x86_64 0:5.2-11.el7
Dependency Installed:
xinetd.x86_64 2:2.3.15-12.el7
Complete!
2.在RHEL 7系统中,TFTP服务是使用xinetd服务程序来管理的。xinetd服务可以用来管理多种轻量级的网络服务,而且具有强大的日志功能。简单来说,在安装TFTP软件包后,还需要在xinetd服务程序中将其开启,把默认的禁用(disable)参数修改为no:
[root@aliyun ~]$ yum install xinetd
[root@aliyun ~]$ vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
3.重启xinetd服务
[root@aliyun ~]$ systemctl restart xinetd
4.测试实验
[root@aliyun ~]$ echo "i love linux" > /var/lib/tftpboot/readme.txt
[root@aliyun ~]$ tftp 127.0.0.1
tftp> get readme.txt
tftp> quit
5.远程连接尝试
先在服务器安全组中将UDP协议的69端口放行,然后再来连接,注意UDP和TCP不一样要单独设置
本地连接测试
ubuntu@debian:~$ tftp 47.103.110.127
tftp> get readme.txt
Received 9 bytes in 0.0 seconds
tftp> quit
ubuntu@debian:~$ cat readme.txt
i love linux
总结
困难总是很多,完全根据书上来是不知道CentOS没有默认安装xinetd服务需要手动来安装的,即使是最简单的东西都要亲手来实验一下,不要眼高手低。