1. 程式人生 > >【Linux】centos 7 linux系統預設ftp安裝配置和部署(詳細講解)

【Linux】centos 7 linux系統預設ftp安裝配置和部署(詳細講解)

小生接觸 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  

      方法一:[[email protected] ~]# rpm -q vsftpd       方法二:[[email protected] ~]# vsftpd -v   2.2 安裝 vsftpd:     [[email protected] ~]# yum -y install vsftpd   2.3 檢視 vsftpd 安裝位置:      [[email protected] ~]# whereis vsftpd

三、啟動 vsftpd

  啟動:[[email protected] ~]# systemctl start vsftpd.service   設定開機自啟: [

[email protected] ~]# 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 連結成功的資訊,一般第一次配置的情況下,系統的防火牆是開啟的,因此需要關閉防火牆或者設定防火牆的配置     檢視防火牆狀態:     [[email protected] ~]# systemctl status firewalld.service

    一般情況下,如果外部無法連結 vsftp ,排除網路的問題,很有可能是防火牆在作祟。

    開啟防火牆:     [[email protected] ~]# systemctl start firewalld.service     關閉防火牆:     [[email protected] ~]# systemctl stop firewalld.service     重啟防火牆:     [[email protected] ~]# systemctl restart firewalld.service     禁止開機啟動:     [[email protected] ~]# systemctl disable firewalld.service     開啟開機啟動:     [[email protected] ~]# systemctl enable firewalld.service     說明:如果你不願意關閉防火牆,需要防火牆新增FTP服務。     firewall-cmd --permanent --zone=public --add-service=ftp     firewall-cmd --reload

4.3 檢測是否成功連結

4.3.1 先在 linux 系統上進行檢測:[[email protected] ~]# ftp localhost(本主機名稱)

  出現提示登入使用者名稱,小生使用匿名使用者登入 anonymous(密碼未設定,所以為空),輸入 ls 命令可顯示資訊,效果如圖:

    

  4.3.2 使用 windows ping 一下 linux 伺服器,檢查是否能聯網

    從下圖可以看出,windows 能與 linux 網路聯通,當可以正常聯通網路再進行 ftp 連結測試,

    也可使用 root 帳號進行登入,root 帳號登入之後可以作業系統內任意檔案。以下章節列出可以連結之後通過 ftp 軟體連結後出現的一些常見問題解決方案。

    

4.4 常見 ftp 連結問題

  連結 ftp 的時候如果出現無法訪問目錄列表問題:   檢視ftp的Selinux狀態:   [[email protected] ~]# sestatus -b | grep ftp   將狀態改為on:   [[email protected] ~]# setsebool -P tftp_home_dir on (注意:P為大寫)   [[email protected] ~]# setsebool -P ftpd_full_access on  (注意:P為大寫)