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   
    方法一:[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為大寫) 

創作不易,感謝打賞關注。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM