如何在 Linux 上設定古老又簡單的 TFTP 伺服器
您知道流行的文件傳輸協定有一個更簡單的替代方案嗎?它就是 TFTP,以下是在 Linux 上設定它的方法。
TFTP(Trivial File Transfer Protocol,簡單檔案傳輸協定)於 1980 年首次定義。它是一個相當古老的協議,於 1981 年 6 月由 Karen R. Sollins 在 RFC 783(徵求意見)中作為 TFTP 協議修訂版 2 發布。
早期,TFTP 的主要目標是透過網路傳送和接收檔案。特別是,它用於傳輸引導期間所需的文件,以使系統能夠透過網路引導。
以下介紹如何在 Linux 機器上設定 TFTP 伺服器。
什麼是 TFTP?
TFTP 仍用於檔案傳輸目的,它支援的功能沒有根本變化。 TFTP 用於透過 UDP/IP 下載和傳送檔案。它沒有其他文件傳輸協定中常見的身份和授權控制、文件清單、刪除或重新命名等附加功能。
與在傳輸層使用 TCP 的高階檔案傳輸協定不同,它工作在 UDP 協定上,不具有檢查屬於檔案的資料包是否會傳送到另一端等功能。由於這個限制,它更適合在區域網路中使用,而不是在網際網路或廣域網路中使用。
儘管上面列出了所有這些看似不利的特性,但 TFTP 協定非常強大的一個方面是它的簡單性。與其替代方案相比,該協定的實作非常容易,即使對於沒有作業系統的環境也是如此。由於這個特性,它在嵌入式系統中有廣泛的使用領域。
在 Linux 上安裝 TFTP 伺服器
使用嵌入式裝置時,安裝 TFTP 伺服器服務很重要。在 Linux 系統上,可以運行多個 TFTP 伺服器實作。如果您使用的是基於 Debian 的發行版,您可以安裝tftpd-hpa、tftpd或atftpd軟體套件。如果您不確定選擇哪一個,請考慮安裝 tftpd-hpa 軟體套件。
┌──(linuxmi㉿linuxmi)-[~/linuxmi.com] └─$ sudo apt-get install tftpd-hpa

安裝後,TFTP 服務將開始偵聽 UDP 連接埠 69。要透過 TFTP 伺服器將檔案提供給其他系統,您需要記住一些先決條件:
第一是將所需檔案複製到 TFTP 主目錄或該主目錄下的目錄,第二是讓檔案權限對公眾可見
要找出 TFTP 伺服器主目錄是什麼,您可以查看/etc/default/tftpd-hpa檔案中的TFTP_DIRECTORY變數。通常,您會看到/var/lib/tftpboot或/srv/tftp 之類的目錄。如果需要,您可以變更此目錄並重新啟動服務。
┌──(linuxmi㉿linuxmi)-[~/linuxmi.com] └─$ cat /etc/default/tftpd-hpa

為了方便使用,如果您將相關 TFTP 主目錄的擁有者變更為您的使用者帳戶,則無需在執行的每個命令中新增 sudo 前綴。使用 chown 指令將所有權從 root 變更為目前使用者:
sudo chown -R $USER /srv/tftp
TFTP 伺服器套件名稱和預設主目錄可能會因使用的 Linux 發行版而異。
使用 TFTP 伺服器傳送檔案
有時在某些情況下,TFTP 是將檔案從嵌入式 Linux 系統移至外部環境的唯一選擇。例如,有時系統可能不支援任何可用於傳輸檔案的可寫入媒體。
在這種情況下,由於 TFTP 用戶端可能會在busybox中編譯,您可以將系統中儲存的檔案傳送到網路上的 TFTP 伺服器。
要使用 TFTP 用戶端應用程序,請發出busybox tftp命令:
busybox tftp
要將範例檔案傳送到 TFTP 伺服器,您需要使用以下命令:
busybox tftp -l example.bin -p 192.168.1.111
雖然上面的命令是正確的,但在將檔案傳輸到 TFTP 伺服器時會出錯。由於傳回的錯誤訊息不是不言自明的,因此很難理解真正的問題是什麼。
這裡的問題是因為 TFTP 伺服器上的一些安全程式。 TFTP 要求具有相同名稱的檔案應位於將寫入檔案的目錄中,作為檔案上傳的先決條件,且該檔案的寫入權限應可供所有人使用。
換言之,無法透過 TFTP 用戶端上傳 TFTP 伺服器上不存在的檔案。如果您建立同名的空白檔案並編輯其存取權限,則上述上傳過程將會成功。為此,您必須在相關的 TFTP 伺服器主目錄中執行以下命令:
cd /srv/tftp touch example.bin chmod 666 example.bin
現在您可以成功執行上傳了。
也可以停用上述安全措施並讓 TFTP 伺服器建立一個不存在的檔案。為此,您可以在啟動tftpd-hpa應用程式時使用-c或–create參數。將此參數加入/etc/default/tftpd-hpa檔案中現有的TFTPD_OPTIONS變數就足夠了:
# /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure --create"
為什麼要使用 TFTP 伺服器進行檔案傳輸?
TFTP 最重要的優點是速度快,並且可以幫助您節省時間。它是將網路設備的設定檔傳輸到其他系統的理想選擇。此外,它具有非常簡單的使用標準。它可以與基於 Windows 和 Linux 的作業系統上的軟體一起輕鬆運行。最後,在技術上無法使用 FTP 的情況下,TFTP 總是可以挽救局面。
當然,最大的缺點就是不安全。因此,使用 TFTP 伺服器傳輸檔案時必須非常小心。
除了檔案傳輸之外,您不能使用 TFTP 伺服器執行檔案刪除、編輯和修改等功能。對於使用或尋求高級系統的人來說,此功能是一個主要缺點。最後,它不需要身份驗證,如果您認真對待自己的安全性,這是一個主要缺點。
在其他作業系統上設定 TFTP
如果要在 Windows 上使用 TFTP,則無需安裝任何第三方軟體。您可以使用控制台中的開啟或關閉 Windows 功能選項啟用 TFTP。
以上是如何在 Linux 上設定古老又簡單的 TFTP 伺服器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

VS Code擴展安裝失敗的原因可能包括:網絡不穩定、權限不足、系統兼容性問題、VS Code版本過舊、殺毒軟件或防火牆干擾。通過檢查網絡連接、權限、日誌文件、更新VS Code、禁用安全軟件以及重啟VS Code或計算機,可以逐步排查和解決問題。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

VS Code 可以在 Mac 上使用。它具有強大的擴展功能、Git 集成、終端和調試器,同時還提供了豐富的設置選項。但是,對於特別大型項目或專業性較強的開發,VS Code 可能會有性能或功能限制。
