小生接觸 Linux 系統時間不長,想解決linux系統ftp安裝及部署問題,折騰了大半天,終於弄出來了,將各路高手的配置方法綜合了一下,如有不對之處,歡迎各位看客指正,感謝! 一、聲明: 本文采用操作系統版本: Centos 7 Linux系統 版本源:CentOS-7-x86_64-DVD-17 ...
小生接觸 Linux 系統時間不長,想解決linux系統ftp安裝及部署問題,折騰了大半天,終於弄出來了,將各路
高手的配置方法綜合了一下,如有不對之處,歡迎各位看客指正,感謝!
一、聲明:
本文采用操作系統版本: Centos 7 Linux系統
版本源:CentOS-7-x86_64-DVD-1708.iso
官網下載地址:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso
安裝包選擇:最小安裝包
用戶無,只有root用戶。
二、安裝 vsftpd
2.1 檢測系統是否已安裝 vsftpd
方法一:[root@localhost ~]# rpm -q vsftpd
方法二:[root@localhost ~]# vsftpd -v
2.2 安裝 vsftpd:
[root@localhost ~]# yum -y install vsftpd
2.3 查看 vsftpd 安裝位置:
[root@localhost ~]# whereis vsftpd
三、啟動 vsftpd
啟動:[root@localhost ~]# systemctl start vsftpd.service
設置開機自啟: [root@localhost ~]# systemctl enable vsftpd.service
四、配置文件
4.1 配置文件 /etc/vsftpd/vsftpd.conf
anonymous_enable=NO # 不允許匿名訪問,禁用匿名登錄
chroot_local_user=YES # 啟用限定用戶在其主目錄下
use_localtime=YES # 使用本地時(自行添加)
chroot_list_enable=YES
local_enable=YES # 允許使用本地帳戶進行FTP用戶登錄驗證
allow_writeable_chroot=YES # 如果啟用了限定用戶在其主目錄下需要添加這個配置,解決報錯 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
xferlog_enable=YES # 啟用上傳和下載的日誌功能,預設開啟。
local_umask=022 # 設置本地用戶預設文件掩碼022
# FTP上本地的文件許可權,預設是077,不過vsftpd安裝後的配置文件里預設是022
- 註意:vsftpd 配置文件如果修改,需要重新啟動 vsftpd :systemctl restart vsftpd.service
4.2 防火牆設置
使用 dos 視窗進行 ping linux i地址
如果成功會出現:ftp鏈接成功的信息,一般第一次配置的情況下,系統的防火牆是開啟的,因此需要關閉防火牆或者設置防火牆的配置
查看防火牆狀態:
[root@localhost ~]# systemctl status firewalld.service
一般情況下,如果外部無法鏈接 vsftp ,排除網路的問題,很有可能是防火牆在作祟。
開啟防火牆:
[root@localhost ~]# systemctl start firewalld.service
關閉防火牆:
[root@localhost ~]# systemctl stop firewalld.service
重啟防火牆:
[root@localhost ~]# systemctl restart firewalld.service
禁止開機啟動:
[root@localhost ~]# systemctl disable firewalld.service
開啟開機啟動:
[root@localhost ~]# systemctl enable firewalld.service
說明:如果你不願意關閉防火牆,需要防火牆添加FTP服務。
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
4.3 常見 ftp 鏈接問題
鏈接ftp的時候如果出現無法訪問目錄列表問題:
查看ftp的Selinux狀態:
[root@localhost ~]# sestatus -b | grep ftp
將狀態改為on:
[root@localhost ~]# setsebool -P rftp_home_dir on (註意:P為大寫)
[root@localhost ~]# setsebool -P ftpd_full_access on (註意:P為大寫)