通過NAT ALG實現FTP伺服器的訪問 例項

2021-09-10 01:26:11 字數 2385 閱讀 7296

本例項拓撲的實現是在華為ensp模擬器上進行的,使用了一台客戶端、一台ftp伺服器和兩台華為ar2240路由器。相關的實驗拓撲如下圖所示:

普通的nat協議實現了tcp和udp報文頭中ip位址的轉換功能,然而它對應用層協議資料中的相關字段無法進行轉換,ftp就是其中之一,而alg的出現解決了普通nat的不足之處,其能對多通道協議進行應用層報文資訊的位址轉換,從而保證應用層通訊的正確性。

需要注意的是,port模式下需要經過alg處理的是私網客戶端發出的port報文,只有私網出口路由器使能alg功能後相應的檔案操作才能正常進行,根據本人在ensp中的實驗,如果出口路由器沒有使能alg功能,客戶端可以登入外網ftp伺服器但是讀不到ftp伺服器中的檔案。

pasv與port相反,這個過程由外網的ftp伺服器主動傳送相應的報文告知內網客戶端自己的位址和相應的埠,經過中間路由器alg處理後,傳送到內網客戶端,等待內網客戶端與自己建立連線,如下圖所示:

從這裡我們可以看出,內網客戶端傳送的相關資訊是以「a1,a2,a3,a4,p1,p2」這樣的格式體現出來,其中a1、a2、a3、a4代表的私網ip位址,p1、p2代表開放的埠號,在這裡有個公式——埠號=p1*256+p2(後面中的紅圈部分均適用這個公式)。

下圖是轉換後的位址和埠號:

接下來是pasv模式中,外網ftp伺服器發布的外網位址和埠號:

轉換後的位址和埠號:

【私網客戶端】

#【外網ftp伺服器】

通過FTP4J 實現FTP各種操作

我在虛擬機器中安裝了試用版serv u 14,本地使用flashfxp4來配合本次示例。使用使用者123,使用者密碼123123。伺服器上我在d盤建立了乙個資料夾ftp作為使用者所在域的根。將ftp4j 1.7.2.jar加入到本地工程中,或者直接使用原始碼,將解壓後的src資料夾下檔案直接拷貝到工...

FTP協議解析與實現(通過實驗講述FTP協議)

配置server 選擇edit setting,設定如下 增加登陸使用者和共享目錄,選擇edit user 登陸測試,在瀏覽器中輸入本機ip,可以看到共享目錄下的檔案。一 輸入ftp伺服器的ip和命令埠號,即21,進行tcp連線 二 登陸伺服器。ftp常用的命令見下文,注意傳送的命令都需要換行 三 ...

FTP 伺服器上通過FTP共享資料夾

近日,公司某伺服器共同操作的人員增多,而我只需訪問及替換某些檔案,故想到共享資料夾。在iis中建立ftp站點,新增虛擬目錄 可多個,對應不同資料夾 設定允許訪問的使用者 新增使用者,見在iis上搭建ftp服務 本地訪問 front為虛擬目錄名 訪問正常,刪除 重新命名 替換檔案,出現如下錯誤 原因 ...