我在 Oracle Linux 8 上配置 TFTP 服务器并遇到一些奇怪的问题。
配置文件:
/etc/systemd/system/tftp-server.service :::::::::::::: [单元] 描述=Tftp 服务器 需要=tftp-server.socket 文档=man:in.tftpd [服务] ExecStart=/usr/sbin/in.tftpd -c -p -s /tftpboot 标准输入=插座 [安装] WantedBy=多用户.目标 也=tftp-server.socket :::::::::::::: /etc/systemd/system/tftp-server.socket :::::::::::::: [单元] 描述=Tftp 服务器激活套接字 [插座] 收听数据报=69 BindIPv6Only=both [安装] WantedBy=sockets.target
tftp-server 和 tftp.socket 均正在运行并启用:
● tftp-server.service - Tftp 服务器 已加载:已加载(/etc/systemd/system/tftp-server.service;已启用;供应商预设:已禁用) 活跃:自 2022-12-13 星期二 09:08:41 EST;11 分钟前开始活跃(运行) 文档:man:in.tftpd 主 PID:6308(in.tftpd) 任务:1(限制:48835) 内存:200.0K CGroup:/system.slice/tftp-server.service └─6308 /usr/sbin/in.tftpd -c -p -s /tftpboot 12 月 13 日 09:08:41 systemd[1]:已启动 Tftp 服务器。 ● tftp.socket - Tftp 服务器激活套接字 已加载:已加载(/usr/lib/systemd/system/tftp.socket;已启用;供应商预设:已禁用) 活跃:自 2022-12-13 星期二 09:08:37 EST;11 分钟前开始活跃(运行) 侦听:[::]:69(数据报) 任务:0(限制:48835) 内存: 0B CGroup:/system.slice/tftp.socket 12 月 13 日 09:08:37 systemd[1]:已关闭 Tftp 服务器激活套接字。 12 月 13 日 09:08:37 systemd[1]:停止 Tftp 服务器激活套接字。 12 月 13 日 09:08:37 systemd[1]:正在监听 Tftp 服务器激活套接字。
/tftpboot 目录权限设置为全球可读 (777),目录中有一个全球可读的文本文件。当我尝试从同一台服务器进行 TFTP 时,我收到“错误代码 1:未找到文件”。当我尝试从同一本地 VLAN 上的服务器进行 TFTP 获取时,获取开始,最终收到“传输超时”错误。服务器上的 iptables 配置为允许 UDP 端口 69 入站。
我不确定我错过了什么。我按照以下说明进行操作https://linuxhint.com/tftp_server_centos8/但我就是无法建立连接,即使是从本地主机。任何想法都将不胜感激!
答案1
我相信我已经解决了这个问题。运行一些状态检查后,我注意到 tftp 和 tftp-server 都在运行,但使用不同的配置文件:
systemctl 状态 tftp ● tftp.service - Tftp 服务器 已加载:已加载(/usr/lib/systemd/system/tftp.service;间接;供应商预设:已禁用) 活跃:自 2022-12-14 星期三 10:56:41 EST;10 分钟前开始活跃(运行) 文档:man:in.tftpd 主 PID:9604(in.tftpd) 任务:1(限制:48835) 内存:244.0K CGroup:/system.slice/tftp.service └─9604 /usr/sbin/in.tftpd -s /var/lib/tftpboot 12 月 14 日 10:56:41 systemd[1]:已启动 Tftp 服务器。 systemctl status tftp 服务器 ● tftp-server.service - Tftp 服务器 已加载:已加载(/etc/systemd/system/tftp-server.service;已启用;供应商预设:已禁用) 活跃:自 2022-12-13 星期二 12:57:45 EST 以来处于不活跃状态(已死亡);22 小时前 文档:man:in.tftpd 主 PID:6832(代码=退出,状态=0/成功) 12 月 13 日 12:42:45 systemd[1]:已停止 Tftp 服务器。 12 月 13 日 12:42:45 systemd[1]:已启动 Tftp 服务器。 12 月 13 日 12:57:45 systemd[1]: tftp-server.service: 成功。
将语法从 /etc/systemd/system/tftp-server.service 复制到 /usr/lib/systemd/system/tftp.service 后,TFTP 又可以正常工作了。我不太清楚为什么会发生这种情况,但至少 TFTP 现在正常工作了。