vsftpd是什么?
答:ftp(File Transfer Protocol)文件傳輸協議。(實現不同操作系統之間文件的傳輸)
vsftpd是一個基于ftp協議的文件傳輸服務器軟件。
問題2:vsftpd作用是什么?
答:傳輸文件。(跨平臺、跨操作系統)
問題3:如何使用?
答:服務端:在linux安裝vsftpd軟件,開啟服務。
客戶端:通過FtpClient客戶端建立和服務器的連接,向服務器發送請求。
(1)在Linux上安裝vsftpd服務。
(2)根據圖片的地址訪問圖片。(最終保存到數據庫的是圖片的路徑)
(3)web工程中實現圖片上傳。
思路:(1)安裝軟件
(2)測試服務是否可用
第一步:安裝vsftpd軟件
[root@node0719 ~]# yum -y install vsftpd
[第二步:關閉匿名訪問
修改vsftpd配置文件 ??vim /etc/vsftpd/vsftpd.conf
第三步:添加一個FTP用戶
創建一個用戶,專門用來訪問vsftpd服務。
[root@node0719 ~]# useradd ftpuser
[root@node0719 ~]# passwd ftpuser
第四步:設置防火墻
vsftpd服務默認端口號為21,修改防火墻,開放此端口,重啟防火墻。
[root@node0719 ~]# vim /etc/sysconfig/iptables
[root@node0719 ~]# service iptables restart
第五步:修改selinux(Linux安全內核系統)
(1)先查看selinux,默認是禁用了ftp訪問的。
[root@bogon ~]# getsebool -a | grep ftp ?
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
(2)修改selinux,開放ftp訪問權限
[root@bogon ~]# setsebool -P allow_ftpd_full_access on
[root@bogon ~]# setsebool -P ftp_home_dir on
第六步:啟動vsftpd服務
[root@node0719 vsftpd]# service vsftpd start
為vsftpd 啟動 vsftpd: ???????????????????????????????????[確定]
第七步:通過瀏覽器訪問測試
訪問地址:ftp://192.168.23.12:21,發現無法訪問。
原因:被動模式下,數據傳輸服務被防火墻攔截了。
(1)被動模式
第二次請求過程中,客戶端跟服務端建立數據通道;
服務端被動將數據響應給客戶端。
第二次請求數據傳輸,會隨機生成一個服務端口。被防火墻禁用。
(2)主動模式
服務端主動向客戶端發送數據,會被客戶端的防火墻禁掉。
多數客戶端不支持主動模式,不安全。
第八步:配置被動模式
(1)編輯/etc/vsftpd/vsftpd.conf文件
[root@bogon ~]# vim /etc/vsftpd/vsftpd.conf
(2)添加防火墻范圍設置(在文件尾部添加即可):
pasv_min_port=30000
pasv_max_port=30999
(3)修改防火墻,開啟30000:30999之間所有的端口。
(4)重啟防火墻。
(5)重啟vsftpd服務
再次訪問瀏覽器,發現可以正常連接了。