直播中
首先要提到的是這里的內(nèi)網(wǎng)是指一般我們網(wǎng)吧內(nèi)部環(huán)境的內(nèi)網(wǎng),對(duì)城域網(wǎng)內(nèi)網(wǎng)我沒什么好說的,愿花錢的去dns0755好了
一個(gè)基本條件:一個(gè)公網(wǎng)ip,對(duì)網(wǎng)關(guān)有操作權(quán)限
ftp服務(wù)器端192.168.0.100,我選用win2k+serv-u 4.1.0.0,很普通常用的一個(gè)組合
網(wǎng)關(guān)是最簡單的雙網(wǎng)卡pc,一接外網(wǎng)一接內(nèi)網(wǎng),這里假設(shè)外網(wǎng)ip為218.4.218.4,內(nèi)網(wǎng)ip為192.168.0.1
提一些概念性的東東:
一次完整的ftp會(huì)話,包含有兩個(gè)連接,一個(gè)稱之為命令通道,一個(gè)稱之為數(shù)據(jù)通道。
命令通道用來傳遞一些“命令”和反饋,包括用戶名密碼登陸,而且眾所周知是明文
數(shù)據(jù)通道用來傳遞實(shí)際數(shù)據(jù)----列目錄、文件傳輸
一旦需要列目錄或文件傳輸,數(shù)據(jù)通道就會(huì)被建立起來,這里分兩種方式,一是port二是pasv
你會(huì)在因特網(wǎng)上找到許多ftp服務(wù)器,有的要么只支持port,有的要么只支持pasv,有的是因?yàn)榭紤]安全因素,有的是因?yàn)闂l件限制。等等
我想把我的ftp做成port和pasv方式都能支持的,這樣不會(huì)使客戶端在連接上受到困擾,特別是一些新手
對(duì)于port和pasv的定義,比較容易理解的解釋是針對(duì)ftp服務(wù)端而言的:
port是主動(dòng)模式,在建立數(shù)據(jù)通道時(shí),服務(wù)端去連接別人
pasv是被動(dòng)模式,在建立數(shù)據(jù)通道時(shí),服務(wù)端被別人連接
建立數(shù)據(jù)通道時(shí),用port模式還是pasv模式,選擇權(quán)在于ftp客戶端
現(xiàn)在要做的,就是端口映射了,最基本的是命令通道的映射,這里選用默認(rèn)的21
我想把在網(wǎng)關(guān)外網(wǎng)接口收到的對(duì)218.4.218.4端口21的連接請(qǐng)求,轉(zhuǎn)發(fā)到192.168.0.100的21端口去
win2k網(wǎng)關(guān)篇
1.系統(tǒng)自帶簡單的端口轉(zhuǎn)發(fā)程序,就是能給我們提供連接共享的ics/rras,這兩種方式原理是一樣的,而且都能提供這類業(yè)務(wù)的端口轉(zhuǎn)發(fā)
設(shè)置過程比較簡單,我也不抓圖了,以前有過很多。
就是在“服務(wù)與端口”中,注冊(cè)一條類似“公用網(wǎng)絡(luò)與端口218.4.218.4:21 to 專用網(wǎng)絡(luò)與端口192.168.0.100:21”這樣格式的規(guī)則
設(shè)置好后,別人就能訪問你的內(nèi)網(wǎng)ftp服務(wù)器了,但你很快會(huì)發(fā)現(xiàn)你的ftp服務(wù)器只支持port方式,如果客戶端也在內(nèi)網(wǎng)環(huán)境則port方式也用不了了
這是為什么呢?我們來分析一下,因?yàn)樵趐asv方式,服務(wù)器接到客戶端的pasv命令后,會(huì)指定一個(gè)本地的隨機(jī)端口來作為pasv端口,并通知客戶端,然后等待客戶端的連接,在通知消息里包含有ftp服務(wù)器的ip地址和打開的pasv端口,我ftp服務(wù)器的ip地址是什么?現(xiàn)在是192.168.0.100,那么對(duì)方收到的pasv通知將是這樣格式的
227 entering passive mode (192,168,0,100,m,n)
mn是定義了pasv端口的值,計(jì)算方式是m*256+m,如果這里m是10而n是20,那么pasv端口就是2580
客戶端收到這條通知后,當(dāng)它想發(fā)起數(shù)據(jù)通道的連接,它會(huì)向192.168.0.100:2580這個(gè)目標(biāo)地址發(fā)送syn請(qǐng)求,毫無疑問將不會(huì)收到應(yīng)答,因?yàn)檫@個(gè)ip在公共網(wǎng)絡(luò)事實(shí)上是不存在的