linux上ftp服務設置

該文件集合了好幾篇文章的精華,主要的鏈接爲:

http://blog.csdn.net/kenkywu/article/details/7166185

http://www.cnblogs.com/yongcode/p/4864474.html

http://www.linuxidc.com/Linux/2014-11/109464.htm


一、簡介




二、服務端設置

1.安裝vsftpd軟件

yum install vsftpd -y

2.開啓匿名訪問和被動模式端口

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES              --開啓匿名用戶訪問

anon_upload_enable=YES              --匿名用戶名可以上傳文件

anon_mkdir_write_enable=YES        --匿名用戶可以創建文件
anon_other_write_enable=YES        --匿名用戶可以重命名文件

 

pasv_enable=YES                        --開啓被動模式
pasv_min_port=30000                    --被動模式最小端口
pasv_max_port=31000                  --被動模式最大端口

3.加載ftp模塊

vim /etc/modprobe.d/vsftpd.conf

alias ip_conntrack ip_conntrack_ftp ip_nat_ftp    --加載ftp模塊

vim /etc/rc.local

/sbin/modprobe ip_conntract                --開機加載模塊
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp

4.端口過濾

vim /etc/sysconfig/iptables

-A INPUT -p tcp -m multiport --dport 20,21  -m state --state NEW -j ACCEPT  --開啓20,21端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT            --開啓21主動端口
-A INPUT -p tcp --dport 30000:31000 -j ACCEPT            --開啓被動端口

5.重啓服務

service vsftpd restart


三、客戶端配置

1.安裝ftp包

2. ftp XX.XX.XX.XX


四、常見問題

1. 

今天從公網的服務器連接本地內網的FTP server copy文件時,系統老是提示227 Entering Passive Mode (xxx,xxx,,xxx,xxx,x),很是奇怪,於是上網找資料仔細研究了一下,原來FTP有兩種工作模式,PORT方式和PASV方式,中文意思爲主動式和被動式 ,詳細介紹如下:

       主動 FTP :
命令連接:客戶端 >1024 端口 → 服務器 21 端口
數據連接:客戶端 >1024 端口 ← 服務器 20 端口

  被動 FTP :
命令連接:客戶端 >1024 端口 → 服務器 21 端口
數據連接:客戶端 >1024 端口 ← 服務器 >1024 端口

PORT(主動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時, 客戶端在命令鏈路上用PORT命令告訴服務器:“我打開了***X端口,你過來連接我”。於是服務器從20端口向客戶端的***X端口發送連接請求,建立 一條數據鏈路來傳送數據。  

PASV(被動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時, 服務器在命令鏈路上用PASV命令告訴客戶端:“我打開了***X端口,你過來連接我”。於是客戶端向服務器的***X端口發送連接請求,建立一條數據鏈 路來傳送數據。

由於我的本地FTP服務器在內網,只是從外網映射了兩個端口(20,21),所以無法使用PASV方式,解決此問題的辦法也很簡單,關閉客戶端的PASV方式,強制其用PORT方式訪問服務器,登錄FTP服務器後用passive命令關閉客戶端的PASV方式,如下:

ftp> passive
Passive mode off.

ftp> passive (再次運行命令可打開)

Passive mode on.


2.ftp下:get 123.cap

 報:200 PORT command successful. Consider using PASV.
         550 Failed to open file.

該問題爲123.cap的權限不夠,使用chmode  a+r+w 123.cap 試試


3.報: 500 OOPS: cannot change directory

解決方法:

在終端輸入命令:

  1. setsebool -P ftpd_disable_trans 1
  2. service vsftpd restart
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章