❶ 為什麼FTP要用兩個埠(20.21),但其他的TCP應用程序不是
一個是數據端衫悔口,一個是控制埠,控制埠一般為21,而數據埠不一定是20,這和FTP的應用模式有關,如果或敗正是主動模式,應該為20,如果為被動模式,由服務枯配器端和客戶端協商而定
❷ 為什麼大部分FTP伺服器需要限制同時連接的客服端的數量
實際上,所有的網路伺服器都會對同時可接入的客戶數量進行限制,其原因也十分簡單,任何網上的服務資源都是有限的,但是這種情況,尤以FTP 伺服器表現的最為突出。
(1)因為FTP 是一種十分普及的網路應用,使用客戶眾多;
(2)它是「面向連接」的應用,伺服器需要保留登錄用戶的狀態和根據用戶許可權控制用戶對文件的訪問,對於每一個FTP 連接,一般需要兩個通道進行才能進行有效的文件傳輸。
由於以上原因,FTP對伺服器資源的佔用是比較多的。為了使得文件伺服器能夠保證所有服務的正常運行,而不至於因為過多用戶登錄造成系統資源的枯竭並導致系統崩潰,所以對同時可接入的用戶按伺服器所能承受的能力實行限制。
(2)ftp同時使用兩個介面擴展閱讀
特點如下:
(一)FTP使用兩個平行連接:控制連接和數據連接。控制連接在兩主機間傳送控制命令,如用戶身份、口令、改變目錄命令等。數據連接只用於傳送數據。
(二)在一個會話期間,FTP伺服器必須維持用戶狀態,也就是說,和某一個用戶的控制連接不能斷開。另外,當用戶在目錄樹中活動時,伺服器必須追蹤用戶的當前目錄,這樣,FTP就限制了並發用戶數量。
(三)FTP支持文件沿任意方向傳輸。當用戶與一遠程計算機建立連接後,用戶可以獲得一個遠程文件也可以將一本地文件傳輸至遠程機器。
❸ FTP兩個埠號,它們分別的作用是什麼
上傳和下載。 客戶端首先連接到FTP伺服器的21埠,進行用戶的認證,認證成功後,當我們要傳輸文件時,伺服器會開一個埠為20來進行傳輸數據文件。
FTP允許用戶以文件操作的方式(如文件的增、刪、改、查、傳送等)與另一主機相互通信。
然而, 用戶並不真正登錄到自己想要存取的計算機上面而成為完全用戶, 可用FTP程序訪問遠程資源, 實現用戶往返傳輸文件、目錄管理以及訪問電子郵件等等, 即使雙方計算機可能配有不同的操作系統和文件存儲方式。
(3)ftp同時使用兩個介面擴展閱讀:
FTP客戶端發起FTP會話,與FTP伺服器建立相應的連接。FTP會話期間要建立控制信息進程與數據進程兩個連接。控制連接不能完成傳輸數據的任務,只能用來傳送FTP執行的內部命令以及命令的響應等控制信息。
數據連接是伺服器與客戶端之間傳輸文件的連接,是全雙工的,允許同時進行雙向數據傳輸。當數據傳輸完成後,數據連接會撤消,再回到FTP會話狀態,直到控制連接被撤消,並退出會話為止。
❹ 區域網內架設兩台FTP伺服器怎麼樣可以同時訪問
同一台機器上的2個ftp?更改其中一個埠號。
不同機器的?檢查是否使用了相同的ftp架設軟體 相同的序列號,ftp軟體會檢查的,比如常用的s-u軟體就會檢查一個區域網內是不是有相同存在。其中一個使用其他軟體架設就好。
❺ FTP協議為什麼需要兩個TCP連接啊(數據和控制連接)
我記得一個是用來發送數據,一個用來接收數據,
只是它們所用的埠不一樣,
一個用20(接收數據) ,一個用21(發送數據)。
如果只是一個連接的話,那就是復用一個埠,如果你清楚的話,
埠之間通信需要傳輸協議才能建立連接,
埠的復用等於說在一個埠上同時使用2種協議以上,如果是10種協議呢?
不但會影響傳輸速度,數據出錯的概率也變大了。
❻ linux vsftpd 怎樣弄不同埠來實現同一IP有兩個Ftp
可以生成兩個配置文件並配置,一個主管匿名用戶用21埠,一個主管本地用戶用另一埠,如果這樣的話也得生成兩個啟動服務的文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd2.conf
兩個配置文件配置如下:
/etc/vsftpd/vsftpd.conf過濾出來的配置信息(主管匿名用戶的21埠)
[root@desktopx ~]# grep -v '#' /etc/vsftpd/vsftpd.conf |grep -v '^$'
anonymous_enable=YES
local_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=ftp01
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
anon_root=/anon
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
/etc/vsftpd/vsftpd2.conf過濾出來的配置信息(主管本地用戶的2121埠)
[root@desktopx ~]# grep -v '#' /etc/vsftpd/vsftpd2.conf |grep -v '^$' anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/xferlog xferlog_std_format=YES local_root=/local listen=NO listen_port=2121 listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
啟動服務配置文件,原始的不用修改,還是啟動原始管理匿名用戶的21埠,拷貝一個2號文件用來啟動管理本地用戶的2121埠,過程和配置如下:
cp /usr/lib/systemd/system/vsftpd.service /usr/lib/systemd/system/vsftpd2.service
vim /usr/lib/systemd/system/vsftpd2.service
1 [Unit]
2 Description=Vsftpd ftp daemon
3 After=network.target
4
5 [Service]
6 Type=forking
7 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd2.conf
8
9 [Install]
10 WantedBy=multi-user.target
然後重啟服務 systemctl restart vsftpd systemctl restart vsftpd2
最後查看埠,會生成兩個進程,這時就成功啦
[root@desktopx ~]# netstat -tnpl |grep :21
tcp6 0 0 :::21 :::* LISTEN 8000/vsftpd
tcp6 0 0 :::2121 :::* LISTEN 8008/vsftpd