1.安裝vsftpd組件,安裝完後,有/etc/vsftpd/vsftpd.conf 文件,用來配置,還有新建了一個ftp用戶和ftp的組,指向home目錄爲/var/ftp,默認是nologin(不能登陸系統)linux
yum -y install vsftpd
能夠用下面命令查看用戶shell
cat /etc/passwd
默認ftp服務是沒有啓動的,用下面命令啓動centos
service vsftpd start
2.安裝ftp客戶端組件(用來驗證是否vsftpd)tcp
yum -y install ftp
執行命令嘗試登陸工具
ftp localhost
輸入用戶名ftp,密碼隨便(由於默認是容許匿名的)spa
登陸成功,就表明ftp服務可用了。rest
可是,外網是訪問不了的,因此還要繼續配置。orm
3.取消匿名登錄ip
vi /etc/vsftpd/vsftpd.conf
把第一行的 anonymous_enable=YES ,改成NOget
重啓
service vsftpd restart
4.新建一個用戶(ftpuser爲用戶名,隨便就能夠)
useradd ftpuser
修改密碼(輸入兩次)
passwd ftpuser
這樣一個用戶建完,能夠用這個登陸,記得用普通登陸不要用匿名了。登陸後默認的路徑爲 /home/ftpuser.
5.開放21端口
由於ftp默認的端口爲21,而centos默認是沒有開啓的,因此要修改iptables文件
vi /etc/sysconfig/iptables
在行上面有22 -j ACCEPT 下面另起一行輸入跟那行差很少的,只是把22換成21,而後:wq保存。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
還要運行下,重啓iptables
service iptables restart
外網是能夠訪問上去了,但是發現無法返回目錄,也上傳不了,由於selinux做怪了。
6.修改selinux
getsebool -a | grep ftp
執行上面命令,再返回的結果看到兩行都是off,表明,沒有開啓外網的訪問
.... allow_ftpd_full_access off .... .... ftp_home_dir off
只要把上面都變成on就行
執行
setsebool -P allow_ftpd_full_access 1 setsebool -P ftp_home_dir off 1
再重啓一下vsftpd
service vsftpd restart
這樣應該沒問題了(若是,仍是不行,看看是否是用了ftp客戶端工具用了passive模式訪問了,如提示Entering Passive mode,就表明是passive模式,默認是不行的,由於ftp passive模式被iptables擋住了,下面會講怎麼開啓,若是懶得開的話,就看看你客戶端ftp是否有port模式的選項,或者把passive模式的選項去掉。若是客戶端仍是不行,看看客戶端上的主機的電腦是否開了防火牆,關吧)
7.開啓passive模式
默認是開啓的,可是要指定一個端口範圍,打開vsftpd.conf文件,在後面加上
pasv_min_port=30000 pasv_max_port=30999
表示端口範圍爲30000~30999,這個能夠隨意改。
改完重啓一下vsftpd
因爲指定這段端口範圍,iptables也要相應的開啓這個範圍,因此像上面那樣打開iptables文件
也是在21上下面另起一行,更那行差很少,只是把21 改成30000:30999,而後:wq保存,重啓下iptables。這樣就搞定了。