我之前使用的是 14.04,我能夠設定並使 tftp 伺服器和客戶端工作。現在我升級到 14.10,tftp 伺服器不再工作
這就是我所做的:
安裝軟體包。
sudo apt-get install tftpd-hpa
編輯設定檔如下。
sudo vi /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="-s -c -l"
建立 TFTP 資料夾。
sudo mkdir /tftpboot sudo chmod -R 777 /tftpboot sudo chown -R nobody /tftpboot
重新啟動應用程式以套用新配置。
sudo service tftpd-hpa restart
(來源)
當時,我不知道這tftpd-hpa
是用於 TFTP 伺服器的軟體包,也是tftp-hpa
用於 TFTP 用戶端的軟體包,所以我所做的是為 TFTP 用戶端安裝另一個軟體包。
安裝以下軟體包:
sudo apt-get install xinetd tftpd tftp
更改
/etc/xinetd.d
目錄的權限。sudo chmod –R 777 xinetd.d
建立一個名為 tftp 的檔案
/etc/xinetd.d
並寫入以下內容:service tftp { socket_type = dgram protocol = UDP. WAIT = YES user = root server = /usr/sbin/in.tftpd server_args =-s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }
儲存並退出。
建立
tftpboot
目錄並更改權限。cd / sudo mkdir /tftpboot chmod –R 777 /tftpboot
重新啟動服務
sudo /etc/init.d/xinetd restart
安裝 TFTP 伺服器和另一個 TFTP 用戶端軟體包的逐步過程在 14.04 中有效,但在 14.10 中無效,我認為第二次安裝和設定 ( sudo apt-get install xinetd tftpd tftp
) 是 TFTP 伺服器無法工作的罪魁禍首。我已經卸載了我認為不需要的軟體包。但 TFTP 伺服器仍然無法運作。我該怎麼做才能讓 TFTP 伺服器正常運作?
答案1
這對我有用:
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /tftpboot
disable = no
}
答案2
這是一個老問題,但對於任何尋求清晰性的人來說,我的答案可能會有所幫助:
tftpd-hpa
是一個獨立的 tftp 伺服器 - 它不需要配置 xinetd 即可工作,事實上我讀過的一些建議將導致 和 之間對連接埠 69 的爭tftpd-hpa
用xinetd
!
這回答 用戶在該頁面的其他地方風暴就是一個例子。我確信此xinetd
配置可以與其他一些 tftp 包一起使用,但我不知道它如何與tftpd-hpa
.
看一下tftpd-hpa
in的預設配置/etc/default/tftpd-hpa
:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"
除非您需要具有更多選項的解決方案,否則您應該確保不要配置xinetd
為處理 tftp 或偵聽連接埠 69(或根本不安裝它)。/etc/default/tftpd-hpa
根據您的需要進行編輯,然後運行sudo systemctl restart tftpd-hpa
,您應該會很好。您可以透過以下方式驗證:
$ sudo netstat -tulpn | grep 69
udp 0 0 0.0.0.0:69 0.0.0.0:* 45262/in.tftpd
udp6 0 0 :::69 :::* 45262/in.tftpd