2012年1月22日 星期日

在virtualBox中的ubuntu10.04架設FTP-vsftp-解法

在ubuntu中架設FTP並不難
輸入

sudo apt-get install vsftpd

就行了
但是在/etc/vsftpd.conf中需要有些設定



這些設定可以很容易google得到
我也可以稍後補上設定方式
但最大問題就是virtualbox的port forwarding問題
ftp使用的port是20 及21兩個port
使用21來傳輸命令 傳輸資料使用20
但不一定都是使用20 port來傳輸資料
這要看使用的是主動還是被動模式
我想若是要在virtualbox裡啟用ftp
應該是要使用被動模式
但我把21 port forwarding至2111 port
fpt client可以連接但是無法取得List
我想是因為ftp client program不知道要使用哪個port來傳輸資料所致
這問題在耗了我整個下午google後還是沒有看到有效的解法



解決:

來說說被動模式吧,在client對port 21發出命令之後

server會選擇一個大於1024的port來當作data port 它會告訴client端要去這個port抓資料

這就是問題的徵點,server端會選擇哪個port並不知道

所以我們也不知道該把哪個port forwarding出去,總不能把所有大於1024的port都forwarding

因此最好的方式就是固定data port是哪一個,在/etc/vsftpd.conf中加入以下程式碼

pasv_enable=YES

pasv_min_port="想要固定的port" ex:9999

pasv_max_port="想要固定的port" ex:9999 要同pasv_min_port

這樣data port就被強制固定了

然後要記得restart vsftpd

因此我們只要在virtualBox中forwarding這個port出去就行了

一切就會海闊天空 這是我今天最大的收穫

ps. 更改vsftpd 根目錄 : 在/etc/vsftpd.conf 中加入 local_root="想要的路徑"

沒有留言:

張貼留言