激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - FTP服務器 - Serv-u 外網訪問內網的FTP服務器實現方法

Serv-u 外網訪問內網的FTP服務器實現方法

2020-06-19 18:12陳同學 FTP服務器

本文主要講解Serv-u 外網訪問內網的FTP服務器實現方法,如何在內網搭架FTP服務器,同時要保證外網(公網)能訪問的到。有需要的同學可以參考一下。


1. 背景簡介

最近研究如何在內網搭架FTP服務器,同時要保證外網(公網)能訪問的到。終成正果,但走了一些彎路,在此記下,以饗后人。

2. 基礎知識

FTP 使用 2 個端口,一個數據端口和一個命令端口(也叫做控制端口)。這兩個端口一般是21 (命令端口)和 20 (數據端口),當然你也可以自定義。控制 Socket 用來傳送命令,數據 Socket 是用于傳送數據。每一個 FTP 命令發送之后,FTP 服務器都會返回一個字符串,其中包括一個響應代碼和一些說明信息。其中的返回碼主要是用于判斷命令是否被成功執行了。

2.1. 命令端口

一般來說,客戶端有一個 Socket用來連接 FTP 服務器的相關端口,它負責 FTP 命令的發送和接收返回的響應信息。一些操作如“登錄”、“改變目錄”、“刪除文件”,依靠這個連接發送命令就可完成。

2.2. 數據端口

對于有數據傳輸的操作,主要是顯示目錄列表,上傳、下載文件,我們需要依靠另一個 Socket來完成。

如果使用被動模式,通常服務器端會返回一個端口號。客戶端需要用另開一個 Socket 來連接這個端口,然后我們可根據操作來發送命令,數據會通過新開的一個端口傳輸。

如果使用主動模式,通常客戶端會發送一個端口號給服務器端,并在這個端口監聽。服務器需要連接到客戶端開啟的這個數據端口,并進行數據的傳輸。

下面對 FTP 的主動模式和被動模式做一個簡單的介紹。

2.3. 主動模式(PORT)

主動模式下,客戶端隨機打開一個大于1024 的端口向服務器的命令端口 P,即 21 端口,發起連接,同時開放N +1 端口監聽,并向服務器發出 “port N+1” 命令,由服務器從它自己的數據端口 (20) 主動連接到客戶端指定的數據端口 (N+1)。

FTP 的客戶端只是告訴服務器自己的端口號,讓服務器來連接客戶端指定的端口。對于客戶端的防火墻來說,這是從外部到內部的連接,可能會被阻塞。

2.4. 被動模式(PASV)

為了解決服務器發起到客戶的連接問題,有了另一種 FTP 連接方式,即被動方式。命令連接和數據連接都由客戶端發起,這樣就解決了從服務器到客戶端的數據端口的連接被防火墻過濾的問題。

被動模式下,當開啟一個 FTP 連接時,客戶端打開兩個任意的本地端口 (N > 1024 和 N+1) 。

第一個端口連接服務器的 21 端口,提交 PASV 命令。然后,服務器會開啟一個任意的端口 (P > 1024 ),返回如“227 entering passive mode (127,0,0,1,4,18)”。 它返回了 227 開頭的信息,在括號中有以逗號隔開的六個數字,前四個指服務器的地址,最后兩個,將倒數第二個乘256 再加上最后一個數字,這就是 FTP 服務器開放的用來進行數據傳輸的端口。如得到 227 entering passive mode(h1,h2,h3,h4,p1,p2),那么端口號是 p1*256+p2,ip 地址為h1.h2.h3.h4。這意味著在服務器上有一個端口被開放。客戶端收到命令取得端口號之后, 會通過 N+1 號端口連接服務器的端口 P,然后在兩個端口之間進行數據傳輸。

3. 我走過的彎路

使用Serv-U搭架FTP服務器很簡單,網上教程也很多,不再累述。我這里只記錄下我遇到的問題。

3.1. 使用環境

操作系統

FTP軟件

FTP軟件版本

FTP服務器

Windows XP

Serv-U

版本15.0.1.20

FTP客戶端

Windows XP

FileZilla

版本3.8.0

FTP服務器安裝在公司內網的電腦上,FTP客戶端在外網的電腦上(嚴格來說也是在另一外局域網內)。

3.2. PASV端口范圍

被動模式(PASV)下,有數據要傳輸時,服務器會打開一個數據端口(并處于監聽狀態),然后告知客戶端,客戶端連接這個數據端口發送數據。但是數據端口是隨機的,那么服務器該如何將這些隨機數據端口映射到公網的路由器上呢???總不能讓內部網的一臺機器完全暴露到公網上吧,雖然確實有這樣的方案(稱之為DMZ主機),但這絕對是最愚蠢的選擇。

這就是我遇到的第一個彎路,折騰了很久才知道。雖然數據端口是隨機的,但Serv-U可以指定隨機的范圍。打開Serv-U管理控制臺 > 管理服務器 > 服務器限制和設置 > 服務器設置 。在“設置”選項卡里找到“PASV端口范圍”,如下圖所示,在這里就可以指定隨見的范圍了。你只要把這些端口映射到路由器就可以了。

Serv-u 外網訪問內網的FTP服務器實現方法

圖表 1 PASV 端口范圍

當然別忘了,還有一個命令端口也得映射。

3.3. PASV IP地址

我遇到的第二個難纏的問題是,FileZilla客戶端獲取不到FTP服務器的目錄列表。日志信息如下:

狀態:    正在連接 125.89.123.99:13000...

狀態:    連接建立,等待歡迎消息...

響應:    220 Serv-U FTP Server v15.0 ready...

命令:    USER zhangsan

響應:    331 User name okay, need password.

命令:    PASS ***

響應:    230 User logged in, proceed.

命令:    CLNT FileZilla

響應:    200 Noted.

命令:    OPTS UTF8 ON

響應:    200 OPTS UTF8 is set to ON.

命令:    OPTS MLST type;size;modify;perm;

響應:    200 MLST OPTS Type;Size;Modify;Perm;

狀態:    已連接

狀態:    讀取目錄列表...

命令:    PWD

響應:    257 "/" is current directory.

命令:    TYPE I

響應:    200 Type set to I.

命令:    PASV

響應:    227 Entering Passive Mode (100,100,100,100,50,203)

命令:    MLSD

響應:    150 Opening BINARY mode data connection for MLSD.

錯誤:    連接超時

錯誤:    讀取目錄列表失敗

也是經過一陣折騰,最后突然發現服務器對PASV指令的響應是:227Entering Passive Mode (100,100,100,100,50,203),這里100.100.100.100是FTP服務器在內網IP,客戶端自然連接不上。打開Serv-U管理控制臺 > 你自定義的域名 > 域詳細信息 > 監聽器 > 編輯 ,在PASV IP地址或域名中設置公網IP即可。 如下圖所示。

Serv-u 外網訪問內網的FTP服務器實現方法

Serv-u 外網訪問內網的FTP服務器實現方法

4. 總結

FTP服務器至少需要兩個端口:命令端口和數據端口。命令端口是固定的,而數據端口是隨機的。隨機的端口如何映射到公網?Serv-U可以設置PASV端口范圍,隨機也只是在設定的范圍內隨機。另外需要設置PASV IP地址,否者服務器響應客戶端的PASV 命令時,會把服務器在內網中的IP地址告知客戶端,這個地址對應客戶端來說是連接不上的。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色综合视频网 | 日本娇小18xxxⅹhd | 一级免费大片 | 精品中文字幕在线观看 | 草莓视频久久 | 色综合精品 | 黄色影院一级片 | 香蕉视频破解 | 在线 日本 制服 中文 欧美 | 国产精品久久久久久久午夜片 | 99在线精品视频免费观看20 | 免费视频www在线观看 | 精品一区二区在线视频 | 黄视频网站免费在线观看 | 国产午夜精品视频免费不卡69堂 | 国产精品久久久久久久久久大牛 | 九九热在线精品视频 | 黄色av片三级三级三级免费看 | 亚洲骚综合 | 黄色大片在线观看 | 中文字幕专区高清在线观看 | 国产在线观看91一区二区三区 | 精品国产一区二区三区四区阿崩 | 91免费高清视频 | 日本视频在线免费观看 | 成人做爽爽爽爽免费国产软件 | 成人毛片100免费观看 | 九九热国产在线 | 久久99精品久久久久久久久久久久 | chinese xxxx hd pron8 tube | 日本一区二区不卡高清 | 高潮激情aaaaa免费看 | 一级网站| 国产亚洲精品久久午夜玫瑰园 | 国产免费美女 | 欧美18videos性处按摩 | 久久金品 | 精品一区二区三区在线观看国产 | 欧美视频一级 | 精品久久久久久综合日本 | 久久色网站 |