㈠ ftp是怎麼樣配置的
安裝vsftp配置文件,可執行程序,man等:
# install -m 755 vsftpd /usr/local/sbin/vsftpd-ano
# install -m 644 vsftpd.8 /usr/share/man/man8
# install -m 644 vsftpd.conf.5 /usr/share/man/man5
# install -m 644 vsftpd.conf /etc/vsftpd-ano.conf
這樣就安裝完成了,那麼我們開始進行簡單的配置
# vi /etc/vsftpd-ano.conf ,將如下三行加入文件
listen=YES
listen_port=21
tcp_wrappers=YES
anon_root=/var/ftp //設置匿名用戶本地目錄,和ftp用戶目錄必須相同
listen=YES的意思是使用standalone啟動vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推薦使用standalone方式)
# /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf & //以後台方式啟動vsftpd
注意:每行的值都不要有空格,否則啟動時會出現錯誤,舉個例子,假如我在listen=YES後多了個空格,那我啟動時就出現如下錯誤:
500 OOPS: bad bool value in config file for: listen
測試搭建好的匿名用戶方式
# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.0.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>; pwd
257 "/"
ftp>; quit
221 Goodbye.
#
OK,已經完成了,very nice.
高級配置
細心的朋友可能已經看出來我們只在默認配置文件增加了四行,就實現了FTP連接(也證明了vsftpd的易用性),那麼讓我們傳個文件吧,呀!!傳輸失敗了(見圖1)
為什麼呢?因為 vsftpd 是為了安全需要,/var/ftp目錄不能把所有的許可權打開,所以我們這時要建一個目錄pub,當然也還是需要繼續修改配置文件的。
# mkdir /var/ftp/pub
# chmod -R 777 /var/ftp/pub
為了測試方便,我們先建立一個名為kill-ano的腳本,是為了殺掉FTP程序的
#!/bin/bash
a=`/bin/ps -A | grep vsftpd-ano | awk '{print $1}'`
kill -9 $a
那麼現在大家看看我的匿名伺服器配置文件吧
anonymous_enable=YES //允許匿名訪問,這是匿名伺服器必須的
write_enable=YES //全局配置可寫
no_anon_password=YES //匿名用戶login時不詢問口令
anon_umask=077 //匿名用戶上傳的文件許可權是-rw----
anon_upload_enable=YES //允許匿名用戶上傳文件
anon_mkdir_write_enable=YES //允許匿名用戶建立目錄
anon_other_write_enable=YES //允許匿名用戶具有建立目錄,上傳之外的許可權,如重命名,刪除
dirmessage_enable=YES //當使用者轉換目錄,則會顯示該目錄下的.message信息
xferlog_enable=YES //記錄使用者所有上傳下載信息
xferlog_file=/var/log/vsftpd.log //將上傳下載信息記錄到/var/log/vsftpd.log中
xferlog_std_format=YES //日誌使用標准xferlog格式
idle_session_timeout=600 //客戶端超過600S沒有動作就自動被伺服器踢出
data_connection_timeout=120 //數據傳輸時超過120S沒有動作被伺服器踢出
chown_uploads=YES
chown_username=daemon //上傳文件的屬主
ftpd_banner=Welcome to d-1701.com FTP service. //FTP歡迎信息
anon_max_rate=80000 //這是匿名用戶的下載速度為80KBytes/s
check_shell=NO //不檢測SHELL
現在再測試,先kill掉再啟動FTP程序
# ./kill-ano
# /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf &
上傳一個文件測試一下,怎麼樣?OK了吧,下載剛上傳的那個文件,恩?不行,提示
550 Failed to open file.
傳輸已失敗!
傳輸隊列已完成
1 個文件傳輸失敗
沒有關系,你記得咱們設置了anon_umask=077了嗎?所以你下載不了,如果你到伺服器上touch 一個文件(644),測試一下,是可以被下載下來的,好了,匿名伺服器就說到這里了。
2、本地用戶形式實現
# cd /home/xuchen/vsftpd-2.0.3 //進入vsftpd-2.0.3的源代碼目錄
# make clean //清除編譯環境
# vi builddefs.h \\繼續編輯builddefs.h 文件,文件內容如下:
#ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H
#define VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#define VSF_BUILD_SSL
#endif /* VSF_BUILDDEFS_H */
將以上define VSF_BUILD_PAM行的define改為undef,支持tcp_wrappers,不支持PAM認證方式,支持SSL,記住啊,如果支持了PAM認證方式,你本地用戶是不能登陸的。
# make //直接在vsftpd-2.0.3里用make編譯
# ls -l vsftpd
-rwxr-xr-x 1 root root 84712 Jun 6 18:56 vsftpd //可執行程序已被編譯成功
創建必要的帳號,目錄:
# useradd nobody //可能你的系統已經存在此帳號,那就不用建立
# mkdir /usr/share/empty //可能你的系統已經存在此目錄,那就不用建立
# mkdir /var/ftp //可能你的系統已經存在此目錄,那就不用建立
# useradd -d /var/ftp ftp //可能你的系統已經存在此帳號,那就不用建立
# chown root:root /var/ftp
# chmod og-w /var/ftp
請記住,如果你不想讓用戶在本地登陸,那麼你需要把他的登陸SHELL設置成/sbin/nologin,比如以上的nobody和ftp我就設置成/sbin/nologin
安裝vsftp配置文件,可執行程序,man等:
# install -m 755 vsftpd /usr/local/sbin/vsftpd-loc
# install -m 644 vsftpd.8 /usr/share/man/man8
# install -m 644 vsftpd.conf.5 /usr/share/man/man5
# install -m 644 vsftpd.conf /etc/vsftpd-loc.conf
這樣就安裝完成了,那麼我們開始進行簡單的配置
# vi /etc/vsftpd-loc.conf ,將如下三行加入文件
listen=YES
listen_port=21
tcp_wrappers=YES //支持tcp_wrappers,限制訪問(/etc/hosts.allow,/etc/hosts.deny)
listen=YES的意思是使用standalone啟動vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推薦使用standalone方式),注意事項請參看匿名用戶的配置。
anonymous_enable=NO
local_enable=YES //這兩項配置說不允許匿名用戶登陸,允許本地用戶登陸
# /usr/local/sbin/vsftpd-loc /etc/vsftpd-loc.conf & //以後台方式啟動vsftpd
㈡ 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軟體,進行遠程登錄訪問;下載直接在網路下載就行
㈢ 如何設置ftp
下載一個FTP服務端軟體,FTP serv-u(本機上如果裝了IIS也可以),完成安裝。下面是在伺服器(也就是區域網代理伺服器)上要做的工作,以保證你的FTP可以對外服務。一,建產DNS記錄1、打開DNS控制台:選「開始菜單→程序→管理工具→DNS」。2,建立域名「ftp.dasha.com」映射IP地址「192.168.0.50」(這個IP就是客戶端的真正IP)的主機記錄。①建立「com」區域:選「DNS→WY(你的伺服器名)→正向搜索區域→右鍵→新建區域」,然後根據提示選「標准主要區域」、在「名稱」處輸入「com「②建立「dasha」域:選「com→右鍵→新建域」,在「鍵入新域名」處輸入「dasha」③建立「ftp」主機。選「dasha→右鍵→新建主機」,「名稱」處為「ftp」,「IP地址」處輸入「192.168.0.50」,再按「添加主機」。現在測試一下,「運行」輸入"ping ftp.dasha.com" 二、「ftp.abc.com」的設置1、打開「默認FTP站點」屬性窗口:選「默認FTP站點→右鍵→屬性」即可。2、設置「FTP站點」:在「IP地址」處選「192.168.0.50」,埠號保持默認值「21」不變。3、設置「消息」:在「歡迎」框中輸入登錄成功後的歡迎信息,「退出」中為退出信息。4、設置「主目錄」:在「客戶機」中按「瀏覽」按鈕選擇目標目錄「E:\myweb」。5、設置「安全帳號」:默認的,匿名用戶(Anonymous)被允許登錄,如果有必要,此處可選拒絕其登錄以增加安全性;或增加其他用於管理此FTP伺服器的用戶名(默認的為「Administator」)。6、設置「目錄安全性」:此處可以設置只被允許或只被拒絕登錄此FTP伺服器的的計算機的IP地址。7、如需要,也可在「默認FTP站點」處單擊右鍵選「新建」來新建FTP的虛擬目錄。三、「ftp.dasha.com」的測試1、在瀏覽器中登錄:格式為「ftp://ftp.dasha.com」或「ftp://用戶@ftp.abc.com」。如果匿名用戶被允許登錄,則第一種格式就會使用匿名登錄的方式;如果匿名不被允許,則會彈出選項窗口,供輸入用戶名和密碼。第二種格式可以直接指定用某個用戶名進行登錄。2、在DOS下登錄:格式為「ftp ftp.abc.com」。3、用FTP客戶端軟體登錄4、如果「主目錄」下有與用戶同名的「虛擬目錄」或「實際目錄」,則該用戶會直接登錄到其同名目錄中。注意第二部的工作,你還可以填加另一個FTP站點,不過之前,你還得進行第一步的工作。三,開始客戶端的FTP伺服器軟體設置。下邊的工作便是serve-u的設置了,再轉一個: Serv-U 3.0.0.17 使用詳解 (轉貼) 主要新功能: * 以 WindowsNT/2000/XP... 的 Service 形式運行, 可以隨開機而啟動服務* 把伺服器和管理工具分離, 而管理工具可以遠程配置 Serv-U 3 的伺服器* 虛擬路徑映射 (Virtual path mappings), 可以很方便地把不同分區, 甚至不同機器上的路徑都映射到你想它出現的位置, 對於登錄用戶來說, 他根本看不出虛擬映射和實際有什麼分別* 似乎對 DoS (Deny Of Service) 攻擊有點對策, 實際應用情況不清楚 主要特性: * 看來內存比 2.x 佔用得多不了多少 (當管理工具沒打開時) * 至少不會比 2.x 慢* 注冊碼有點難度, 竟然出了幾天都沒注冊機更有cracker說它用了 ECC (Elliptic Curves) , 很可能永遠都出不了注冊機? 現在有的是破解版, 可能有人感覺不太舒服吧? 呵呵. 通常選 No priviledge 吧. 嘿! 基本上搞好了! Step #3. 認識 Serv-U 3 管理工具的的界面左邊的樹狀結構是 Serv-U 3 的結構層次: 1. Serv-U Server 下面是管理工具在管理的 FTP, 其中<<Local Server>>就是你機上那個伺服器了. 2. 在每個伺服器中... License: 給你填注冊碼Settings: 伺服器總配置Activity: 給你監測本伺服器的運作情況Domains: 下面的各個 Domain, 是以你的機器擁有的不同IP開的伺服器, 按剛才"第一次運行"來做, 你現在會有一個 Domain 了. Step #4: 整體配置在<<Local Server>>的Settings: General: 總體限制, 參數設置Max. Speed- 總體限速, 不設的話, 極速可達約 1MBytes/S. Max no. of users - 同時的連接數目不要太多, 很傷硬碟的, 建議不超過20 Check Anonymous password - 匿名登陸密碼檢查, 不要選, 否則 IE 不能進入. Block Anti Time-out schemes Block "FTP_bounce"... 主要是把些無聊人趕掉, 都選吧, 細節看 Help Block users who connect... 隨意, 用於"罰"一下用多線程下載的用戶. 其餘選項看 Help 吧. Dir Cache: 目錄緩存用戶較多時, 可以明顯加快用戶瀏覽的速度, 把它打開, 用默認的 Max.Size 25, Time-out 600 sec. 差不多了. Auto-Refresh 選取後你會看到在緩存中有哪些目錄
㈣ 如何配置FTP伺服器。
XP也可以配置FTP!
配置FTP很簡單,
最簡單的就是windows上的IIS了!
裝上IIS服務,之後就可以進行創建FTP了~
不懂在問吧!
㈤ 怎麼使用FTP,實現兩台計算機之間文件的傳輸需要注意什麼......
如果使用FTP的話,其實不能叫傳文件,這個方法實際是建立一個FTP伺服器,然後讓客戶機去訪問FTP伺服器,從FTP上下載文件到本地計算機。
㈥ ftp伺服器如何配置
首先我們創建一個用戶賬戶用於登錄FTP進行操作。右鍵點擊桌面的我的點擊選擇管理選項,進入管理界面打開本地用戶和組選項,我們可以看到列表中的用戶選項
㈦ 【Win7配置】win7配置ftp的詳細步驟
操作步驟:
1、到控制面板---程序---打開或關閉windows功能,列表內找到
Internet信息服務(展開)---選中FTP的三個項;
2、到控制面板---系統和安全---管理工具---Internet信息服務(IIS)管理器---右鍵點你計算機名稱那裡,選擇添加FTP站點;
3、FTP站點名稱輸入:"localhost"---選擇你的FTP目錄物理路徑,點下一步---Ip地址選「全部未分配」,埠可以自己設,但不能用80,勾上「自動FTP站點」,SSL選「允許」,點下一步---身份驗證選「匿名」,允許訪問選「匿名用戶」,許可權勾「讀取」,點完成。
4、到控制面板---系統和安全---允許程序通過防火牆---鉤上FTP及後面兩個框框。
5、使用迅雷、FlashGet的FTP探測器功能,輸入:ftp://localhost訪問。
(IE不一定能進入ftp,這點需要注意,由於用戶許可權問題。)
㈧ 電腦上說的FTP地址指的是什麼怎麼設置自己的FTP呢
FTP(File Transfer Protocal),是用於Internet上的控制文件的雙向傳輸的協議。同時,它也是一個應用程序。
設置ftp伺服器的方法:
工具/原料
IIS .net framework 電腦
方法/步驟
1、打開【控制面板】->【程序和功能】->【啟用或關閉 windows 功能】,窗口中,勾選【Internet Information Services】下面的【FTP伺服器】三個選項,點擊【確定】。
㈨ FTP如何使用
FTP基礎知識
您是否正准備搭建自己的FTP網站?您知道FTP協議的工作機制嗎?您知道什麼是PORT方式?什麼是PASV方式嗎?如果您不知道,或沒有完全掌握,請您坐下來,花一點點時間,細心讀完這篇文章。所謂磨刀不誤砍柴功,掌握這些基礎知識,會令您事半功倍。否則,很可能折騰幾天,最後一事無成。
FTP基礎知識
FTP是File Transfer Protocol(文件傳輸協議)的縮寫,用來在兩台計算機之間互相傳送文件。相比於HTTP,FTP協議要復雜得多。復雜的原因,是因為FTP協議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶端與伺服器之間傳遞命令;另一個是數據鏈路,用來上傳或下載數據。
FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。
PORT(主動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。
當需要傳送數據時,客戶端在命令鏈路上用 PORT命令告訴伺服器:「我打開了****埠,你過來連接我」。於是伺服器從20埠向客戶端的****埠發送連接請求,建立一條數據鏈路來傳送數據。
PASV(被動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。
當需要傳送數據時,伺服器在命令鏈路上用 PASV命令告訴客戶端:「我打開了****埠,你過來連接我」。於是客戶端向伺服器的****埠發送連接請求,建立一條數據鏈路來傳送數據。
從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數據鏈路的建立方法就完全不同。而FTP的復雜性就在於此。
FTP伺服器端的注意事項
一、FTP伺服器是公網IP,用公網動態域名;或是內網IP,用內網專業版TrueHost
1、伺服器如果安裝了防火牆,請記住要在防火牆上打開FTP埠(默認是21)。
2、所有FTP伺服器軟體都支持PORT方式。至於PASV方式,大部分FTP伺服器軟體都支持。支持PASV方式的FTP伺服器軟體,也可以設置為只工作在PORT方式上。
3、為了PASV方式能正常工作,需要在FTP伺服器軟體上為PASV方式指定可用的埠范圍(設置方法)。此外,還要在伺服器的防火牆上打開這些埠。當客戶端以PASV方式連接伺服器的時候,伺服器就會在這個埠范圍里挑選一個埠出來,給客戶端連接。
二、FTP伺服器是內網IP,用內網動態域名標准版cm*natpro*y
這種情況下,FTP伺服器不需要做特殊設置,只要支持PASV方式就可以了。大部分FTP伺服器軟體都支持PASV方式。
FTP客戶端的注意事項
請注意:選擇用PASV方式還是PORT方式登錄FTP伺服器,選擇權在FTP客戶端,而不是在FTP伺服器。
一、客戶端只有內網IP,沒有公網IP
從上面的FTP基礎知識可知,如果用PORT方式,因為客戶端沒有公網IP,FTP將無法連接客戶端建立數據鏈路。因此,在這種情況下,客戶端必須要用PASV方式,才能連接FTP伺服器。大部分FTP站長發現自己的伺服器有人能登錄上,有人登錄不上,典型的錯誤原因就是因為客戶端沒有公網IP,但用了IE作為FTP客戶端來登錄(IE默認使用PORT方式)。
作為FTP站長,有必要掌握FTP的基礎知識,然後指導您的朋友如何正確登錄您的FTP。
二、客戶端有公網IP,但安裝了防火牆
如果用PASV方式登錄FTP伺服器,因為建立數據鏈路的時候,是由客戶端向伺服器發送連接請求,沒有問題。反過來,如果用PORT方式登錄FTP伺服器,因為建立數據鏈路的時候,是由伺服器向客戶端發送連接請求,此時連接請求會被防火牆攔截。如果要用PORT方式登錄FTP伺服器,請在防火牆上打開 1024以上的高端埠。
三、連接用內網標准版cm*natpro*y搭建的FTP服務,必須要用PASV方式。連接任何公網FTP伺服器、或用內網專業版TrueHost搭建的FTP伺服器,PORT方式和PASV方式都可以使用。
當然,使用PORT方式的時候,還要滿足上面的兩個條件。
四、常見的FTP客戶端軟體PORT方式與PASV方式的切換方法。
大部分FTP客戶端默認使用PASV方式。IE默認使用PORT方式。
在大部分FTP客戶端的設置里,常見到的字眼都是「PASV」或「被動模式」,極少見到「PORT」或「主動模式」等字眼。因為FTP的登錄方式只有兩種:PORT和PASV,取消PASV方式,就意味著使用PORT方式。
IE:
工具 -> Internet選項 -> 高級 -> 「使用被動FTP」(需要IE6.0以上才支持)。
CuteFTP:
Edit -> Setting -> Connection -> Firewall -> 「PASV Mode」
或
File -> Site Manager,在左邊選中站點 -> Edit -> 「Use PASV mode」
FlashGet:
工具 -> 選項 -> 代理伺服器 -> 直接連接 -> 編輯 -> 「PASV模式」
FlashFTP:
選項 -> 參數選擇 -> 代理/防火牆/標識 -> 「使用被動模式」
或
站點管理 -> 對應站點 -> 選項 -> 「使用被動模式」
或
快速連接 -> 切換 -> 「使用被動模式」
LeechFTP:
Option -> Firewall -> Do not Use
五、請盡量不要用IE作為FTP客戶端
IE只是個很粗糙的FTP客戶端工具。首先,IE6.0以下的版本不支持PASV方式;其次,IE在登錄FTP的時候,看不到登錄信息。在登錄出錯的時候,無法找到錯誤的原因。在測試自己的FTP網站的時候,強烈建議不要使用IE。
FTP建站的詳細配置過程
請參考這個網頁的說明來配置:
使用Serv-U建立FTP網站
高級話題
一、為什麼沒有公網IP,也能使用PORT方式登錄FTP?
NAT 網關的工作方式是在TCP/IP數據包的包頭里找區域網的源地址和源埠,替換成網關的地址和埠。對數據包里的內容,是不會改變的。而使用PORT方式登錄FTP的時候,IP地址與埠信息是在數據包裡面的,而不是在包頭。因此,沒有公網IP,使用PORT方式是無法從internet上的ftp伺服器下載數據的。
但是,極少數的NAT網關也支持PORT方式。這些NAT網關連數據包裡面的內容都掃描,掃描到 PORT指令後會替換PORT方式的IP和埠。在這種NAT網關下面,用PORT方式就沒問題了。不過,這些網關也只掃描21埠的數據包,如果FTP 伺服器不是用默認的21埠,也無法使用PORT方式。
二、內網可以用PORT訪問其他FTP,為什麼不能用PORT訪問自己的TrueHost FTP?
下面要討論的問題,只是為了說明一些原理,是不影響實際使用的。如果您沒有興趣深究這些原理,不必花時間看。
內網用戶通過支持PORT方式的NAT網關,訪問自己本機利用TrueHost建立的FTP伺服器,FTP命令鏈路的建立過程如下:
FTP客戶端
10.10.0.1
埠*** <==> ISP NAT網關
61.144.1.2
埠**** <==> TH伺服器
*.*.*.*
埠21 <==> TH客戶端 <==> 用戶FTP伺服器
10.10.0.1
埠21
FTP客戶端通過ISP的NAT網關、科邁TrueHost伺服器、TrueHost客戶端,連接用戶本機的FTP伺服器的21埠。
當需要下載數據的時候,FTP客戶端通過這條命令鏈路,向FTP伺服器發送PORT命令。假設命令為:
PORT 10,10,0,1,30,4 (即IP=10.10.0.1 埠=30*256+4=7684)
當命令通過ISP的NAT網關的時候,NAT網關判斷目的埠是21,並且是PORT命令,於是,修改命令里的IP和埠,替換為自己的IP和埠,比如:
PORT 61,144,1,2,50,6 (即IP=61.144.1.2 埠=50*256+6=12806)
用戶的FTP伺服器最終收到的是上面這個PORT命令。於是,FTP伺服器向這個IP和埠發送連接請求,建立數據鏈路。
用戶FTP伺服器
10.10.0.1
埠20 <==> ISP NAT網關
61.144.1.2
埠12806 <==> FTP客戶端
10.10.0.1
埠7684
但是,因為NAT網關的公網IP只能接收外來的連接請求。就是說,61.144.1.2:12806隻能接收其他公網IP的連接請求,對於從NAT內部(10.10.0.1:20)發起的連接請求,是無法建立連接的。為什麼?原因很簡單,因為內網IP要訪問外網,必須要通過NAT建立映射。於是FTP數據鏈路無法建立。於是,用戶無法在自己的機器上通過21埠訪問自己的TrueHost FTP。
我們再來看看,如果FTP埠不是21,比如是22,會發生什麼情況呢?在FTP客戶端發送PORT命令的時候,NAT網關檢測到目標埠是22,因為支持PORT的 NAT網關只監視目的埠是21的數據包,發現目的埠是22的數據包,不做任何處理,完全放行。於是FTP伺服器收到的PORT命令依然是PORT 10,10,0,1,30,4。於是FTP伺服器向這個IP和埠發送連接請求。
用戶FTP伺服器
10.10.0.1
埠20 <==> FTP客戶端
10.10.0.1
埠7684
這種情況下命令鏈路就可以建立起來了。而且是等於本機連接本機,速度飛快。
綜上所述,內網用戶無法用PORT方式通過21埠訪問自己的TrueHost FTP伺服器。如果FTP埠不是21,則可以訪問,而且實際上是本機連接本機。
上面的文字,僅僅是為了說明一些原理,不影響實際使用。如果本機訪問本機,還要通過FTP的話,就有畫蛇添足之嫌了。