FTP服務器須要開幾個端口:理解f tp 主動服務和被動服務的原理

1、FTP服務器須要開幾個端口


        新買了臺服務器,只用來提供FTP和SQL Server服務,爲保證安全,只開放21和1433端口。但FTP不能訪問,因而我就花了點時間研究了一下防火牆的日誌和在網上找了些相關的資料,有了如下的總結。   因爲前段時間公司新買了臺服務器,只用來提供FTP和SQL Server服務(有固定公網IP而且對外服務),因而我就想用防火牆封住除開FTP和SQL Server以外的全部端口(也就是隻開放21和1433啦),以保證服務器的安全,可是想不到的是開了21端口以後,FTP依舊不能訪問,讓我很納悶,因而我就花了點時間研究了一下防火牆的日誌和在網上找了些相關的資料,有了如下的總結。安全

  一、完成一個FTP的傳輸過程不只僅只須要21一個端口,而是2個端口,21端口只是一個命令端口,其實另外還有一個數據端口,我想這就是有些朋友在內網架設FTP而且在網關上作了21端口的映射以後外網仍是不能訪問的緣由吧,另一個數據端口是多少呢?這又牽涉到另一個問題。服務器


  二、FTP具備兩種模式,分別是port模式(也叫主動模式)和pasv模式(也叫被動模式),怎麼來理解這兩種模式呢?我來打個比喻吧,在主動模式下:客戶端給服務器端的21端口發命令說,我要下載什麼什麼,而且還會說我已經打開了本身的某個端口,你就從這裏把東西給我吧,服務器知道後就會經過另一個數據端口把東西傳給客戶端,這就是主動模式,能夠理解爲服務端主動給客戶端傳輸文件;在被動模式下:客戶端給服務器端的21端口發命令說,我要下載什麼什麼,服務器端知道後,就打開一個端口,而後告訴客戶端,我已經打開了某某端口,你本身進去拿吧,因而客戶端就從那個端口進去拿文件了,這就是被動模式,能夠理解爲服務端被客戶端拿走了東西,哈哈,能夠看懂吧。spa


  在FTP的歷史中,原本只有主動模式的,可是爲何又出現了被動模式呢?這又牽涉到另一個問題了,呵呵~翻譯

  三、在好久之前(我也不知道多久),地球上尚未什麼共享上網這種技術,可是後來出現了,因此也就有了下面的問題,你們都知道,共享上網就是不少臺電腦共享一個公網IP去使用internet,再打個比喻吧,某個局域網共享210.33.25.1這個公網IP上網,當一個內網用戶192.168.0.100去訪問外網的FTP服務器時,若是採用主動模式的話,192.168.0.1告訴了FTP服務器我須要某個文件和我打開了x端口以後,因爲共享上網的緣由,192.168.0.1在出網關的時候本身的IP地址已經被翻譯成了210.33.25.1這個公網IP,因此服務器端收到的消息也就是210.33.25.1須要某個文件並打開了x端口,FTP服務器就會往210.33.25.1的x端口傳數據,這樣固然會鏈接不成功了,由於打開x端口的並非210.33.25.1這個地址,在這種狀況下被動模式就有用了,相信你們已經可以理解被動模式是怎麼個鏈接法了吧。日誌

  好了,說了這麼多,如今能夠回到第一個問題了。orm

  在主動模式中,FTP的兩個端口是相對固定的,若是命令端口是x的話,那數據端口就是x-1,也就是說默認狀況下,命令端口是21,數據端口就是20;你把命令端口改爲了600,那麼數據端口就是599。這樣使用防火牆就很方便了,只要開通這兩個端口就能夠了,可是若是客戶端是共享上網的話那豈不是不能正常使用FTP了,這樣仍是不行,必定須要被動模式。it

  在被動模式中就麻煩了些,默認狀況下命令端口是21,可是數據端口是隨機的,這個問題又讓我頭痛了一下,還好,我又找到了辦法,由於被動模式中數據端口的範圍是能夠自定義的,在此我以Serv-U 6.1.0.5版爲例,在/Local Server/Settings/Advanced/中,這下好了,我把被動模式中的端口範圍也設置爲20-20,那麼無論客戶端使用何種模式來訪問個人FTP,都只須要開通這兩個端口了,再加上SQL Server的1433,一臺服務器總共纔開了3個端口,這下應該比較安全了,裝上防火牆,收工…dva

相關文章
相關標籤/搜索