Ubuntu下配置tftp服務
1.安裝TFTP軟體
釋放許可權:(伺服器目錄,需要設定許可權為777,chomd 777)
3.配置TFTP伺服器
將原來的內容為:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_ADDRESS="0.0.0.0:69"
#修改為
3.重新啟動TFTP服務
4.測試下
$ cd ~/tftpboot echo "hello tftp service">>a.txt
$ echo "hello tftp service,put to tftp serive">>b.txt
$ tftp localhost
tftp> get a.txt
tftp> put b.txt
tftp> quit
其中get是取得檔案,put是將檔案上傳到TFTP伺服器上。
-----------------------------------------------------------------------
Ubuntu 10.10安裝配置tftp服務
作者:鄧雪峰,華清遠見嵌入式學院講師。
最近在講解ubuntu 10.10相關的基礎課程的時候,課堂上給同學們講過了tftp相關的配置,雖然相關的配置很簡單的幾步就可以實現tftp服務的配置,但是同學在下課做 實驗的過程中遇到了很多問題,因此,在網上仔細找了一下原因,現把tftp配置過程及相關的配置及容易出現的錯誤總結一下。
TFTP(Trivial File Transfer Protocol,簡單檔案傳輸通訊協定)是TCP/IP協議族中的一個用來在客戶機與伺服器之間進行簡單檔案傳輸的協議,提供不複雜、開銷不大的檔案傳輸服務。連接埠號碼為69。它基於UDP協議而實現。
在我們的使用過程中,我們的TFTP服務是利用xinetd進程起動的,所以下面先看一下xinetd 的介紹:xinetd即extended internet daemon,xinetd是新一代的網路守護進程服務程式,又叫超級Internet伺服器。經常用來管理多種輕量級Internet服務。 xinetd提供類似於inetd+tcp_wrapper的功能,但是更加強大和安全。
一般來說,我們如果啟動tftp服務,只要做如下的配置就可以了:
1、編輯/etc/xinetd.d/tftp檔案,本檔案為xinetd對tftp服務支援的設定檔,一般來說這個檔案會有如下所示的內容:
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
}
一般來說,在這個設定檔中,我們要注意的就是對tftp伺服器共用目錄的設定,也就是server_args=-s /tftpboot這一行,我們可以看到這行有個參數-s,那麼對這個配置還有幾個相關的參數,現介紹一下:
-l使用standalone模式運行,此模式下,將會忽略-t選項
-a address:port在standalone模式下服務所在的IP與連接埠,如果不指定,則在本機所有IP,/etc/service中指定的port上偵聽串連
-c允許在伺服器上建立檔案,否則只允許更新現有的檔案。如果未指定-U或-p選項,則允許任何人上傳檔案
-s directory伺服器端預設的目錄,預設為/var/lib/tftpdboot
-u usernametftp服務以什麼身份運行,預設是nobody,一般可以建立一個tftp的帳號來運行
-U umask上傳檔案的掩碼,如果未指定-p則為000,如果指定了-p,則採用指定的umask
-p對於通過-u指定的使用者執行的動作,不做額外的許可權檢查
2、建立共用目錄
按照上一步中配置的目錄,建立tftp服務共用目錄步驟如下:
cd /
sudo mkdir tftpboot
sudo chmod –R 777 tftpboot
cd /tftpboot
sudo touch test
chmod 777 test
在本步驟中,建立了一個tftpboot的目錄,並在目錄下建立了一個名為test的檔案用來測試,把他們的許可權均改為777以備使用。
3、啟動tftp服務
我們的tftp服務此時是利用xinetd進程起動的,故啟動命令如下:
sudo /etc/init.d/xinetd restart
4、測試tftp服務
可以 利用ifconfig eth0查看本機IP地址後利用tftp串連至原生tftp伺服器,但是如果想在本機上測試可以利用127.0.0.1地址來測試以上步驟是否成功:
tftp 127.0.0.1
tftp>get test
Received 1018 bytes in 0.1 seconds
tftp>quit
此時如果在目前的目錄下發現test檔案,則tftp服務已經正確運行。
但是,在保證以上步驟沒有誤操作的情況下,有些同學雖然配置運行都沒有問題了,到最後擷取檔案的時候會出現問題,主要會出現以下兩個提示:(下面是我在網上找到的解決辦法)
1:如果出現permission denied 錯誤 則是操作者許可權不夠,需要提升許可權
su root
輸入密碼後就可以正常進行tftp傳輸操作了
2:如果出現Access violation錯誤 則是檔案許可權沒有解開,
將要操作的檔案操作許可權全解開就可以了
chmod 777 檔案名稱
第一個錯誤一般來說按照上面的辦法都可以修正,但是第二個錯誤按照以上方法修改後如果還是出現的話,可以看看下面的這個檔案/etc/inetd.conf,然後在其中找到這樣的一行:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp
要把最後一個參數改成我們自己設定的tftp共用目錄就可以了,即:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot