小生接觸 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
系統顯示如下信息:Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
思考:小生將本段信息進行了顏色標記,從中可以看出,如果想讓一個進程開機自啟動,使用 systemctl enable XXXX.service 命令就是
讓這個程序自己的啟動配置創建一個鏈接到系統的啟動配置文件下,系統開機的時候就能運行 /usr/lib/systemd/system/ 文件下的配置文件對應的程序。
有時間可以去那里窺探一下研究一下。
四、配置文件
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 檢測是否成功鏈接
4.3.1 先在 linux 系統上進行檢測:[root@localhost ~]# ftp localhost(本主機名稱)
出現提示登錄用戶名,小生使用匿名用戶登錄 anonymous(密碼未設置,所以為空),輸入 ls 命令可顯示信息,效果如圖:
4.3.2 使用 windows ping 一下 linux 服務器,檢查是否能聯網
從下圖可以看出,windows 能與 linux 網絡聯通,當可以正常聯通網絡再進行 ftp 鏈接測試,
也可使用 root 帳號進行登錄,root 帳號登錄之后可以操作系統內任意文件。以下章節列出可以鏈接之后通過 ftp 軟件鏈接后出現的一些常見問題解決方案。
4.4 常見 ftp 鏈接問題
鏈接 ftp 的時候如果出現無法訪問目錄列表問題:
查看ftp的Selinux狀態:
[root@localhost ~]# sestatus -b | grep ftp
將狀態改為on:
[root@localhost ~]# setsebool -P tftp_home_dir on (注意:P為大寫)
[root@localhost ~]# setsebool -P ftpd_full_access on (注意:P為大寫)
創作不易,感謝打賞關注。