轉載:http://blog.sina.com.cn/s/blog_165e646820102xe1q.htmlhtml
參考:
一、http://www.cnblogs.com/mrcln/p/6179673.html
二、http://www.cnblogs.com/orzlin/p/5600529.html
三、linux下ftp配置文件詳解:http://www.cnblogs.com/mrcln/p/6189665.html
linux
1.切換到root用戶vim
2.查看是否安裝vsftp,我這個是已經安裝的。centos
[root@localhost vsftpd]# rpm -qa |grep vsftpd vsftpd-3.0.2-11.el7_2.x86_64
3.若是沒有發現,則安裝。安全
yum install vsftpd* -y
4.啓動vsftpd服務,以及重啓命令(centos7.0以上版本)服務器
[root@localhost vsftpd]# /bin/systemctl start vsftpd.service [root@localhost vsftpd]# /bin/systemctl restart vsftpd.service
低版本試一下這些命令:tcp
/etc/init.d/vsftpd restart
啓動ftp命令 #service vsftpd start 中止ftp命令 #service vsftpd stop 重啓ftp命令 #service vsftpd restart
設置自啓:chkconfig vsftpd on工具
5.測試一下可否登陸FTP了,先安裝一個ftp客戶端組件。post
yum -y install ftp
嘗試登陸一下測試
ftp localhost
輸入用戶名ftp,密碼隨便(由於默認是容許匿名的)
登陸成功,就表明ftp服務可用了。
可是,外網是訪問不了的,因此還要繼續配置。
6.取消匿名登陸
vi /etc/vsftpd/vsftpd.conf
把第一行的 anonymous_enable=YES ,改成NO
重啓
[root@localhost vsftpd]# /bin/systemctl restart vsftpd.service
7.建立一個組,用於存放ftp用戶
groupadd ftpgroups
8.建立ftp用戶,並加入ftpgroups組,/home/ftp是本身建的目錄,不存在就本身建立一個
useradd -d /home/ftp/ftptest -g ftpgroups ftptest
設置密碼
passwd ftptest
設置不容許用於用戶登陸
usermod -s /sbin/nologin ftptest
能夠看到已經建好了
[root@localhost vsftpd]# ls /home/ftp ftpn ftptest
這時候重啓一下vsftpd服務
/bin/systemctl restart vsftpd.service
登陸一下看,能夠登陸了,可是發現也能訪問上層目錄,甚至根目錄,這不是咱們但願的,修改一下配置文件讓其只能訪問自身目錄
vi /etc/vsftpd/vsftpd.conf
以下設置
chroot_local_user=YES chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd/chroot_list
另外,從2.3.5以後,vsftpd加強了安全檢查,若是用戶被限定在了其主目錄下,則該用戶的主目錄不能再具備寫權限了!若是檢查發現還有寫權限,就會報該錯誤。
要修復這個錯誤,能夠用命令chmod a-w /home/user去除用戶主目錄的寫權限,注意把目錄替換成你本身的。或者你能夠在vsftpd的配置文件中增長下列項:
allow_writeable_chroot=YES
好了,這樣就只能訪問自身所屬目錄。
若是但願某個用戶能夠訪問根目錄,把用戶名加入
/etc/vsftpd/chroot_list
不存在就建立這個文件,一行一個用戶名。
若是仍是登錄不了ftp,那頗有多是selinux的問題,這個東西把他關掉就行
vi /etc/selinux/config
SELINUX=enforcing 設置成SELINUX=disabled
重啓一下服務器
reboot
重啓完了別忘了把vsftpd服務打開,默認是自啓的。
若是鏈接不上,極可能是防火牆阻止了,嘗試關閉防火牆
systemctl stop firewalld.service #中止firewall systemctl disable firewalld.service #禁止firewall開機啓動 firewall-cmd --state #查看默認防火牆狀態(關閉後顯示notrunning,開啓後顯示running)
若是出現遠程文件夾沒法顯示的狀況,請使用主動模式鏈接,在你的ftp工具上設置。
一、登陸服務器,打開vsftp.conf文件
# vim /etc/vsftpd/vsftpd.conf
二、在文件末尾增長listen_port=8021
#remote_charset=CP1251 # # Enable this options if you have double "я" # #double_377=0 listen_port=8021
三、打開/etc/services文件
# vim /etc/services
四、找到ftp選項並將21修改爲你設置的端口,本文爲8021
# 21 is registered to ftp, but also used by fsp ftp 8021/tcp ftp 8021/udp fsp fspd
五、重啓vsftp服務
# /etc/init.d/vsftpd restart
六、使用netstat -utlpn | grep vsftp命令查看設置的端口,確認是否成功
# netstat -utlpn | grep vsftp tcp 0 0 0.0.0.0:8021 0.0.0.0:* LISTEN 23619/vsftpd
注:實驗須要修改端口號,關閉selinux ,實現ftp訪問。