對於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 服務器。真慘!