當前位置:首頁 » 操作系統 » linuxtftp源碼

linuxtftp源碼

發布時間: 2024-12-21 01:32:26

① 如何安裝linux的tftp伺服器

安裝tftp伺服器:
需要安裝xinetd、tftp、tftp-server3軟體
1、如果能上網,通過yum安裝:
sudo yum install xinetd
sudo yum install tftp
sudo yum install tptp-server
2、如果不能上網,可以直接安裝提供的rpm包:
sudo rpm -ivh xinetd-2.3.14-18.fc9.i386.rpm
sudo rpm -ivh tftp-0.48-3.fc9.i386.rpm
sudo rpm -ivhtftp-server-0.48-3.fc9.i386.rpm
配置tftp伺服器:
修改/etc/xinetd.d/tftp文件
disable=yes 改為 disable=no
server_args=-s /var/lib/tftpboot 改為 server_args=-s /tftpboot/ -c
修改/etc/sysconfig/selinux文件
SELINUX=disabled (系統默認是enforcing)要改成disabled
chmod 777 /tftpboot 修改/tftpboot文件夾的許可權
啟動 service xinetd restart
查看tftp服務是否開啟:
netstat -a | grep tftp
顯示結果為 udp 0 0 *:tftp *:* 表示服務已經開啟,tftp配置成功
把openwrt-ar71xx-wp543-squashfs-4M-factory.img 文件復制到目錄/tftpboot 下
在目錄/home/x(目錄名)下:
啟動tftp伺服器
sudo in.tftpd -l /tftpboot
tftp 192.168.0.26(本機的IP地址)
tftp>get a(文件名) 在伺服器上下載文件
tftp>put a(文件名) 上傳文件到伺服器上
tftp>q 退出
啟動tftp伺服器:
service tftpd-hpa stop 停止tftp伺服器
service tftpd-hpa start 開啟tftp伺服器
service tftpd-hpa stutus 查看tftp運行狀態
service tftpd-hpa restart 重啟tftp伺服器
(注意:文件傳輸後文件的許可權會發生變化)
進入TFTP操作:
connect:連接到遠程tftp伺服器
mode:文件傳輸模式
put:上傳文件
get:下載文件
quit:退出
verbose:顯示詳細的處理信息
tarce:顯示包路徑
status:顯示當前狀態信息
binary:二進制傳輸模式
ascii:ascii 傳送模式
rexmt:設置包傳輸的超時時間

timeout:設置重傳的超時時間

help:幫助信息

? :幫助信息
-g 表示下載文件 (get)

-p 表示上傳文件 (put)

-l 表示本地文件名 (local file)

-r 表示遠程主機的文件名 (remote file)

例如,要從遠程主機192.168.1.2上下載 embedexpert,則應輸入以下命令:

tftp -g -r embedexpert 192.168.1.2
出現的一些問題及原因(解決方法):
1、Transfer time out.
tftpd服務沒有啟動

2、Error code 0:Permission denied

可能是由SELinux造成的,在FC3和FC3以後的FC版本中SELinux默認的都是開啟的,現在要關掉它。
修改文件/etc/sysconfig/selinux,設定SELINUX=disabled,然後重啟電腦即可
或者 執行命令system-config-securitylevel打開「安全級別配置」對話框,將SELinux(S)選項中「強制」改為「允許」
3、Error code 1:File not found
指定的文件夾不存在;或tftpd啟動參數中沒有指定-c選項,允許上傳文件
4、Error code 2:Only absolute filenames allowed
/etc/xinetd.d/tftpd文件的設置沒設好,只需要將server_args= 改為你自己設定 的伺服器文件夾就行了
5、Error code 2:Access violation
上傳的文件要有相應的可讀寫(覆蓋)的許可權才能上傳,要對文件的許可權進行修改 chmod 777 a(文件名)

② linux tftp伺服器怎麼開啟

第一步:

我們要確認,LINUX下是不是安裝了TFTP-SERVER.

在LINUX下輸入:

rpm -q tftp-server

如出現如下回復:

tftp-server-0.39-2 則表示tftp-server已安裝.

第二步:

修改TFTP啟動腳本:

方法一:

需要修改ftptpd的啟動腳本
vi /etc/xinetd.d/tftp
加上disable =no 此時即可啟動tfpt服務

方法二:

直接輸入:/sbin/chkconfig tftp on

此命令也是在啟動腳本中加上disable=no

腳本修改後的效果如下:

第三步:

啟動TFTP服務

service xinetd restart

這樣我們的服務就啟動OK了.

③ Linux怎麼安裝tftp

第一部分:TFTP開發環境搭建流程

1
第一步: 安裝tftp所需的軟體(黑色加粗字體為linux命令,下同)
搭建TFTP服務所需要安裝的軟體有tftp-hpa,tftpd-hpa以及xinetd,其中:
tftp-hpa : 是客戶端軟體; root# apt-get install tftp-hpa
tftpd-hpa : 是服務程序; root# apt-get install tftpd-hpa
xinetd : 是新一代進程守護程序。 root# apt-get install xinetd

2
第二步: 配置xinetd.conf配置文件
進入/etc目錄,首先看目錄中有沒有一個xinetd.conf文件,如果沒有則新建一個,有的話查看其內容:
root# cat xinetd.conf
看是否與下面的一致,內容如下所示:
若不一致則運行如下命令,修改為相同即可。
root# gedit xinetd.conf

3
第三步: 配置tftpd-hpa配置文件
修改tftpd-hpa配置文件的內容:
root# gedit /etc/default/tftpd-hpa
將內容修改成:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"
修改成功後,如下圖所示,保存退出。

註解:TFTP_DIRECTORY="/tftpboot"表示tftp伺服器的工作目錄,用戶可根據自己的實際情況進行更改。

指定了tftp服務的工作目錄後,我們需要在相應的路徑下建立該tftp工作目錄,命令如下:
root# mkdir –p /tftpboot
修改工作目錄的許可權為777,777是最松的許可權,這樣不僅可以允許別的主機或者目標機下載,同時允許其上傳文件。命令為:
root# chmod 777 /tftpboot

4
第四步:配置tftp配置文件
進入/etc下面的xinetd.d文件夾,查看是否有一個tftp文件,如果沒有的話,就新建一個並輸入以下內容,如果有的話就查看內容是否與下面的一致,不一致則修改,內容如下:
root# gedit tftp

service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot -c
per_source = 11
cps = 100 2
flags =IPv4
}
修改之後,如圖所示:
其中server_args一行是配置伺服器的文件存放的位置,就是進行tftp傳輸的時候,都是從該文件夾中搜索文件的。然後保存文件,並退出編輯。

5
第五步:重新啟動TFTP
重啟tftpd-hpa,提示如下圖:
root# service tftpd-hpa restart

6
第六步:重新載入xinetd
重新載入xinetd進程,提示如下圖:
root# /etc/init.d/xinetd reload

7
第七步:重新啟動xinetd
重啟xinetd服務,提示如下圖:
root# /etc/init.d/xinetd restart
每次修改完配置文件後,都需要重新啟動一下服務。
至此,嵌入式Linux系統下搭建TFTP開發環境大功告成,下面介紹如何測試TFTP

END
第二部分:測試TFTP服務

1
第一步:新建測試文件
首先在tftp的工作目錄"/tftpboot"中新建一個文件test,在其中輸入任意內容,例如內容如下圖:

2
第二步:進入測試目錄
然後進入任意一個不同於/tftpboot的目錄(例如/opt目錄下),然後在終端中輸入如下命令,進入tftp命令符下,如下圖:
root# tftp localhost

3
第三步:獲取測試文件
輸入如下命令,再按回車,獲取存放在tftp工作目錄/tftpboot中的"test"文件。如果沒有任何提示,就說明傳輸成功了,如下圖所示:
root# get test

4
第四步:退出TFTP測試
輸入 q 退出tftp命令行,如下圖所示:

5
修改test文件後,可以在tftp命令中輸入 如下命令,把修改過的test文件上傳到伺服器文件夾中。
root# put test
其效果圖,在此不再給出,讀者可以自行測試。
END
第三部分:腳本程序自動搭建TFTP開發環境

鑒於TFTP服務的安裝過程十分繁復,且容易出錯,下面給出腳本代碼,自動安裝該服務。
新建一個空文件,將下面代碼復制,保存之後,修改文件許可權,使之具有執行許可權後,就可以自動搭建嵌入式TFTP開發環境了。
以下為腳本代碼:
#!/bin/bash
####################################################
# 搭建TFTP服務所需要安裝的軟體有tftp-hpa,tftpd-hpa以及xinetd,#
# 其中: #
# tftp-hpa : 是客戶端軟體; #
# tftpd-hpa : 是服務程序; #
# xinetd : 是新一代進程守護程序。 #
####################################################
function creat_xinetd_conf
{
echo "# 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 use
log_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info
}
includedir /etc/xinetd.d" > /tmp/xinetd.conf
}
function config_xinetd_conf
{
creat_xinetd_conf
filename=/etc/xinetd.conf
example=/tmp/xinetd.conf
test -f $filename #返回值為0,代表文件存在 返回值為1,代表文件不存在
if [ "$?" -eq 0 ];then
echo "xinetd.conf文件存在"
diff -E $example $filename
case $? in
1) #文件內容有誤
rm -rf $filename
mv -f $example $filename
echo "xinetd.conf文件內容修改成功";;
0) #文件內容正確
rm -rf $example
echo "xinetd.conf文件內容正確";;
*)
rm -rf $example
echo "未知錯誤,程序終止";;
esac
else
echo "xinetd.conf文件不存在,正在創建該文件"
mv -f $example $filename
echo "xinetd.conf文件創建成功"
fi
}
#=============================================#
function modify_tftpd_hpa
{
echo "# /etc/default/tftpd-hpa
TFTP_USERNAME=\"tftp\"
TFTP_DIRECTORY=\"/tftpboot\"
TFTP_ADDRESS=\"0.0.0.0:69\"
TFTP_OPTIONS=\"-l -c -s\"" > /tmp/tftpd-hpa
rm -rf /etc/default/tftpd-hpa
mv -f /tmp/tftpd-hpa /etc/default/tftpd-hpa
echo "tftpd_hpa 文件內容修改成功"
mkdir -p /tftpboot
chmod 777 /tftpboot
}
#=============================================#
function modify_tftp
{
echo "service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot -c
per_source = 11
cps = 100 2
flags =IPv4
}" > /tmp/tftp
rm -rf /etc/xinetd.d/tftp
mv -f /tmp/tftp /etc/xinetd.d/tftp
echo "tftp 文件內容修改成功"
}
#=============================================#
function test_tftp
{
echo "This is a test file" > /tftpboot/TEST
cd /tmp
echo "請在終端命令行中依次鍵入\"get TEST\"以及\"quit\""
tftp localhost
cat /tmp/TEST # 返回值為0,表示成功查看指定的文件 返回值為1,表示不能正常查看指定的文件
if [ $? -eq 0 ]; then
echo "tftp 測試成功,可以正常使用"
rm -rf /tftpboot/TEST /tmp/TEST
else
echo "tftp 測試失敗,請檢查tftp配置"
rm -rf /tftpboot/TEST /tmp/TEST
fi
}
#=============================================#
function step_1 #安裝TFTP相關服務
{
apt-get update #安裝軟體之前,先升級一下資料庫,獲取軟體包的最新相關信息
apt-get install tftp-hpa #安裝TFTP服務的客戶端軟甲
apt-get install tftpd-hpa #安裝TFTP服務的伺服器端軟體
apt-get install xinetd #安裝新一代進程守護程序
}
function step_2 #配置TFTP相關服務
{
config_xinetd_conf #配置/etc/xinetd.conf文件
modify_tftpd_hpa #修改/etc/default/tftp-hpa文件
modify_tftp #安裝TFTP服務的伺服器端軟體
}function step_3 #重啟TFTP相關服務
{service tftpd-hpa restart #重新啟動tftpd-hpa
/etc/init.d/xinetd reload #重新載入xinetd服務程序
/etc/init.d/xinetd restart #重新啟動xinetd服務程序
}function step_4 #測試TFTP相關服務
{
test_tftp #測試tftp服務
}
echo "選項1 安裝TFTP相關服務"
echo "選項2 配置TFTP相關服務"
echo "選項3 重啟TFTP相關服務"
echo "選項4 測試TFTP相關服務"
echo "鍵入quit,退出TFTP安裝"
echo "請鍵入數值,執行您所需要的操作: "
read -r Step
while [ $Step != quit ]
do
while [ $Step -lt 1 -o $Step -gt 4 ]
do
echo "對不起,您輸入的選項有誤,請輸入數字1—4之間的數值!"
read -r Step
done
case "$Step" in
1)
read -p "安裝過程中出現的選項,請直接確定,不必更改,按任意鍵繼續安裝"
step_1;;
2)
step_2;;
3)
step_3;;
4)
step_4;;
*)
echo "出現致命錯誤,請檢查腳本程序!";;
esac
echo "操作已完成!"
echo "============================="
echo " "
echo " "
echo " "
echo " "
echo "選項1 安裝TFTP相關服務"
echo "選項2 配置TFTP相關服務"
echo "選項3 重啟TFTP相關服務"
echo "選項4 測試TFTP相關服務"
echo "鍵入quit,退出TFTP安裝"
echo "請鍵入數值,執行您所需要的操作: "
read -r Step
echo " "
echo " "
done
exit

④ Linux tftp命令詳解 Linux tf

Linux中的TFTP命令是一種簡單網路協議,專門用於下載遠程文件,它基於UDP協議構建。以下是關於Linux伺服器端tftp-server配置的詳細步驟:

首先,安裝必要的軟體包,包括xinetd、tftp和tftp-server。在有網路連接的情況下,通過命令行依次執行:

sudo yum install xinetd
sudo yum install tftp
sudo yum install tftp-server

接著,配置tftp伺服器。在/etc/xinetd.d/tftp配置文件中,將disable項的值從yes改為no,以啟用服務。設置TFTP伺服器的根目錄和相關參數,如ser.ver_args = -s /home/mike/tftpboot -c,其中/home/mike/tftpboot應替換為你的實際根目錄。

啟動服務並關閉防火牆,使用systemctl命令:先關閉防火牆,然後啟動xinetd:

sudo systemctl stop firewalld
sudo systemctl enable xinetd
sudo systemctl start xinetd

驗證服務是否運行正常,可以使用netstat檢查tftp監聽埠:

netstat -a | grep tftp

要測試tftp命令,先將文件復制到伺服器目錄,然後在本地主機上運行tftp命令,如get下載文件、put上傳文件,最後退出:

tftp your-ip-address
get download file
put upload file
quit

TFTP命令的完整用法包括connect、mode、put、get、quit等,具體可參考《linux就該這么學》一書的相應章節。如果遇到"AVC Denial"錯誤,可能需要調整SELinux設置,如將SELINUX設為disable或使用setenforce 0命令臨時禁用。

以上就是Linux TFTP命令的詳解和配置過程,希望對你有所幫助。

熱點內容
絕對賽車3安卓在哪裡下載 發布:2025-02-01 12:42:30 瀏覽:715
mysql修改資料庫字元 發布:2025-02-01 12:37:52 瀏覽:566
阿里雲伺服器出廠密碼是多少 發布:2025-02-01 12:35:43 瀏覽:664
手機傳文件伺服器和ip地址 發布:2025-02-01 12:15:01 瀏覽:657
兒子編程課 發布:2025-02-01 12:15:00 瀏覽:900
zsh腳本 發布:2025-02-01 12:13:48 瀏覽:595
android亮度獲取 發布:2025-02-01 12:09:10 瀏覽:624
小孩什麼時候學編程比較好 發布:2025-02-01 12:03:10 瀏覽:960
c語言的認識 發布:2025-02-01 11:58:03 瀏覽:520
svn連接伺服器地址 發布:2025-02-01 11:51:31 瀏覽:416