本文介绍在Fedora Linux操作系统上安装和设置TFTP服务器的方法:TFTP服务器安装、进行局部变更、启动TFTP服务器、客户端配置。
前言 TFTP或普通文件传输协议允许用户使用UDP协议在系统之间传输文件,默认情况下,它使用UDP69端口,TFTP协议广泛用于支持无盘设备的远程启动,因此,在你自己的本地网络上设置TFTP服务器很有必要。 TFTP只能从远程系统读取文件或从远程系统写入文件,它无法列出文件或在远程服务器上进行任何更改,用户身份验证也没有规定,由于安全隐患和缺乏高级功能,TFTP通常仅用于局域网(LAN)。
TFTP服务器安装 你需要做的第一件事是安装TFTP客户端和服务器包: dnf install tftp-server tftp -y 这将为/usr/lib/systemd/system下的systemd创建一个tftp服务和套接字文件: /usr/lib/systemd/system/tftp.service /usr/lib/systemd/system/tftp.socket 接下来,将这些文件复制并重命名为/etc/systemd/system: cp /usr/lib/systemd/system/tftp.service /etc/systemd/system/tftp-server.service cp /usr/lib/systemd/system/tftp.socket /etc/systemd/system/tftp-server.socket 其它发行版请参考:在Ubuntu Server上安装和配置TFTP服务器的方法。
进行局部变更 复制和重命名后,需要从新位置编辑这些文件,以添加一些其他参数,以下是tftp-server.service文件的初始状态: [Unit] Description=Tftp Server Requires=tftp.socket Documentation=man:in.tftpd [Service] ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot StandardInput=socket [Install] Also=tftp.socket 对[Unit]部分进行以下更改: Requires=tftp-server.socket 对ExecStart行进行以下更改: ExecStart=/usr/sbin/in.tftpd -c -p -s /var/lib/tftpboot 以下是选项的含义: 1、-c选项允许创建新文件。 2、-p选项用于在正常系统提供的访问控制之上执行其他权限检查。 3、建议使用-s选项以确保安全性以及与某些引导ROM的兼容性,这些引导ROM无法轻易地在其请求中包含目录名称。 传输文件的默认上传/下载位置是/var/lib/tftpboot。 接下来,对[Install]部分进行以下更改: [Install] WantedBy=multi-user.target Also=tftp-server.socket 别忘了保存更改。 这是完成的/etc/systemd/system/tftp-server.service文件: [Unit] Description=Tftp Server Requires=tftp-server.socket Documentation=man:in.tftpd [Service] ExecStart=/usr/sbin/in.tftpd -c -p -s /var/lib/tftpboot StandardInput=socket [Install] WantedBy=multi-user.target Also=tftp-server.socket
启动TFTP服务器 重新加载systemd守护程序: systemctl daemon-reload 现在启动并启用服务器: systemctl enable --now tftp-server 要更改TFTP服务器的权限以允许上载和下载功能,请使用此命令,注意TFTP是一种固有的不安全协议,因此不会在你与其他人共享的网络上建议这样做: chmod 777 /var/lib/tftpboot 配置防火墙以允许TFTP流量: firewall-cmd --add-service=tftp --perm firewall-cmd --reload
客户端配置 安装TFTP客户端: yum install tftp -y 执行tftp命令,连接TFTP服务器,以下是启用详细选项的示例: [client@thinclient:~ ]$ tftp 192.168.1.164 tftp> verbose Verbose mode on. tftp> get server.logs getting from 192.168.1.164:server.logs to server.logs [netascii] Received 7 bytes in 0.0 seconds [inf bits/sec] tftp> quit [client@thinclient:~ ]$ 请记住,TFTP无法列出文件名,因此,在运行get命令以下载任何文件之前,你需要知道文件名。
相关主题 |