CentOS7 搭建FTP


對於linux,只在上個微信公眾號開發的時候,玩了CentOS6.5. 現在學習Docker技術,官方建議升級到7.2。於是乎只能搗鼓一下了。

花了一晚上的時間才真正把vsftpd安裝好,flashfxp 正常上傳下載文件。這中間碰到一些問題,順便記錄下。

首先,centos7.2 虛擬機安裝完后,要配置網絡。

nmcli connection show   --- 顯示當前網絡連接

cd /etc/sysconfig/network-scripts/   

ls

 

 vi ifcfg-ens33 --把ONBOOT 改為yes

然后重啟虛擬機,就可以上網了。

其次,安裝vsftpd

yum intall vsftpd --- 每次問答,都選y即可

配置防火牆,開通21端口。(注意,Centos7.2 使用firewalld代替了原來的iptables)

firewall-cmd --zone=public --add-port=21/tcp --permanent

firewall-cmd --reload   --- 讓防火牆設置生效

vi /etc/vsftpd/vsftpd.conf ,修改ftp根目錄local_root=/var/ftp/software(如果不指定,默認就是/home/系統用戶目錄)

systemctl start vsftpd --- 開啟Vsftpd 服務

這個時候,嘗試如果用FlashFXP 軟件 root 用戶登陸,報530錯誤。

百度了好久,發現

vi /etc/vsftpd/vsftpd.conf  將userlist_enable=YES改為NO,

vi /etc/vsftpd/ftpusers 刪除root,保存,重啟vsftpd

再systemctl  restart vsftpd  重啟vsftpd即可登陸

只是看不到目錄信息,也不能上傳文件。

又繼續百度半天,也沒找到相關資料。后來發現都是FlashFXP 執行PASV 指令出錯。想想是不是沒有開通PASV 端口。

於是又修改vsftpd.conf文件,先指定PASV 端口范圍

pasv_min_port=5000
pasv_max_port=6000

然后再修改防火牆,開通5000~6000端口

firewall-cmd --zone=public --add-port=5000-60000/tcp --permanent

重啟防火牆和vsftp后,總算能看到列表了。萬萬沒想到,上傳文件失敗,郁悶吧。

嘗試按照網上的把software 目錄權限改為777,還是一樣不能上傳。

嘗試把SELINUX 關閉(修改/etc/selinux/config文件中的SELINUX=”enforcing" 改為 disabled ),重啟后,更坑爹。這時候更加FlashFXP登陸不了。

恢復SELINUX,還是登陸不了。當時,那個心情郁悶啊。辛虧我留了一手,做了個快照,不然早急瘋了。

恢復快照后,繼續百度,照着度娘的某個帖子的意思,

setsebool allow_ftpd_full_access 1  -- 居然可以成功上傳了。

這下高興了,去樓下買瓶可樂喝了個夠。上來再看看文件夾是否可以上傳,奶奶的熊。這個時候居然報

vsftpd:refuse to run with writable root inside chroot()  錯誤。百思不得其解。剛剛還好好的啊

沒辦法,又去找度娘,后面查到,只要在vsftpd.conf 加上這句,就可以了

allow_writeable_chroot=YES

但是虛擬機重啟后,又不能ftp了,主要是 setsebool allow_ftpd_full_access 1 臨時設置的。需要

setsebool -P allow_ftpd_full_access 1 

最后, chkconfig vsftpd on 本想讓vsftpd 設置為開機自啟動,可是這條命令不起作用,誰知道告訴我下:) 

好了,花了一晚上。搭建個FTP 服務器。真慘!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM