Ubuntu 建立tftp服务器
在嵌入式linux開發過程中需要使用tftp方式從Linux主機下載文件到板子中,因此需要在主機linux系統中安裝tftp服務器。
Ubuntu-9.10中安裝tftp服務器的方法如下:
4.2.1 安裝程序
通過軟件管理安裝 tftp tftpd,前者是客戶端,后者是服務程序。系統根據依賴會選上openbsd-inetd。在Ubuntu的終端下輸入命令如下:
sudo apt-get install tftp tftpd
sudo apt-get install xinetd
注:sudo命令意思是:使用管理權限。如果已經進入了管理員模式,那么上面命令就不用加sudo了。直接使用 apt-get install tftp tftpd即可
進入管理模式方法是:
1.?????? 輸入命令:sudo –i 隨后輸入密碼即可(密碼是不顯示的,不要認為有問題哦O(∩_∩)O~)。
2.?????? 輸入命令:sudo su 隨后輸入密碼即可。
上面兩個命令的不同,在linux下試下就明白啦,或者使用百度哦。給個參考圖:
??????????????????????????? ? 使用sudo –i命令
??????????????????????????? ?使用sudo su命令
4.2.2 配置相關服務文件xinetd.conf
在輸入命令前,需要說明一下鍵盤上Tab鍵的使用,這是一個小技巧。例如你要想修改下面的xinetd.conf文件,你只需要輸入cd /e然后按一下Tab鍵,系統會幫您自動補全文件或者文件夾名字。當然這是建立在文件名是唯一的基礎上的,這個方法在開發板的linux下同樣適用,詳細的使用,大家百度下吧。
配置相關服務文件。進入根目錄下的etc文件夾(命令是cd /etc/),首先看目錄中有沒有一個xinetd.conf文件,如果沒有則新建一個,有的話查看內容,看是否與下面的一致,若不一致則修改,內容如下:
# Simple configuration file for xinetd???
#???
# Some defaults, and include /etc/xinetd.d/???
defaults
{
# Please note that you need a log_type line to be able to uselog_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info
}???
includedir /etc/xinetd.d
注:打開xinetd.conf文件(其他文件都是類似)的方法介紹兩種。
1、使用vimxinetd.conf(或者vi xinetd.conf)。打開后處于不能編輯狀態,這時按下鍵盤的字母’I’鍵,即可進入編輯模式。可以使用copy方式,不過最好使用鼠標右鍵copy的方式,不要使用Ctrl+ c的方式。編輯完成后,按下鍵盤的Esc鍵進入vim的命令模式,這時輸入冒號’:’(注意是英文冒號),然后輸入wq即可保存退出。對于vim的詳細介紹請參考vim的命令大全,百度即可。
2、使用geditxinetd.conf。打開后跟windows的記事本操作類似,保存也是使用Ctrl+S,其他就不多說了。初學者推薦使用該方式。
注意如果出現xinetd.conf修改完成后無法保存的問題,提示無權限。那么使用sudo chmod 777 xinetd.conf命令修改一下操作權限即可。
4.2.3 配置tftp服務器
輸入命令:sudo vim /etc/default/tftpd-hpa 或者sudo gedit /etc/default/tftpd-hpa打開tftpd-hpa文件,把內容修改成:
TFTP_USERNAME="tftp"
??? ? TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
??? ? TFTP_OPTIONS="-l -c -s"?
/tftpboot是你tftp服務器的工作目錄,自行修改,注意,在新建工作目錄時,最好修改其權限為777,命令sudo chmod777?/tftpboot。建立方法稍后介紹。
4.2.4 修改tftp文件
使用命令:cd /etc/xinetd.d 進入xinetd.d文件夾。查看是否有tftp文件,如果沒有就新建一個,如果有的話修改成下面的內容。
輸入命令vim tftp(或者gedit tftp),然后查看修改:
service tftp
??? ?{
?????? socket_type = dgram
?????? wait = yes
?????? disable = no
?????? user = root
?????? protocol = udp
?????? server = /usr/sbin/in.tftpd
?????? server_args = -s /tftpboot
?????? #log_on_success += PID HOST DURATION
?????? #log_on_failure += HOST
?????? per_source = 11
?????? cps =100 2
?????? flags =IPv4
??? ?}
其中server_args一行是配置服務器的文件存放的位置,就是進行tftp傳輸的時候,都是從該文件夾中搜索文件的。
4.2.5 建立tftpboot文件夾及修改其權限
輸入命令:sudo mkdir /tftpboot
然后修改成最寬松的權限:sudo chmod 777 /tftpboot
4.2.6 重新啟動服務
先輸入命令:sudo /etc/init.d/xinetd reload重新加載一下進程。
然后輸入命令:sudo /etc/init.d/xinetd restart重啟服務。
注意,每次修改完配置文件后,都需要重新啟動一下服務。
4.2.7 測試tftp服務器
檢查tftp是否打開:chkconfig--list 如果沒有打開,則用這個命令也可以打開:sudo chkconfig tftp on。
通過以上步驟就可以建立好tftp服務器了,可以在本地先進行一下測試。
一、先在tftpboot建立一個文件,隨意建立,然后在文件里隨意輸入信息。命令是:
?????? 1.輸入:cd /tftpboot進入tftpboot文件夾。
?????? 2.輸入:touch realarm.txt建立一個realarm.txt文件。
3.輸入:vim realarm.txt 然后輸入”tftp test”編輯方法見4.2.2的“注”。或者使用gedit realarm.txt進行編輯。我使用的是gedit進行的編輯,如下圖所示。
二、進入另一個文件夾進行測試(是非tftpboot文件夾,統一一下,我們選擇在根目錄的mnt文件夾下測試)
?????? 1.先進入mnt文件夾:cd /mnt
?????? 2.輸入命令:sudo tftp 127.0.0.1(或者sudo tftp localhost也就是本機ip地址)
?????? 3.輸入命令:get realarm.txt 如果received提示,就說明傳輸成功了
?????? 4.輸入命令:q退出tftp模式
?????? 5.輸入命令:ls查看mnt目錄是否有realarm.txt文件。
先來看看mnt文件夾下有哪些文件
可以看到只有hgfs文件夾,其他沒有任何文件。
tftp測試操作演示如下:
可以看到操作成功。那么打開來看看內容是否一樣。輸入gedit realarm.txt或者使用vim realarm.txt。看下圖所示可知,tftp建立與測試已經成功了,呵呵。又向成功邁進一步啦!
上面測試的是接收文件,發送文件也是可以的,使用put命令。在mnt文件夾隨意建立一個文件,隨意輸入信息。然后使用“put 文件名“即可。
若在使用put時出現如下錯誤
Access violation
原因在于:tftp服務器默認可以下載,但是上傳就必須在tftpboot目錄下有一個同名文件,并且要有可讀寫的權限!
解決方法如下:
首先tftpboot目錄要有讀寫權限,為了確保可使用命令sudo chmod 777 /tftpboot進行修改。
在tftpboot目錄下建立一個要上傳的同名文件,并改變權限為777(或者666),就可以了正常put了。
?
?????? busybox的tftp用法簡要說明
tftp [OPTION]...HOST [PORT]
OPTION:
-l FILE ?本地文件
-r FILE ?遠程文件
-g 下載
-p 上傳
例子:
下載:tftp -r test.txt -g 192.168.1.100
上傳:tftp -l test.txt -rtest.txt -p 192.168.1.100總結
以上是生活随笔為你收集整理的Ubuntu 建立tftp服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu下共享目录的设置
- 下一篇: 在 ubuntu 上编译 qtopia-