掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流
FTP (File Transfer Protocol)是網(wǎng)絡(luò)上最常用的文件傳輸協(xié)議之一,由于其簡(jiǎn)單易用、傳輸速度快等特點(diǎn),被廣泛應(yīng)用于各權(quán)領(lǐng)域中。

創(chuàng)新互聯(lián)專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、做網(wǎng)站、龍江網(wǎng)絡(luò)推廣、微信小程序開(kāi)發(fā)、龍江網(wǎng)絡(luò)營(yíng)銷(xiāo)、龍江企業(yè)策劃、龍江品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪(fǎng)、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供龍江建站搭建服務(wù),24小時(shí)服務(wù)熱線(xiàn):13518219792,官方網(wǎng)址:www.cdcxhl.com
Linux系統(tǒng)作為一款開(kāi)源的操作系統(tǒng),本身就支持FTP協(xié)議,特別是FTP被動(dòng)模式,更是在文件傳輸過(guò)程中起到重要作用。本文將,為讀者提供參考和幫助。
一、FTP被動(dòng)模式的概述
FTP協(xié)議本質(zhì)上是一種客戶(hù)端/服務(wù)器模型,其中客戶(hù)端通過(guò)FTP命令向FTP服務(wù)器發(fā)出請(qǐng)求,并通過(guò)FTP服務(wù)器傳輸文件。FTP分為主動(dòng)模式和被動(dòng)模式,其中被動(dòng)模式是目前廣泛應(yīng)用的一種方式。
在FTP被動(dòng)模式下,客戶(hù)端連接到服務(wù)器的21端口,向服務(wù)器發(fā)送PASV命令請(qǐng)求被動(dòng)模式數(shù)據(jù)連接。服務(wù)器隨機(jī)分配一個(gè)端口,并通過(guò)21端口將端口號(hào)返回給客戶(hù)端??蛻?hù)端接收到服務(wù)器返回的端口號(hào)之后,向服務(wù)器分配的端口號(hào)建立數(shù)據(jù)連接,并通過(guò)該端口傳輸文件。
二、FTP被動(dòng)模式的優(yōu)點(diǎn)
FTP被動(dòng)模式更大的優(yōu)點(diǎn)在于穿透NAT設(shè)備,使內(nèi)網(wǎng)的FTP服務(wù)器能夠被公網(wǎng)訪(fǎng)問(wèn)。具體而言,F(xiàn)TP主動(dòng)模式需要服務(wù)器向客戶(hù)端建立數(shù)據(jù)連接,而NAT設(shè)備無(wú)法識(shí)別這一數(shù)據(jù)連接。因此,F(xiàn)TP主動(dòng)模式在NAT環(huán)境下無(wú)法正常工作。FTP被動(dòng)模式通過(guò)隨機(jī)端口建立被動(dòng)模式數(shù)據(jù)連接,可以很好地穿透NAT設(shè)備,解決FTP主動(dòng)模式在NAT環(huán)境下的不足。
三、Linux FTP服務(wù)器端被動(dòng)模式的配置
使用Linux FTP服務(wù)器,需要首先安裝FTP軟件。推薦使用vsftpd,它是一個(gè)成熟、穩(wěn)定的FTP服務(wù)器軟件。安裝方法可以通過(guò)軟件包管理器或源代碼編譯方式安裝。
針對(duì)FTP服務(wù)器使用被動(dòng)模式,需要在FTP服務(wù)器的配置文件中修改PASV模塊的參數(shù)。通過(guò)修改vsftpd配置文件(/etc/vsftpd.conf),可以在參數(shù)中增加以下內(nèi)容:
pasv_enable=YES
pasv_min_port=2023
pasv_max_port=2100
在以上參數(shù)設(shè)置中,pasv_enable=YES表示開(kāi)啟vsftpd服務(wù)器的PASV模式;pasv_min_port=2023和pasv_max_port=2100用于指定被動(dòng)模式數(shù)據(jù)連接的端口范圍。
通過(guò)以上配置后,就可以啟動(dòng)vsftpd服務(wù)器,并使用FTP客戶(hù)端連接FTP服務(wù)器,實(shí)現(xiàn)被動(dòng)模式下的文件傳輸。
四、Linux FTP客戶(hù)端被動(dòng)模式的配置
同樣,Linux FTP客戶(hù)端在使用被動(dòng)模式傳輸文件時(shí),需要修改FTP客戶(hù)端的配置文件。在大多數(shù)Linux操作系統(tǒng)中,F(xiàn)TP客戶(hù)端直接使用系統(tǒng)自帶的命令行工具,如ftp。因此,在連接FTP服務(wù)器時(shí),需要輸入以下命令行:
ftp -p IP地址
其中,-p代表FTP客戶(hù)端使用被動(dòng)模式連接FTP服務(wù)器。
如果使用GUI的FTP客戶(hù)端,如FileZilla等,可以在連接FTP服務(wù)器時(shí)選擇使用被動(dòng)模式進(jìn)行連接。在FileZilla的連接設(shè)置中,可以設(shè)置FTP客戶(hù)端使用以下端口進(jìn)行被動(dòng)模式數(shù)據(jù)連接:
到此,我們已經(jīng)深入探究了Linux FTP被動(dòng)模式的使用方法。FTP被動(dòng)模式作為FTP協(xié)議中最為廣泛使用的模式之一,對(duì)于內(nèi)網(wǎng)FTP服務(wù)器的訪(fǎng)問(wèn)、穿透NAT設(shè)備等場(chǎng)景,都起到了非常重要的作用。相信本文內(nèi)容能夠給讀者帶來(lái)幫助,讓大家更好地了解和掌握Linux FTP被動(dòng)模式的使用方法。
相關(guān)問(wèn)題拓展閱讀:
下面是在虛擬機(jī)中的linux的ftp的基本配置(redhat AS 4.0為例):
首先要安裝linux下的vsftp軟件包。
rpm -qa|gerp vsftpd //查找vsftpd有沒(méi)有安裝
如果沒(méi)有安裝就 vsftpd-2.0.1-5.i386.rpm (在之一張光盤(pán))
在linux中有一個(gè)非常重要的一點(diǎn)就是要掛載光驅(qū) mount /media/cdrom
在這里我們就不用源代碼安裝了。用的是rpm安裝
#rpm -ivh vsftpd-2.0.1-5.i386.rpm
這里就安裝好了。
service vsftpd start 啟動(dòng)vsftpd服務(wù)
如果在不設(shè)置任何的情況下,可以以匿名的方式訪(fǎng)問(wèn)該ftp。
注.如果訪(fǎng)問(wèn)不了的時(shí)候請(qǐng)大家要把linux的防火墻也要關(guān)閉:
iptables -F 清除防火墻
在安裝好ftp會(huì)產(chǎn)生幾個(gè)文件:
/etc/vsftpd/vsftpd.conf 主配置文件
/etc/vsftpd.ftpusers 指定哪些用戶(hù)不能訪(fǎng)問(wèn)FTP服務(wù)器
/etc/vsftpd.user_list 文件中指定的用戶(hù)是否可以訪(fǎng)問(wèn)ftp服務(wù)器由vsftpd.conf文件中的userlist_deny的取值來(lái)決定。
這幾個(gè)文件就是整個(gè)ftp控制和禁止用戶(hù)的權(quán)限配置。。。
下面我們就來(lái)設(shè)置一個(gè)vsftpd的核心文件
# cd /etc/vsftpd/vsftpd.conf 這就是vsftpd的核心配置文件
anonymous_enable=YES/no 是否允許匿名用戶(hù)登錄
anonymous_enable=yes/no 是否允許匿名上春鏈慎傳文件
local_enable= YES/no 是否允許本地用戶(hù)登錄
write_enable= YES/no 是否允許本地用戶(hù)上傳
guest_enable=yes/no 是否允許虛擬用戶(hù)登錄;
local_mask=022 設(shè)置本地用戶(hù)的文件生成掩碼為022,默認(rèn)值為077
dirmessage_enable= YES 設(shè)置切換到目錄時(shí)顯示.message隱含文件的內(nèi)容
xferlog_enable= YES 激活上傳和下載日志
connect_from_port_20=YES 啟用FTP數(shù)據(jù)端口連接
pam_service_name=vsftpd 設(shè)置PAM認(rèn)證服務(wù)的配置文件名稱(chēng), 該文件存放在/etc/pam.d目錄下
userlist_enable= YES 允許vsftpd.user_list文件中的用戶(hù)訪(fǎng)問(wèn)服務(wù)器
userlist_deny= YES 拒絕vsftpd.user_list文件中的用戶(hù)訪(fǎng)問(wèn)服務(wù)器
listen= YES/no 是否使用獨(dú)占啟動(dòng)方式(這一項(xiàng)比較重要)
tcp_wrappers= YES/no 是否使用tcp_wrappers作為主機(jī)訪(fǎng)問(wèn)控制方式
最主要的就是這些設(shè)置了。(這是一般都是默認(rèn)的不是太懂的不要?jiǎng)?
大家可以設(shè)置下面的設(shè)置:
ftpd_banner=welcome to ftp service 設(shè)置連接服務(wù)器后的歡迎信息
idle_session_timeout=60 限制遠(yuǎn)程的客戶(hù)機(jī)連接后,所建立的控制連接,在多長(zhǎng)時(shí)間沒(méi)有做任何的操作就會(huì)中斷(秒)
data_connection_timeout=120 設(shè)置客戶(hù)機(jī)在進(jìn)行數(shù)據(jù)傳輸時(shí),設(shè)置空閑的數(shù)據(jù)中斷時(shí)間
accept_timeout=60 設(shè)置在多長(zhǎng)時(shí)間后自動(dòng)建立連接
connect_timeout=60 設(shè)置數(shù)據(jù)連接的更大激活時(shí)間,多長(zhǎng)時(shí)間斷開(kāi),為別人所使用;
max_clients=200 指明服務(wù)器總的客戶(hù)并發(fā)連接數(shù)為200
max_per_ip=3 指明每個(gè)客戶(hù)機(jī)的更大連接數(shù)為3
local_max_rate=50000(50kbytes/sec)
anon_max_rate=30000 設(shè)置本地用戶(hù)和匿名用戶(hù)的更大傳輸速率限制
pasv_min_port=端口
pasv-max-prot=端口號(hào) 定義更大與最小端口,為0表示任意端口;為客戶(hù)端連接指明端口;
listen_address=IP地址 設(shè)置ftp服務(wù)來(lái)監(jiān)聽(tīng)的地址扒敬,客戶(hù)端可以用哪個(gè)地址來(lái)連接;
listen_port=端口號(hào) 設(shè)置FTP工作的端口號(hào),默認(rèn)的為21
chroot_local_user=YES 設(shè)置所有的本地用戶(hù)可以chroot
chroot_local_user=NO 設(shè)置指定用戶(hù)能喚頃夠chroot
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list(只有/etc/vsftpd.chroot_list中的指定的用戶(hù)才能執(zhí)行)
local_root=path 無(wú)論哪個(gè)用戶(hù)都能登錄的用戶(hù),定義登錄帳號(hào)的主目錄, 若沒(méi)有指定,則每一個(gè)用戶(hù)則進(jìn)入到個(gè)人用戶(hù)主目錄;
chroot_local_user=yes/no 是否鎖定本地系統(tǒng)帳號(hào)用戶(hù)主目錄(所有);鎖定后,用戶(hù)只能訪(fǎng)問(wèn)用戶(hù)的主目錄/home/user,不能利用cd命令向上轉(zhuǎn);只能向下;
chroot_list_enable=yes/no 鎖定指定文件中用戶(hù)的主目錄(部分),文件:/chroot_list_file=path 中指定;
userlist_enable=YES/NO 是否加載用戶(hù)列表文件;
userlist_deny=YES 表示上面所加載的用戶(hù)是否允許拒絕登錄;
userlist_file=/etc/vsftpd.user_list 列表文件
這些就是高級(jí)設(shè)置了。大家可以適當(dāng)?shù)母摹?/p>
#vi /etc/hosts.allow
vsftpd:192.168.5.128:DENY 設(shè)置該IP地址不可以訪(fǎng)問(wèn)ftp服務(wù)(vsftpd在獨(dú)占啟動(dòng)方式下支持tcp_wrappers主機(jī)訪(fǎng)問(wèn)控制方式)
時(shí)間限制:
#cp /usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/vsftpd
#vi /etc/xinetd.d/vsftpd/
修改 disable = no
access_time = hour:min-hour:min (添加配置訪(fǎng)問(wèn)的時(shí)間限制(注:與vsftpd.conf中l(wèi)isten=NO相對(duì)應(yīng))
例: access_time = 8:30-11:30 17:30-21:30 表示只有這兩個(gè)時(shí)間段可以訪(fǎng)問(wèn)ftp
配置文件是 /etc/vsftpd/vsftpd.conf 按如下編輯此文件,編輯文件當(dāng)然用vi了
1)實(shí)現(xiàn)匿名用戶(hù)的上傳下載文件
程序代碼:
Anonymous_enable=yes 匿名登陸
Connect_form_port_20=yes 啟用FTP數(shù)據(jù)端口的數(shù)據(jù)連接
Pam_service_name=vsftpd 驗(yàn)證方式
Listen=yes 獨(dú)立的VSFTPD服務(wù)器
這樣你就可以實(shí)現(xiàn)匿名登陸ftp了,但還不能上傳文件
程序代碼:
Anon_upload_enable=yes 開(kāi)放上傳權(quán)限
Anon_mkdir_write_enable=yes 可創(chuàng)建目錄的同時(shí)可以在此目錄中上傳文件
Write_enable=yes 開(kāi)放本地用戶(hù)寫(xiě)的權(quán)限
Anon_other_write_enable=yes 匿名帳號(hào)可以有刪除的權(quán)限
加上上面的這段,你就可以實(shí)現(xiàn)匿名ftp的上傳下載文件了
然后你保存文件,用service vsftpd start來(lái)啟動(dòng)vsftp的服務(wù),然后就可以用ftp了
注意:確定你的防火墻 iptables上打開(kāi)21端口,不然在登陸ftp的時(shí)候會(huì)提示socket錯(cuò)誤,拒絕連接。還有就是當(dāng)你再次編輯vsftp.conf后用 service vsftpd restart重起的時(shí)候總是提示你不能關(guān)閉vsftp服務(wù),這時(shí)候你用service vsftpd status察看一下他的狀態(tài),如果提示你vsftpd被locked 那可能是因?yàn)槟愕膙sftpd.conf中配置的有錯(cuò)誤,你要重新編輯他,直到能正常重起他為止,一次配置不對(duì),多配置幾次就好了
2)實(shí)現(xiàn)本地用戶(hù)上傳下載
程序代碼:
新建一個(gè)用戶(hù)
adduser 用戶(hù)名 增加一個(gè)用戶(hù)
passwd 用戶(hù)名 增加用戶(hù)的密碼
然后看/etc/passwd中最后一行就是你剛才添加的用戶(hù)信息
然后編輯/etc/vsftpd/vsftpd.conf文件,
Local_enable=yes 允許使用本地用戶(hù)來(lái)登陸ftp
在/etc/vsftpd.ftpuser中可以增加想要阻止登陸ftp的用戶(hù)
限制用戶(hù)只能在自己的目錄中
Chroot_list_enable=yes 文件中的名單可以調(diào)用
Chroot_list_file=/etc/vsftpd.chroot_list 前提是chroot_local_user=no,在文件中加入用戶(hù)名
vsftpd.conf的參數(shù)
程序代碼:
Anonymous_enable=yes 允許匿名登陸
Dirmessage_enable=yes 切換目錄時(shí),顯示目錄下.message的內(nèi)容
Local_umask=022 FTP上本地的文件權(quán)限,默認(rèn)是077
Connect_form_port_20=yes 啟用FTP數(shù)據(jù)端口的數(shù)據(jù)連接
Xferlog_enable=yes 激活上傳和下傳的日志
Xferlog_std_format=yes 使用標(biāo)準(zhǔn)的日志格式
Ftpd_banner=XXXXX 顯示歡迎信息
Pam_service_name=vsftpd 驗(yàn)證方式
Listen=yes 獨(dú)立的VSFTPD服務(wù)器
Anon_upload_enable=yes 匿名用戶(hù)上傳權(quán)限
Anon_mkdir_write_enable=yes 創(chuàng)建目錄的同時(shí)可以在此目錄中上傳文件
Write_enable=yes 本地用戶(hù)寫(xiě)的權(quán)限
Anon_other_write_enable=yes 匿名帳號(hào)可以有刪除的權(quán)限
Anon_world_readable_only=no 匿名用戶(hù)瀏覽權(quán)限
Ascii_upload_enable=yes 啟用上傳的ASCII傳輸方式
Ascii_download_enable=yes 啟用下載的ASCII傳輸方式
Banner_file=/var/vsftpd_banner_file 用戶(hù)連接后歡迎信息使用的是此文件中的相關(guān)信息
Idle_session_timeout=600(秒) 用戶(hù)會(huì)話(huà)空閑后10分鐘
Data_connection_timeout=120(秒) 將數(shù)據(jù)連接空閑2分鐘斷
Accept_timeout=60(秒) 將客戶(hù)端空閑1分鐘后斷
Connect_timeout=60(秒) 中斷1分鐘后又重新連接
Local_max_rate=50000(bite) 本地用戶(hù)傳輸率50K
Anon_max_rate=30000(bite) 匿名用戶(hù)傳輸率30K
Pasv_min_port=5000 將客戶(hù)端的數(shù)據(jù)連接端口改在
Pasv_max_port=—6000之間
Max_clients=200 FTP的更大連接數(shù)
Max_per_ip=4 每IP的更大連接數(shù)
Listen_port=5555 從5555端口進(jìn)行數(shù)據(jù)連接
Local_enble=yes 本地帳戶(hù)能夠登陸
Write_enable=no 本地帳戶(hù)登陸后無(wú)權(quán)刪除和修改文件
Chroot_local_user=yes 本地所有帳戶(hù)都只能在自家目錄
Chroot_list_enable=yes 文件中的名單可以調(diào)用
Chroot_list_file=/etc/vsftpd.chroot_list 前提是chroot_local_user=no
Userlist_enable=yes 在指定的文件中的用戶(hù)不可以訪(fǎng)問(wèn)
Userlist_deny=yes
Userlist_file=/etc/vsftpd.user_list
Banner_fail=/路徑/文件名 連接失敗時(shí)顯示文件中的內(nèi)容
Ls_recurse_enable=no
Async_abor_enable=yes
one_process_model=yes
Listen_address=10.2.2.2 將虛擬服務(wù)綁定到某端口
Guest_enable=yes 虛擬用戶(hù)可以登陸
Guest_username=所設(shè)的用戶(hù)名 將虛擬用戶(hù)映射為本地用戶(hù)
Chown_uploads=yes 改變上傳文件的所有者為root
Chown_username=root
Deny_email_enable=yes 是否允許禁止匿名用戶(hù)使用某些郵件地址
Banned_email_file=//任意指定的路徑/xx/
Pasv_enable=yes 服務(wù)器端用被動(dòng)模式
User_config_dir=/任意指定的路徑//任意文件目錄指定虛擬用戶(hù)存放配置文件的路徑
關(guān)于linux ftp 被動(dòng)模式的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)建站主營(yíng):成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動(dòng)網(wǎng)站開(kāi)發(fā)制作等網(wǎng)站服務(wù)。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流