導航:首頁 > 操作系統 > linuxftp550

linuxftp550

發布時間:2025-06-18 20:20:14

linuxftp命令的使用方法詳解

ftp伺服器在網上較為常見,Linux ftp命令的功能是用命令的方式來控制在本地機和遠程機之間傳送文件,這里詳細介紹Linux ftp命令的一些經常使用的命令,相信掌握了這些使用Linux 進行ftp操作將會非常容易。

Linux ftp命令的一般格式如下:

$ ftp 主機名/IP

其中「主機名/IP」是所要連接的遠程機的主機名或IP地址。在命令行中,主機名屬於選項,如果指定主機名,ftp將試圖與遠程機的ftp服務程序進行連接;如果沒有指定主機名,ftp將給出提示符,等待用戶輸入命令:
$ ftp
ftp >
此時在ftp>提示符後面輸入open命令加主機名或IP地址,將試圖連接指定的主機。
不管使用哪一種方法,如果連接成功,需要在遠程機上登錄。用戶如果在遠程機上有帳號,就可以通過ftp使用這一帳號並需要提供口令。在遠程機上的用戶帳號的讀寫許可權決定該用戶在遠程機上能下載什麼文件和將上載文件放到哪個目錄中。
如果沒有遠程機的專用登錄帳號,許多ftp站點設有可以使用的特殊帳號。這個帳號的登錄名為anonymous(也稱為匿名ftp),當使用這一帳號時,要求輸入email地址作為口令。
如果遠程系統提供匿名ftp服務,用戶使用這項服務可以登錄到特殊的,供公開使用的目錄。一般專門提供兩個目錄:pub目錄和incoming目錄。pub目錄包含該站點供公眾使用的所有文件,incoming目錄存放上載到該站點的文件。
一旦用戶使用ftp在遠程站點上登錄成功,將得到「ftp>」提示符。現在可以自由使用ftp提供的命令,可以用 help命令取得可供使用的命令清單,也可以在 help命令後面指定具體的命令名稱,獲得這條命令的說明。
最常用的命令有:

ls 列出遠程機的當前目錄
cd 在遠程機上改變工作目錄
lcd 在本地機上改變工作目錄
ascii 設置文件傳輸方式為ASCII模式
binary 設置文件傳輸方式為二進制模式
close 終止當前的ftp會話
hash 每次傳輸完數據緩沖區中的數據後就顯示一個#號
get(mget) 從遠程機傳送指定文件到本地機
put(mput) 從本地機傳送指定文件到遠程機
open 連接遠程ftp站點
斷開與遠程機的連接並退出ftp
? 顯示本地幫助信息
! 轉到Shell中

下面簡單將ftp常用命令作一簡介。

◆啟動ftp會話
open命令用於打開一個與遠程主機的會話。該命令的一般格式是:
◆open 主機名/IP
如果在ftp 會話期間要與一個以上的站點連接,通常只用不帶參數的ftp命令。如果在會話期間只想與一台計算機連接,那麼在命令行上指定遠程主機名或IP地址作為ftp命令的參數。
◆終止ftp會話
close、disconnect、和bye命令用於終止與遠程機的會話。close和disronnect命令關閉與遠程機的連接,但是使用戶留在本地計算機的ftp程序中。和bye命令都關閉用戶與遠程機的連接,然後退出用戶機上的ftp 程序。
◆改變目錄
「cd [目錄]」命令用於在ftp會話期間改變遠程機上的目錄,lcd命令改變本地目錄,使用戶能指定查找或放置本地文件的位置。
◆遠程目錄列表
ls命令列出遠程目錄的內容,就像使用一個交互shell中的ls命令一樣。ls命令的一般格式是:
ls [目錄] [本地文件]
如果指定了目錄作為參數,那麼ls就列出該目錄的內容。如果給出一個本地文件的名字,那麼這個目錄列表被放入本地機上您指定的這個文件中。
◆從遠程系統獲取文件
get和mget命令用於從遠程機上獲取文件。get命令的一般格式為:
get 文件名
您還可以給出本地文件名,這個文件名是這個要獲取的文件在您的本地機上創建時的文件名。如果您不給出一個本地文件名,那麼就使用遠程文件原來的名字。
mget命令一次獲取多個遠程文件。mget命令的一般格式為:
mget 文件名列表
使用用空格分隔的或帶通配符的文件名列表來指定要獲取的文件,對其中的每個文件都要求用戶確認是否傳送。
◆向遠程系統發送文件
put和mput命令用於向遠程機發送文件。Put命令的一般格式為:
put 文件名
mput命令一次發送多個本地文件,mput命令的一般格式為:
mput 文件名列表
使用用空格分隔的或帶通配符的文件名列表來指定要發送的文件。對其中的每個文件都要求用戶確認是否發送。
◆改變文件傳輸模式
默認情況下,ftp按ASCII模式傳輸文件,用戶也可以指定其他模式。ascii和brinary命令的功能是設置傳輸的模式。用ASCII模式傳輸文件對純文本是非常好的,但為避免對二進制文件的破壞,用戶可以以二進制模式傳輸文件。
◆檢查傳輸狀態
傳輸大型文件時,可能會發現讓ftp提供關於傳輸情況的反饋信息是非常有用的。hash命令使ftp在每次傳輸完數據緩沖區中的數據後,就在屏幕上列印一個#字元。本命令在發送和接收文件時都可以使用。
◆ftp中的本地命令
當您使用ftp時,字元「!」用於向本地機上的命令shell傳送一個命令。如果用戶處在ftp會話中,需要shell做某些事,就很有用。例如用戶要建立一個目錄來保存接收到的文件。如果輸入!mkdir new_dir,那麼Linux就在用戶當前的本地目錄中創建一個名為new_dir 的目錄。

這里Linux ftp命令就介紹到這里,應該足夠在Linux系統下使用ftp工具了。

❷ linux配置ftp伺服器的過程

第一步:打開終端(快捷鍵是Ctrl+Alt+t),如果當前用戶不是root用戶,請輸入命令「su」,然後輸入root賬戶密碼即可;
第二步:輸入命令「apt-get update」,這一步是為了更新下載的數據源,如果不更新可能造成有幾個後面的軟體包無法下載;
第三步:輸入命令「apt-get install vsftpd」完成安裝vsftpd;
第四步:判斷vsftp是否安裝成功,輸入命令「service vsftpd restart」重啟vsftpd服務,如果他在運行狀態說明安裝成功;
第五步:新建「/home/uftp」目錄作為用戶主目錄,輸入命令「mkdir /home/uftp」回車 ,然後輸入命令「ls /home」查看home目錄下有uftp這個目錄嗎,如果有就是創建成功;
第六步:新建用戶uftp並且設置密碼,輸入命令「useradd -d /home/uftp -s /bin/bash uftp」
回車,然後再輸入命令「passwd uftp」回車,然後輸入兩次密碼就設置ok了
第七步:使用vi修改配置文件/etc/vsftpd.conf,輸入命令「vi /etc/vsftpd.conf」回車,
向文件中添加「userlist_deny=NO」」userlist_enable=YES」?, 「userlist_file=/etc/allowed_users」?,
「seccomp_sandbox=NO」,最後把文件中的「local_enable=YES」保存(如果提示無法保存,直接退出來,把讀寫和執行許可權給這個文件,具體操作為:輸入命令: 「chmod 777 /etc/vsftpd.conf」回車就可以了);
第八步:新建文件/etc/allowed_users,輸入命令「vi /etc/allowed_users」,打開後再這個文件內寫入「uftp」保存即可;《Linux就該這么學》
第九步:查看/etc/ftpusers文件(不能訪問ftp服務用戶清單)的內容,輸入命令「vi /etc/ftpusers」回車,如果裡面有uftp,就把他刪除;
第十步:安裝winscp軟體,進行遠程登錄訪問;下載直接在網路下載就行

❸ 怎麼通過linux訪問伺服器上的ftp

這個直接推薦你看看這里:http://www.linuxprobe.com/chapter-11.html

文件傳輸協議(FTP,File Transfer Protocol),即能夠讓用戶在互聯網中上傳、下載文件的文件協議,而FTP伺服器就是支持FTP傳輸協議的主機,要想完成文件傳輸則需要FTP服務端和FTP客戶端的配合才行。
通常用戶使用FTP客戶端軟體向FTP伺服器發起連接並發送FTP指令,伺服器收到用戶指令後將執行結果返回客戶端。

FTP協議佔用兩個埠號:
21埠:命令控制,用於接收客戶端執行的FTP命令。
20埠:數據傳輸,用於上傳、下載文件數據。
FTP數據傳輸的類型:
主動模式:FTP服務端主動向FTP客戶端發起連接請求。
被動模式:FTP服務端等待FTP客戶端的連接請求。
11.2 安裝vsftpd服務程序
Vsftpd即「Very Secure FTP Daemon」是一款運行在類Unix操作系統的FTP服務端程序,Vsftpd主打的是安全性、完全開源及免費、速率高、支持IPv6、虛擬用戶功能等等其他FTP服務端軟體不具備的功能。

安裝vsftpd服務程序包:
[root@linuxprobe ~]# yum install vsftpd -y
Loaded plugins: langpacks, proct-id, subscription-manager
…………………省略部分安裝過程………………
---> Package vsftpd.x86_64 0:3.0.2-9.el7 will be installed
--> Finished Dependency Resolution
…………………省略部分安裝過程…………………
Installed:
vsftpd.x86_64 0:3.0.2-9.el7
Complete!

清空默認的防火牆默認規則:
[root@linuxprobe ~]# iptables -F

保存清空後的防火牆規則表:
[root@linuxprobe ~]# service iptables save

Vsftpd的程序與配置文件:
主程序 /usr/sbin/vsftpd
用戶禁止登陸列表 /etc/vsftpd/ftpusers
/etc/vsftpd/user_list
主配置文件 /etc/vsftpd/vsftpd.conf

先來分析下vsftpd程序的主配置文件吧:
[root@linuxprobe ~]# cat /etc/vsftpd/vsftpd.conf
主配置文件長達123行,但大部分是以#號開始的,這些都是注釋信息,我們可以過濾掉它們。
備份vsftpd的主配置文件:
[root@linuxprobe ~]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak

過濾掉所有包含#號的行,並將過濾結果寫回到vsftpd.conf文件中:
[root@linuxprobe ~]# grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf

此時再分析下vsftpd程序的主配置文件吧:
[root@linuxprobe ~]# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

vsftpd程序配置文件參數的作用:
參數 作用
listen=[YES|NO] 是否以獨立運行的方式監聽服務。
listen_address=IP地址 設置要監聽的IP地址。
listen_port=21 設置FTP服務的監聽埠。
download_enable=[YES|NO] 是否允許下載文件。
userlist_enable=[YES|NO]
userlist_deny=[YES|NO] 是否啟用「禁止登陸用戶名單」。
max_clients=0 最大客戶端連接數,0為不限制。
max_per_ip=0 同一IP地址最大連接數,0位不限制。
anonymous_enable=[YES|NO] 是否允許匿名用戶訪問。
anon_upload_enable=[YES|NO] 是否允許匿名用戶上傳文件。
anon_umask=022 匿名用戶上傳文件的umask值。
anon_root=/var/ftp 匿名用戶的FTP根目錄。
anon_mkdir_write_enable=[YES|NO] 是否允許匿名用戶創建目錄。
anon_other_write_enable=[YES|NO] 是否開放匿名用戶其他寫入許可權。
anon_max_rate=0 匿名用戶最大傳輸速率(位元組),0為不限制。
local_enable=[YES|NO] 是否允許本地用戶登陸FTP。
local_umask=022 本地用戶上傳文件的umask值。
local_root=/var/ftp 本地用戶的FTP根目錄。
chroot_local_user=[YES|NO] 是否將用戶許可權禁錮在FTP目錄,更加的安全。
local_max_rate=0 本地用戶最大傳輸速率(位元組),0為不限制。

11.3 Vsftpd的驗證方式
vsftpd程序提供的FTP服務可選認證方式,分別為匿名訪問、本地用戶和虛擬用戶:
匿名訪問:任何人無需驗證口令即可登入FTP服務端。
本地用戶:使用FTP伺服器中的用戶、密碼信息。
虛擬用戶:創建獨立的FTP帳號資料。
顧名思義匿名訪問就是所有人均可隨意登入FTP服務,這樣自然會產生安全問題,一般用於存放公開的數據。
而本地用戶與虛擬用戶則需要用戶提供帳號及口令後才能登入FTP服務,更加的安全,而虛擬用戶則是最安全的。
下面的實驗環節將使用兩台紅帽RHEL7系統的主機,讀者需要提前配置網卡的IP地址等信息:
主機名稱 操作系統 IP地址
FTP服務端 紅帽RHEL7操作系統 192.168.10.10
FTP客戶端 紅帽RHEL7操作系統 192.168.10.20

11.3.1 匿名訪問模式
FTP匿名訪問模式是比較不安全的服務模式,尤其在真實的工作環境中千萬不要存放敏感的數據,以免泄露。
vsftpd程序默認已經允許匿名訪問模式,我們要做的就是開啟匿名用戶的上傳和寫入許可權,寫入下面的參數:
[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf

參數 作用
anonymous_enable=YES 允許匿名訪問模式。
anon_umask=022 匿名用戶上傳文件的umask值。
anon_upload_enable=YES 允許匿名用戶上傳文件
anon_mkdir_write_enable=YES 允許匿名用戶創建目錄
anon_other_write_enable=YES 允許匿名用戶修改目錄名或刪除目錄

確認填寫正確後保存並退出vsftpd.conf文件,然後重啟vsftpd服務程序並設置為開機自啟動。
[root@linuxprobe ~]# systemctl restart vsftpd
[root@linuxprobe ~]# systemctl enable vsftpd
ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service
因為在紅帽RHCSA、RHCE或RHCA考試後都要重啟您的實驗機再執行判分腳本。
所以請讀者在日常工作中也要記得將需要的服務加入到開機啟動項中:"systemctl enable vsftpd"。
如果重啟vsftpd服務程序時沒有報錯,此時便可以使用FTP客戶機(192.168.10.20)嘗試登入FTP服務了。
ftp命令用於使用FTP服務,格式為:「ftp [參數] [FTP主機]」。
紅帽RHEL7系統中ftp命令默認沒有安裝,請執行"yum install ftp -y"即可安裝完畢。
在客戶端嘗試登入FTP服務:
[root@linuxprobe ~]# ftp 192.168.10.10
Connected to 192.168.10.10 (192.168.10.10).
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root): anonymous
331 Please specify the password.
Password:敲擊回車
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> mkdir files
550 Permission denied.

上面操作中已經將防火牆規則清空,在vsftpd.conf文件中也已經允許匿名用戶創建目錄與寫入許可權,那怎麼會被拒絕了呢?
這里建議讀者先不要往下看,思考後用自己的方法解決下這個問題,長期這樣你的Linux的排錯能力一定會練出來的。
回想前面的參數細節,匿名訪問模式的FTP根目錄為/var/ftp:
[root@linuxprobe ~]# ls -ld /var/ftp/pub
drwxr-xr-x. 3 root root 16 Jul 13 14:38 /var/ftp/pub

原來匿名用戶的FTP根目錄所有者/組都是root,所以匿名用戶沒有寫入許可權,那我們將所有者修改為ftp試試吧。
[root@linuxprobe ~]# chown ftp /var/ftp/pub

此時再用ftp命令嘗試登入FTP服務並創建文件:
ftp> mkdir files
550 Create directory operation failed.

可惡!又報錯了!!雖然這次報錯代碼還是550,但前面提示許可權拒絕,這次是操作失敗,馬上想到是SELinux服務在搗鬼。
查看所有與ftp相關的SELinux規則:
[root@linuxprobe ~]# getsebool -a | grep ftp
ftp_home_dir --> off
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off

設置SELinux服務對ftp服務的訪問規則策略為允許。
[root@linuxprobe ~]# setsebool -P ftpd_full_access=on

此時再來創建文件或目錄就沒有問題了:
[root@linuxprobe ~]# ftp 192.168.10.10
Connected to 192.168.10.10 (192.168.10.10).
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root): anonymous
331 Please specify the password.
Password:敲擊回車
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> mkdir files
257 "/pub/files" created
ftp> rename files database
350 Ready for RNTO.
250 Rename successful.
ftp> rmdir database
250 Remove directory operation successful.
ftp> exit
221 Goodbye.

請注意:當您完成本實驗後請還原虛擬機快照再進行下一個實驗,否則可能導致配置文件沖突而報錯。
11.3.2 本地用戶模式
既然要使用本地用戶模式,而本地用戶模式確實要比匿名訪問模式更加的安全,所以本實驗中會關閉匿名訪問模式。
vsftpd服務程序默認已經允許本地用戶模式,我們要做的是添加設置本地用戶模式許可權的參數:
[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf

參數 作用
anonymous_enable=NO 禁止匿名訪問模式。
local_enable=YES 允許本地用戶模式。
write_enable=YES 設置可寫入許可權。
local_umask=022 本地用戶模式創建文件的umask值。
userlist_deny=YES 參數值為YES即禁止名單中的用戶,參數值為NO則代表僅允許名單中的用戶。
userlist_enable=YES 允許「禁止登陸名單」,名單文件為ftpusers與user_list。

確認填寫正確後保存並退出vsftpd.conf文件,然後重啟vsftpd服務程序並設置為開機自啟動。
[root@linuxprobe ~]# systemctl restart vsftpd
[root@linuxprobe ~]# systemctl enable vsftpd
ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service
因為在紅帽RHCSA、RHCE或RHCA考試後都要重啟您的實驗機再執行判分腳本。
所以請讀者在日常工作中也要記得將需要的服務加入到開機啟動項中:」systemctl enable vsftpd「。
如果重啟vsftpd服務程序時沒有報錯,此時便可以使用FTP客戶機(192.168.10.20)嘗試登入FTP服務了~
我們先來看下ftpusers或user_list文件中禁止登陸用戶名單:
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
vsftpd服務為了讓FTP服務更加的安全,默認禁止以root身份登入,那麼創建個普通用戶吧:
[root@linuxprobe ~]# useradd linuxprobe

為linuxprobe用戶設置密碼:
[root@linuxprobe ~]# passwd linuxprobe
Changing password for user linuxprobe.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

在客戶端嘗試登入FTP服務:
[root@linuxprobe ~]# ftp 192.168.10.10
Connected to 192.168.10.10 (192.168.10.10).
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root): linuxprobe
331 Please specify the password.
Password:輸入用戶的本地密碼
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir files
550 Create directory operation failed.

有了上面配置匿名訪問模式的經驗,這次再遇到了「操作被拒絕」,應該馬上想到SELinux了吧。
查看所有與ftp相關的SELinux規則:
[root@linuxprobe ~]# getsebool -a | grep ftp
ftp_home_dir --> off
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off

設置SELinux對FTP服務的規則為允許:
[root@linuxprobe ~]# setsebool -P ftpd_full_access=on

此時再來創建文件或目錄就沒有問題了:
[root@linuxprobe ~]# ftp 192.168.10.10
Connected to 192.168.10.10 (192.168.10.10).
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root): linuxprobe
331 Please specify the password.
Password:輸入用戶本地密碼
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir files
257 "/home/linuxprobe/files" created
ftp> rename files database
350 Ready for RNTO.
250 Rename successful.
ftp> rmdir database
250 Remove directory operation successful.
ftp> exit
221 Goodbye.

閱讀全文

與linuxftp550相關的資料

熱點內容
蘇州工業園區中級程序員 瀏覽:317
工程中軸向拉伸或壓縮形變的杠桿 瀏覽:914
薄荷app怎麼使用 瀏覽:994
細集料篩分試驗演算法 瀏覽:482
qq可直接發送文件夾嗎 瀏覽:930
怎麼在手機下貝爾編程app 瀏覽:442
加密表格左對齊能調嗎 瀏覽:485
程序員早睡圖片 瀏覽:699
基礎編程c語言入門txt下載 瀏覽:579
如何在web伺服器數據保存 瀏覽:393
道閘系統的加密狗有資料庫嗎 瀏覽:410
伺服器癱瘓了英文怎麼說 瀏覽:776
手機應用文件夾的數據指什麼 瀏覽:802
如何進入2b2t伺服器網易國服 瀏覽:533
java二進制轉換為文件 瀏覽:15
java局部變數內存 瀏覽:635
linux解壓tarzip 瀏覽:149
阿里傳pdf 瀏覽:249
android打開系統相冊 瀏覽:986
plc與單片機的關系 瀏覽:696