Redhat Linux FTP配置 檔案傳輸通訊協定(FTP:FileTransfer Protocol)使得主機間可以共用檔案。 FTP 使用 TCP 產生一個虛擬串連用於控制資訊,然後再產生一個單獨的 TCP 串連用於資料轉送。控制串連使用類似 TELNET 協議在主機間交換命令和訊息。檔案傳輸通訊協定是TCP/IP網路上兩台電腦傳送檔案的協議,FTP是在TCP/IP網路和INTERNET上最早使用的協議之一,它屬於網路通訊協定組的應用程式層。FTP客戶機可以給伺服器發出命令來下載檔案,上傳檔案,建立或改變伺服器上的目錄。ftp使用TCP作為傳輸層協議,而tftp則是UDP協議。 Linux下有FTP服務,FTP分為伺服器端和用戶端,某台機器作為FTP伺服器,需要啟動vsftpd服務,另一台機器作為用戶端,需要安裝有ftp或者lftp的rpm包。 首先查看本機是否安裝有ftp相關的rpm包[plain] [root@localhost Packages]# rpm -qa|grep ftp report-plugin-ftp-0.18-7.el6.i686 vsftpd-2.2.2-6.el6.i686 report-config-ftp-0.18-7.el6.i686 gvfs-obexftp-1.4.3-9.el6.i686 如果沒有安裝,可以掛載RedHat的安裝包,在Packages目錄下尋找[plain] [root@localhost nfs]# mount -t vboxsf RedHat_Share /home/Wentasy/share [root@localhost nfs]# ll total 4 -rw-rw-rw-. 1 root root 12 Jul 21 10:22 file1 [root@localhost nfs]# cd /home/Wentasy/s share/ software/ sysctl.conf [root@localhost nfs]# cd /home/Wentasy/share/ [root@localhost share]# ll total 2862360 -rwxrwxrwx. 1 root root 2931056640 Feb 23 2012 rhel-server-6.0-i386-dvd.iso [root@localhost share]# mount -o loop rhel-server-6.0-i386-dvd.iso /mnt [root@localhost share]# cd /mnt [root@localhost share]# cd Packages [root@localhost Packages]# find . -name "*ftp*" ./ftp-0.17-51.1.el6.i686.rpm ./gvfs-obexftp-1.4.3-9.el6.i686.rpm ./lftp-4.0.9-1.el6.i686.rpm ./report-config-ftp-0.18-7.el6.i686.rpm ./report-plugin-ftp-0.18-7.el6.i686.rpm ./tftp-0.49-5.1.el6.i686.rpm ./tftp-server-0.49-5.1.el6.i686.rpm ./vsftpd-2.2.2-6.el6.i686.rpm 安裝ftp-xxx.i686.rpm和lftp-xxxi686.rpm[plain] [root@localhost Packages]# rpm -ivh ftp-0.17-51.1.el6.i686.rpm warning: ftp-0.17-51.1.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing... ########################################### [100%] 1:ftp ########################################### [100%] [root@localhost Packages]# rpm -ivh lftp-4.0.9-1.el6.i686.rpm warning: lftp-4.0.9-1.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing... ########################################### [100%] 1:lftp ########################################### [100%] 啟動ftp伺服器端的服務(服務名為vsftpd),用戶端才可以訪問。[plain] [root@localhost Packages]# service vsftpd status vsftpd is stopped [root@localhost Packages]# service vsftpd start Starting vsftpd for vsftpd: [ OK ] 進入/var/ftp/pub/目錄,並建立一個檔案file[plain] [root@localhost Packages]# cd /var/ftp/pub/ [root@localhost pub]# echo "hello" > file [root@localhost pub]# ll total 4 -rw-r--r--. 1 root root 6 Jul 21 10:40 file 以匿名使用者登入到伺服器,預設訪問目錄是/var/ftp/,我們可以下載file到目前的目錄,注意,以匿名使用者登入不能進行上傳操作。[plain] [Wentasy@localhost test]$ lftp 169.254.140.100 lftp 169.254.140.100:/> get file get: Access failed: 550 Failed to open file. lftp 169.254.140.100:/> ls drwxr-xr-x 2 0 0 4096 Jul 21 02:40 pub lftp 169.254.140.100:/> cd pub lftp 169.254.140.100:/pub> pwd ftp://169.254.140.100/pub lftp 169.254.140.100:/pub> get file 6 bytes transferred lftp 169.254.140.100:/pub> exit [Wentasy@localhost test]$ ll total 4 -rw-rw-r--. 1 Wentasy Wentasy 6 Jul 21 10:40 file [Wentasy@localhost test]$ echo "hello world" > upload [Wentasy@localhost test]$ ll total 8 -rw-rw-r--. 1 Wentasy Wentasy 6 Jul 21 10:40 file -rw-rw-r--. 1 Wentasy Wentasy 12 Jul 21 10:46 upload [Wentasy@localhost test]$ lftp 169.254.140.100 lftp 169.254.140.100:~> put /home/Wentasy/test/upload . put: Access failed: 550 Permission denied. (upload) put: /home/Wentasy/test/.: Is a directory lftp 169.254.140.100:/> put /home/Wentasy/test/upload /root put: Access failed: 550 Permission denied. (upload) put: /root: Permission denied 以普通使用者登入,注意,一般不建議採用root使用者登入,而且生產環境也不會讓你以root使用者登入。用普通使用者登入有兩種方式:[plain] [Wentasy@localhost test]$ lftp Wentasy@169.254.140.100 Password: lftp Wentasy@169.254.140.100:~> exit [Wentasy@localhost test]$ lftp -u Wentasy 169.254.140.100 Password: lftp Wentasy@169.254.140.100:~> exit 登入成功後,我們進行下載(get)、上傳(put)、上傳目錄(mirror-R)、下載目錄(mirror)操作。[plain] lftp Wentasy@169.254.140.100:~> put /home/Wentasy/test/upload 12 bytes transferred lftp Wentasy@169.254.140.100:~/test> mirror /home/Wentasy/test/ . Total: 1 directory, 3 files, 0 symlinks lftp Wentasy@169.254.140.100:~/test> mirror -R /home/Wentasy/test2 . Total: 1 directory, 3 files, 0 symlinks New: 3 files, 0 symlinks To be removed: 0 directories, 3 files, 0 symlinks ftp使用方法 ftp [-vdng] [使用者名稱:密碼@<FQDN>]|<IP地址>| < 主機名稱> <IP地址>:需要串連的FTP伺服器的IP地址FQDN -v :顯示遠程伺服器的所有響應資訊 -d :使用調試方式訪問FTP伺服器 -n :限制ftp的自動登入,即當登入到FTP伺服器時,不自動執行 .netrc檔案 進入FTP中可以可以使用的命令詳解 ![命令[參數]] :在FTP用戶端中執行命令 open <FQDN>|<IP地址>:開啟指定的FTP伺服器 bye :退出FTP會話過程 cd 目錄:切換FTP伺服器的目前的目錄。 dir [目錄][本地檔案]:顯示FTP伺服器目錄,並將結果存入本地檔案 put 檔案:將單個檔案上傳到FPT伺服器 mput: 將多個檔案上傳到FTP伺服器 get 檔案:從FTP伺服器下載單個檔案到本地目前的目錄 mget 檔案:從FTP伺服器下載多個檔案到本地目前的目錄 delete 檔案名稱:FTP伺服器上的檔案 case :在使用mget時,將遠程主機檔案名稱中的大寫轉為小寫字母 pwd :顯示遠程主機的當前工作目錄。 rmdir 目錄名:刪除FTP伺服器上的目錄 lftp命令使用 lftp ftp://[使用者名稱:密碼@]<FQDN>|<IP地址> [:連接埠] lftp ftp://<FQDN>|<IP 位址> -p port -u 使用者名稱,密碼 help:查看全部可操作的命令 ls : 顯示FTP伺服器檔案清單 !ls: 顯示本地檔案清單 cd: 切換遠端目錄 !cd: 切換本地目錄 get: 從FTP伺服器下載單個檔案到本地目前的目錄 mget: 從FTP伺服器下載多個檔案到本地目前的目錄 pget :使用多個線程來下載遠端檔案 put : 將單個檔案上傳到FTP伺服器 mput :將多個檔案上傳到FTP伺服器 mv :移動FTP伺服器上的檔案 rm: 刪除FTP伺服器上的檔案 (使用參數 -r 遞迴刪除) mrm: 刪除FTP伺服器上的多個目錄 mkdir :在FTP伺服器上建立目錄 pwd : 顯示日前FTP伺服器所有目錄 lpwd: 顯示本地目錄 exit :退出ftp會話過程