如何在 Ubuntu 14.10 (utopic) 中安裝和設定 tftp 伺服器?

如何在 Ubuntu 14.10 (utopic) 中安裝和設定 tftp 伺服器?

我之前使用的是 14.04,我能夠設定並使 tftp 伺服器和客戶端工作。現在我升級到 14.10,tftp 伺服器不再工作

這就是我所做的:

  1. 安裝軟體包。

    sudo apt-get install tftpd-hpa
    
  2. 編輯設定檔如下。

    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"
    
  3. 建立 TFTP 資料夾。

    sudo mkdir /tftpboot
    sudo chmod -R 777 /tftpboot
    sudo chown -R nobody /tftpboot
    
  4. 重新啟動應用程式以套用新配置。

    sudo service tftpd-hpa restart
    

來源

當時,我不知道這tftpd-hpa是用於 TFTP 伺服器的軟體包,也是tftp-hpa用於 TFTP 用戶端的軟體包,所以我所做的是為 TFTP 用戶端安裝另一個軟體包。

  1. 安裝以下軟體包:

    sudo apt-get install xinetd tftpd tftp
    
  2. 更改/etc/xinetd.d目錄的權限。

    sudo chmod –R 777 xinetd.d
    
  3. 建立一個名為 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
    }
    
  4. 儲存並退出。

  5. 建立tftpboot目錄並更改權限。

    cd /
    sudo mkdir /tftpboot
    chmod –R 777 /tftpboot
    
  6. 重新啟動服務

    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-hpaxinetd

回答 用戶在該頁面的其他地方風暴就是一個例子。我確信此xinetd配置可以與其他一些 tftp 包一起使用,但我不知道它如何與tftpd-hpa.

看一下tftpd-hpain的預設配置/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

相關內容