ftp開發板
Red Hat Linux下架設FTP伺服器
FTP,即File Transfer Protocol,文件傳輸協議。它是目前Internet上最流行的數據傳送方法之一。利用FTP協議,我們可以在FTP伺服器和FTP客戶端之間進行雙向數據傳輸,既可以把數據從FTP伺服器上下載到本地客戶端,又可以從客戶端上傳數據到遠程FTP伺服器。
1.安裝vsftpd伺服器
vsftpd是目前Linux最好的FTP伺服器工具之一,其中的vs就是「Very Secure」(很安全)的縮寫,可見它的最大優點就是安全,除此之外,它還具有體積小,可定製強,效率高的優點。
如果選擇完全安裝RedHat Linux 9.0,則系統會默認安裝vsftpd伺服器。我們可以在終端命令窗口輸入以下命令進行驗證:
[root@ahpeng root] rpm -qa | grep vsftpd
如果結果顯示為「vsftpd-1.1.3-8」,則說明系統已經安裝vsftpd伺服器。如果安裝RedHat Linux 9.0時沒有選擇vsftpd伺服器,則可以在圖形環境下單擊「主菜單→系統設置→添加刪除應用程序」菜單項,在出現的「軟體包管理」對話框里確保選中「FTP伺服器」選項,然後單擊「更新」按鈕,按照屏幕提示插入第3張安裝光碟即可開始安裝。
另外,你也可以直接插入第3張安裝光碟,定位到/RedHat/RPMS下的vsftpd-1.1.3-8.i386.rpm安裝包,然後在終端命令窗口運行以下命令即可開始安裝進程:
[root@ahpeng RPMS] rpm -ivh vsftpd-1.1.3-8.i386.rpm
2.啟動/重新啟動/停止vsftpd服務
從Red Hat Linux9.0開始,vsftpd默認只採用standalone方式啟動vsftpd服務,方法是在終端命令窗口運行以下命令:
[root@ahpeng root] /etc/rc.d/init.d/vsftpd start
重新啟動vsftpd服務:
[root@ahpeng root] /etc/rc.d/init.d/ vsftpd restart
關閉vsftpd服務:
[root@ahpeng root] /etc/rc.d/init.d/ vsftpd stop
確認vsftpd服務已經啟動後,我們可以在任意一台Windows主機的DOS命令窗口裡輸入「ftp FTPAddres」(用實際的FTP伺服器ip地址或者域名代替FTPAddres),注意用戶名、密碼都是ftp(ftp是匿名用戶的映射用戶賬號),如下所述:
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
F:\Peter>;ftp FTPAddress
Connected to FTPAddress
220 (vsFTPd 1.1.3) //vsftpd的響應請求
User (FTPAddress:(none)): ftp //輸入用戶賬號ftp
331 Please specify thepassword.
Password: //輸入密碼ftp
230 Login successful. Havefun.
ftp>;
3.vsftpd的配置
在Red HatLinux 9.0里的vsftpd共有3個配置文件,它們分別是:
vsftpd.ftpusers:位於/etc目錄下。它指定了哪些用戶賬戶不能訪問FTP伺服器,例如root等。
vsftpd.user_list:位於/etc目錄下。該文件里的用戶賬戶在默認情況下也不能訪問FTP伺服器,僅當vsftpd .conf配置文件里啟用userlist_enable=NO選項時才允許訪問。
vsftpd.conf:位於/etc/vsftpd目錄下。它是一個文本文件,我們可以用Kate、Vi等文本編輯工具對它進行修改,以此來自定義用戶登錄控制、用戶許可權控制、超時設置、伺服器功能選項、伺服器性能選項、伺服器響應消息等FTP伺服器的配置。
(1)用戶登錄控制
anonymous_enable=YES,允許匿名用戶登錄。
no_anon_password=YES,匿名用戶登錄時不需要輸入密碼。
local_enable=YES,允許本地用戶登錄。
deny_email_enable=YES,可以創建一個文件保存某些匿名電子郵件的黑名單,以防止這些人使用Dos攻擊。
banned_email_file=/etc/vsftpd.banned_emails,當啟用deny_email_enable功能時,所需的電子郵件黑名單保存路徑(默認為/etc/vsftpd.banned_emails)。
(2)用戶許可權控制
write_enable=YES,開啟全局上傳許可權。
local_umask=022,本地用戶的上傳文件的umask設為022(系統默認是077,一般都可以改為022)。
anon_upload_enable=YES,允許匿名用戶具有上傳許可權,很明顯,必須啟用write_enable=YES,才可以使用此項。同時我們還必須建立一個允許ftp用戶可以讀寫的目錄(前面說過,ftp是匿名用戶的映射用戶賬號)。
anon_mkdir_write_enable=YES,允許匿名用戶有創建目錄的權利。
chown_uploads=YES,啟用此項,匿名上傳文件的屬主用戶將改為別的用戶賬戶,注意,這里建議不要指定root賬號為匿名上傳文件的屬主用戶!
chown_username=whoever,當啟用chown_uploads=YES時,所指定的屬主用戶賬號,此處的whoever自然要用合適的用戶賬號來代替。
chroot_list_enable=YES,可以用一個列表限定哪些本地用戶只能在自己目錄下活動,如果chroot_local_user=YES,那麼這個列表裡指定的用戶是不受限制的。
chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,則指定該列表(chroot_local_user)的保存路徑(默認是/etc/vsftpd.chroot_list)。
nopriv_user=ftpsecure,指定一個安全用戶賬號,讓FTP伺服器用作完全隔離和沒有特權的獨立用戶。這是vsftpd系統推薦選項。
async_abor_enable=YES,強烈建議不要啟用該選項,否則將可能導致出錯!
ascii_upload_enable=YES;ascii_download_enable=YES,默認情況下伺服器會假裝接受ASCⅡ模式請求但實際上是忽略這樣的請求,啟用上述的兩個選項可以讓伺服器真正實現ASCⅡ模式的傳輸。
注意:啟用ascii_download_enable選項會讓惡意遠程用戶們在ASCⅡ模式下用「SIZE/big/file」這樣的指令大量消耗FTP伺服器的I/O資源。
這些ASCⅡ模式的設置選項分成上傳和下載兩個,這樣我們就可以允許ASCⅡ模式的上傳(可以防止上傳腳本等惡意文件而導致崩潰),而不會遭受拒絕服務攻擊的危險。
(3)用戶連接和超時選項
idle_session_timeout=600,可以設定默認的空閑超時時間,用戶超過這段時間不動作將被伺服器踢出。
data_connection_timeout=120,設定默認的數據連接超時時間。
(4)伺服器日誌和歡迎信息
dirmessage_enable=YES,允許為目錄配置顯示信息,顯示每個目錄下面的message_file文件的內容。
ftpd_banner=Welcome to blah FTP service,可以自定義FTP用戶登錄到伺服器所看到的歡迎信息。
xferlog_enable=YES,啟用記錄上傳/下載活動日誌功能。
xferlog_file=/var/log/vsftpd.log,可以自定義日誌文件的保存路徑和文件名,默認是/var/log/vsftpd.log。
② 如何搭建一台Linux開發伺服器
在開發過程中,必然會出現多人同時工作、協著的情況,在嵌入式開發項目中更為平常,這樣可以加快項目周期,為產品上市佔得時間先機。目前,使用Linux作為開發產品的操作系統情況越來越多,使用越來越廣泛。為了交叉編譯,為了最接近開發目標,我們一般都會自己搭建一台Linux開發伺服器。Linux開發伺服器一些常用的功能必須支持,比如Samba、nfs、tftp、httpd等。 首先我們需要選擇合適的Linux操作系統作為伺服器的系統,推薦使用Fedora8、Fedora10等,筆者在長期使用的過程中覺得比較穩定吧!如何安裝該操作系統就不多說了。 裝好系統後,需要增加Linux OS用戶,可以使用命令#adser XXX;增加XXX用戶,#passwd XXX給其設置登錄密碼。當然使用圖形化創建用戶也很直觀、方便。在這個環節值得注意的一定要設置好該用戶的home目錄,一般都會設置到該用戶的工作目錄,各個用戶的工作目錄需要私有化、獨立開來,這樣方便些、安全些。 多用戶的賬戶有了,我們應該來打通網路功能了,Fedora有bug,在圖形化配置GATEWAY什麼的會不成功,請安裝如下方法修改: # cd cd /etc/sysconfig/network-scripts/ # vi ifcfg-eth0 修改配置文件如下: # Marvell Technology Group Ltd. 88E8001 Gigabit Ethernet Controller DEVICE=eth0 HWADDR=00:16:e6:db:c2:96 ONBOOT=yes BOOTPROTO=static //這個應該是「static」,而不是「dhcp」或「none」; USERCTL=yes PEERDNS=yes IPV6INIT=no NM_CONTROLLED=yes//這個應該是「yes」,如不修改,鏈接仍是disconnected; TYPE=Ethernet NETMASK=***.***.***.*** IPADDR=***.***.***.*** DNS1=***.***.***.*** DNS2=***.***.***.*** GATEWAY=***.***.***.*** step 3: # service network restart 接下來就需要調試一下Samba功能了,這樣在windows下編輯Linux下的代碼將非常的便利。命令行下操作方法如下: Vim /etc/samba/smbusers # Unix_name = SMB_name1 SMB_name2 … root = administrator admin nobody = guest pcguest smbguest dssun = dssun hmchen = hmchen 增加Samba用戶; Vim /etc/samba/smb.conf [dssun] comment = * path = /opt/STM/STLinux-2.3/devkit/dtvkit/dssun writeable = yes ; browseable = yes valid users = bluo, dssun, hmchen, hqian, sbxiang, tsfu, yrli 設置工作路徑,可讀寫性、有效訪問的用戶等。 在圖形化下也有配置菜單,這個就很簡單了,不再敘述。 有了Samba就方便很多了!編譯編輯都很不錯了!接下來要著手你的開發平台軟體,這個對於不同平台的SDK有不同的處理方法,根據自己的SDK來處理。 有了SDK後,我們編譯通過後,一般都會進行調試,如何方便的調試呢?一般都會想到使用nfs調試。 以Fedora為例,一般默認安裝的沒有包括tftp功能,可以使用yum來安裝,方便! #yum install tftp; #yum install tftp-server 還需要更改一下tftp的配置,如下: vim /etc/xinetd.d/tftp 修改server_args = -s /tftpboot -c,這里的-c一定要加上,否則只能下載不能上傳!!! 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 } # mkdir /tftpboot # chmod 777 -R /tftpboot/ # service xinetd restart 記得要關閉防火牆、seLinux.不disabled seLinux,Samba有可能只能讀不能寫,切記。
③ 在linux系統中,哪些常用的服務需要構建
3.1Telnet
協議是TCP/IP協議族中的一員,是Internet遠程登陸服務的標准協議和主要方式。它為用戶提供了在本地計算機上完成遠程主機工作的能力。在終端使用者的電腦上使用telnet程序,用它連接到伺服器。終端使用者可以在telnet程序中輸入命令,這些命令會在伺服器上運行,就像直接在伺服器的控制台上輸入一樣。可以在本地就能控制伺服器。要開始一個telnet會話,必須輸入用戶名和密碼來登錄伺服器。Telnet是常用的遠程式控制制Web伺服器的方法。
在Linux的命令行窗口輸入「telnet 192.168.1.230」,如圖出現登錄界面,根據提示輸入用戶名和密碼即可。
3.2FTP
伺服器(File Transfer Protocol Server)是在互聯網上提供文件存儲和訪問服務的計算機,它們依照FTP協議提供服務。 FTP是File Transfer Protocol(文件傳輸協議)。顧名思義,就是專門用來傳輸文件的協議。簡單地說,支持FTP協議的伺服器就是FTP伺服器。
無論在Linux系統還是windows系統中,一般安裝後都自帶一個命令行的ftp命令程序,使用ftp可以登錄遠程的主機,並傳遞文件,這需要主機提供ftp服務和相應的許可權;我們可以從PC機的命令行窗口登錄開發板,並向開發板傳遞文件。
在Linux的命令行窗口輸入命令ftp 192.168.1.230即對方的IP地址,即可連接上指定地址的伺服器,根據提示輸入用戶名和密碼即可登錄。
3.3ssh
為Secure Shell的縮寫,由 IETF 的網路小組(Network Working Group)所制定;SSH 為建立在應用層基礎上的安全協議。SSH 是目前較可靠,專為遠程登錄會話和其他網路服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。SSH最初是UNIX系統上的一個程序,後來又迅速擴展到其他操作平台。SSH在正確使用時可彌補網路中的漏洞。SSH客戶端適用於多種平台。幾乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix,以及其他平台,都可運行SSH。
可以在PC上通過網路進入開發板上的字元終端進行操作,方法如下:
1)在開發板上連接乙太網線開機(或者連接USB Wifi),然後在串口終端上用ifconfig 命令查看一下開發板的IP地址,如果沒有連接串口終端,也可以在LCD上進入網路設置應用,設置一個IP地址,例如192.168.1.230
2)現在回到PC ,在PC Linux命令行下,假設開發板的IP地址是192.168.1.230,則輸入命令[email protected],然後輸入密碼fa即可進入開發板的字元終端
3.4 NFS伺服器
掌握NFS伺服器的安裝、配置和使用掌握NFS客戶端的配置掌握掛載和卸載共享目錄了解Windows文件共享的基本概念和Samba伺服器的功能掌握Samba伺服器的配置管理掌握Samba客戶程序的使用了解TFTP掌握TFTP伺服器的配置管理掌握TFTP客戶端程序的使用
3.5 TFTP伺服器
Ubuntu中TFTP伺服器配置:apt-get install tftp-hpa tptpd-hpa下載TFTP伺服器,sudo vim /etc/default/tftpd-hpa
內容如下:
TFTP_USERNAME=「tftp」
TFTP_DIRECTORY=」/home/linux/tftpboot」
TFTP_ADDRESS=」0.0.0.0:69」
TFTP_OPTIOS=」--secure」
sudo service tftpd-hpa stop
sudo service tftpd-hpa start
sudo service tftpd-hpa status
sudo service tftpd-hpa restart
然後可以在別的主機使用命令tftp <伺服器ip>
使用命令:get <filename> 上傳本地文件到TFTP伺服器,put<filename>下載TFTP伺服器的文件到本地
NFS是SUN開發的,用於Unix機器之間的資源共享。目前被廣泛應用於Linux系統之間的資源共享。
Samba伺服器
主要用於在Windows和Unix之間共享資源。資源包括文件、列印機等等。目前被廣泛應用於Windows與Linux之間實現資料共享。
配置文件smb.conf。/etc/samba/smb.conf
輸入"sudo service smbd restart"重啟samba服務-->回車-->服務重啟成功訪問共享名為myshare的共享目錄
在"運行"窗口中輸入"\192.168.1.4"-->回車-->雙擊打開myshare-->回車-->輸入用戶名和密碼-->回車-->訪問成功。
④ 在嵌入式linux中開啟ftp服務,如何加上用戶名和密碼呢
使用命令:useradd nobody
useradd -d /var/ftp ftp
然後,新增/user/share/empty目錄:mkdir /usr/share/empty
如果不行就設置匿名登錄許可權
⑤ ftp源碼怎麼搞定用c寫的,或者c++寫的,求啊急啊
nfs歸linux內核管
ftp的話,裝pureftp吧,比較小,貌似