我正在 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=多用戶.target 另=tftp-server.socket ::::::::::::: /etc/systemd/system/tftp-server.socket ::::::::::::: [單元] 描述=Tftp 伺服器啟動套接字 [插座] 監聽資料報=69 僅綁定 IPv6=兩者 [安裝] WantedBy=sockets.target
tftp-server 和 tftp.socket 都正在運行並啟用:
●tftp-server.service - Tftp 伺服器 已載入:已載入(/etc/systemd/system/tftp-server.service;啟用;供應商預設:停用) 活躍:自美國東部時間 2022 年 12 月 13 日星期二 09:08:41 起活躍(運行); 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 起活躍(運行); 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 起活躍(運行); 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 狀態 tftp 伺服器 ●tftp-server.service - Tftp 伺服器 已載入:已載入(/etc/systemd/system/tftp-server.service;啟用;供應商預設:停用) 活躍:自美國東部時間 2022 年 12 月 13 日星期二 12:57:45 起不活躍(死亡); 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 現在可以工作了。