日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

在Linux實例中搭建FTP服務器

vsftpd(very secure FTP daemon)是一個廣泛使用的、開源的FTP服務器軟件,以其高性能、高安全性和穩定性著稱,支持多種FTP相關協議,包括FTP、SFTP(通過SSH)、TLS/SSL加密的FTP等。本文介紹如何在Linux系統的ECS實例上安裝并配置vsftpd。

準備資源

已創建一臺基礎ECS實例,并滿足以下配置。如果您還未創建,請參見自定義購買實例

  • 操作系統:Alibaba Cloud Linux、CentOS 7.x 64位、CentOS 8.x 64位、Ubuntu

  • IP地址:實例已分配公網IP地址或綁定彈性公網IP(EIP)。具體操作,請參見綁定和解綁彈性公網IP

  • 安全組:入方向放行80、22、443端口。具體操作,請參見添加安全組規則

操作步驟

步驟一:安裝vsftpd

  1. 遠程連接Linux實例。

  2. 運行以下命令,安裝vsftpd。

    Alibaba Cloud Linux/CentOS 7.x/CentOS 8.x

    重要

    CentOS 8操作系統版本結束了生命周期(EOL),按照社區規則,CentOS 8的源地址http://mirror.centos.org/centos/8/內容已移除,您在阿里云上繼續使用默認配置的CentOS 8的源會發生報錯。如果您需要使用CentOS 8系統中的一些安裝包,則需要手動切換源地址。具體操作,請參見CentOS 8 EOL如何切換源?

    sudo yum install -y vsftpd

    Ubuntu

    sudo apt update
    sudo apt install -y vsftpd

    出現類似如下圖所示界面時,表示vsftpd安裝成功。

    說明

    不同系統所安裝的vsftpd版本有所不同,以實際界面顯示為準。

    install_vsftp_successfully

  3. 運行以下命令,啟動FTP服務,并設置開機自啟動。

    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd
    說明

    執行該命令時如果提示錯誤信息Job for vsftpd.service failed because the control process exited with error code,請排查是否存在下述問題。

    • 網絡環境不支持IPv6時,在/etc/vsftpd/vsftpd.conf配置文件中,將listen_ipv6=YES修改為listen_ipv6=NO

    • MAC地址不匹配時,運行ifconfig命令查看MAC地址,并在/etc/sysconfig/network-scripts/ifcfg-xxx配置文件中新增或修改HWADDR=<MAC地址>

  4. 運行以下命令,查看FTP服務監聽的端口。

    sudo netstat -antup | grep ftp

    出現如下圖所示界面,表示FTP服務已啟動,監聽的端口號為21。

    此時,vsftpd默認已開啟匿名訪問功能,您無需輸入用戶名密碼即可登錄FTP服務器,但沒有修改或上傳文件的權限。install_vsftpd_3

步驟二:配置vsftpd

  1. 創建一個Linux用戶并設置密碼。

    FTP支持以下三種認證模式:

    • 匿名用戶模式:任何人無需密碼驗證就可以直接登錄到FTP服務器。這種模式最不安全,一般只用來保存不重要的公開文件,不推薦在生產環境中使用。

    • 本地用戶模式:通過Linux系統本地賬號進行驗證的模式,相較于匿名用戶模式更安全。

    • 虛擬用戶模式:FTP服務器的專有用戶。虛擬用戶只能訪問Linux系統為其提供的FTP服務,而不能訪問Linux系統的其他資源,進一步增強了FTP服務器的安全性。

    本文介紹為FTP服務創建一個Linux系統本地賬號。

    Alibaba Cloud Linux/CentOS 7.x/CentOS 8.x

    1. 運行以下命令,為FTP服務創建一個Linux用戶。

      本示例中,該用戶名為ftptest

      sudo adduser ftptest
    2. 運行以下命令,修改ftptest用戶的密碼。

      sudo passwd ftptest

      運行命令后,根據命令行提示完成FTP用戶的密碼修改。

      image

    Ubuntu

    運行以下命令,為FTP服務創建一個Linux用戶。

    本示例中,該用戶名為ftptest

    sudo adduser ftptest

    根據提示輸入密碼,并完成二次確認。

    image

  2. 運行以下命令,創建一個供FTP服務使用的文件目錄。

    sudo mkdir -p /var/ftp/test
  3. 運行以下命令,創建測試文件。

    該測試文件用于FTP客戶端訪問FTP服務器時使用。

    sudo touch /var/ftp/test/testfile.txt
  4. 運行以下命令,更改/var/ftp/test目錄的擁有者為ftptest

    sudo chown -R ftptest:ftptest /var/ftp/test
  5. 修改vsftpd.conf配置文件。

    1. 運行以下命令,打開vsftpd的配置文件。

      Alibaba Cloud Linux/CentOS 7.x/CentOS 8.x

      sudo vim /etc/vsftpd/vsftpd.conf

      Ubuntu

      sudo vim /etc/vsftpd.conf
    2. i進入編輯模式。

    3. 配置FTP服務器工作模式。

      FTP服務器支持以下兩種工作模式:

      • 主動模式(Active Mode):客戶端向FTP服務器發送端口信息,由服務器主動連接該端口。

      • 被動模式(Passive Mode):FTP服務器開啟并發送端口信息給客戶端,由客戶端連接該端口,服務器被動接受連接。

      說明

      大多數FTP客戶端都在局域網中,沒有獨立的公網IP地址,且有防火墻阻攔,主動模式下FTP服務器成功連接到客戶端比較困難。因此,如無特殊需求,建議您將FTP服務器配置為被動模式。

      本文介紹配置FTP服務器為被動模式。具體的配置參數說明如下,除下面提及的參數外,其他參數保持默認值即可。

      重要

      修改和添加配置文件內的信息時,請注意格式問題。例如,添加多余的空格會造成無法重啟服務的結果。

      修改下列參數的值:

      #禁止匿名登錄FTP服務器。
      anonymous_enable=NO
      #允許本地用戶登錄FTP服務器。
      local_enable=YES
      #監聽IPv4 sockets。
      listen=YES

      在行首添加#注釋掉以下參數,關閉監聽IPv6 sockets:

      #listen_ipv6=YES

      在配置文件的末尾添加下列參數,其中pasv_address需修改為FTP服務器的公網IP地址。

      Alibaba Cloud Linux/CentOS 7.x/CentOS 8.x

      #設置本地用戶登錄后所在目錄。
      local_root=/var/ftp/test
      #全部用戶被限制在主目錄。
      chroot_local_user=YES
      #啟用例外用戶名單。
      chroot_list_enable=YES
      #指定例外用戶列表文件,列表中用戶不被鎖定在主目錄。
      chroot_list_file=/etc/vsftpd/chroot_list
      #開啟被動模式。
      pasv_enable=YES
      allow_writeable_chroot=YES
      #本教程中為Linux實例的公網IP。
      pasv_address=<FTP服務器公網IP地址>
      #設置被動模式下,建立數據傳輸可使用的端口范圍的最小值。
      #建議您把端口范圍設置在一段比較高的范圍內,例如50000~50010,有助于提高訪問FTP服務器的安全性。
      pasv_min_port=50000
      #設置被動模式下,建立數據傳輸可使用的端口范圍的最大值。
      pasv_max_port=50010

      Ubuntu

      #設置本地用戶登錄后所在目錄。
      local_root=/var/ftp/test
      #全部用戶被限制在主目錄。
      chroot_local_user=YES
      #啟用例外用戶名單。
      chroot_list_enable=YES
      #指定例外用戶列表文件,列表中用戶不被鎖定在主目錄。
      chroot_list_file=/etc/vsftpd.chroot_list
      #開啟被動模式。
      pasv_enable=YES
      allow_writeable_chroot=YES
      #本教程中為Linux實例的公網IP。
      pasv_address=<FTP服務器公網IP地址>
      #設置被動模式下,建立數據傳輸可使用的端口范圍的最小值。
      #建議您把端口范圍設置在一段比較高的范圍內,例如50000~50010,有助于提高訪問FTP服務器的安全性。
      pasv_min_port=50000
      #設置被動模式下,建立數據傳輸可使用的端口范圍的最大值。
      pasv_max_port=50010

      更多參數的詳細信息,請參見vsftp配置文件及參數說明

    4. Esc鍵,輸入:wq,按Enter鍵關閉并保存配置文件。

  6. 創建chroot_list文件,并在文件中寫入例外用戶名單。

    1. 運行以下命令,創建chroot_list文件。

      • Alibaba Cloud Linux/CentOS 7.x/CentOS 8.x

        sudo vim /etc/vsftpd/chroot_list
      • Ubuntu

        sudo vim /etc/vsftpd.chroot_list
    2. i進入編輯模式。

    3. 輸入例外用戶名單。此名單中的用戶不會被鎖定在主目錄,可以訪問其他目錄。

    4. Esc鍵,輸入:wq,按Enter鍵關閉并保存配置文件。

    重要

    沒有例外用戶時,也必須創建chroot_list文件,內容可為空。

  7. 運行以下命令,重啟vsftpd服務。

    sudo systemctl restart vsftpd

步驟三:設置安全組

搭建好FTP站點后,在實例安全組的入方向添加規則并放行下列FTP端口。具體操作,請參見添加安全組規則

說明

大多數客戶端位于局域網中,IP地址是經過轉換的,因此ipconfigifconfig命令返回的IP不一定是客戶端的真實公網IP地址。若后續客戶端無法登錄FTP服務器,請重新確認其公網IP地址。

被動模式需開放21端口,以及/etc/vsftpd/vsftpd.conf配置文件中參數pasv_min_portpasv_max_port之間的所有端口。配置詳情如下表所示。

規則方向

授權策略

協議類型

端口范圍

授權對象

入方向

允許

自定義TCP

21/21

所有要訪問FTP服務器的客戶端公網IP地址,多個地址之間用逗號隔開。

允許所有客戶端訪問時,授權對象為0.0.0.0/0。

入方向

允許

自定義TCP

pasv_min_port/pasv_max_port。例如:50000/50010

所有要訪問FTP服務器的客戶端公網IP地址,多個地址之間用逗號隔開。

允許所有客戶端訪問時,授權對象為0.0.0.0/0。

步驟四:測試搭建的FTP服務器

FTP客戶端、Windows命令行工具或瀏覽器均可用來測試FTP服務器。本文以Windows Server 2012 R2 64位系統的本地主機作為FTP客戶端,介紹FTP服務器的訪問步驟。

  1. 在本地主機,打開這臺電腦

  2. 在地址欄中輸入ftp://<FTP服務器公網IP地址>:<FTP端口>,本文中為Linux實例的公網IP地址。例如:ftp://121.43.XX.XX:21

  3. 在彈出的登錄身份對話框中,輸入已設置的FTP用戶名和密碼,然后單擊登錄

    登錄后,您可以查看到FTP服務器指定目錄下的文件,例如:測試文件testfile.txtftp client

vsftp配置文件及參數說明

/etc/vsftpd目錄下文件說明如下:

  • /etc/vsftpd/vsftpd.conf是vsftpd的核心配置文件。

  • /etc/vsftpd/ftpusers是黑名單文件,此文件中的用戶不允許訪問FTP服務器。

  • /etc/vsftpd/user_list是白名單文件,此文件中的用戶允許訪問FTP服務器。

vsftpd.conf配置文件參數說明如下:

  • 用戶登錄控制參數說明如下表所示。

    參數

    說明

    anonymous_enable=YES

    接受匿名用戶

    no_anon_password=YES

    匿名用戶login時不詢問口令

    anon_root=(none)

    匿名用戶主目錄

    local_enable=YES

    接受本地用戶

    local_root=(none)

    本地用戶主目錄

  • 用戶權限控制參數說明如下表所示。

    參數

    說明

    write_enable=YES

    可以上傳文件(全局控制)

    local_umask=022

    本地用戶上傳的文件權限

    file_open_mode=0666

    上傳文件的權限配合umask使用

    anon_upload_enable=NO

    匿名用戶可以上傳文件

    anon_mkdir_write_enable=NO

    匿名用戶可以建目錄

    anon_other_write_enable=NO

    匿名用戶修改刪除

    chown_username=lightwiter

    匿名上傳文件所屬用戶名

常見問題

  • 問題一:本地主機為Windows系統,為什么我無法下載FTP服務器中的文件?

    您需要根據以下操作步驟,開啟IE瀏覽器的下載權限。

    1. 在本地主機中打開IE瀏覽器。

    2. 在瀏覽器的右上角單擊IE圖標圖標,然后單擊Internet 選項

    3. Internet 選項對話框的頂部,單擊安全頁簽。

    4. 選擇一個區域以查看或更改安全設置區域,單擊Internet,然后在該區域的安全級別區域,單擊自定義級別IE選項

    5. 選擇下載 > 文件下載 > 啟用,然后單擊確定

    6. 單擊應用,然后單擊確定

  • 問題二:在Windows系統中,使用命令行工具、瀏覽器等方式連接FTP服務器報錯如何處理?

    您可以根據FTP的報錯信息手動排查問題。當您的報錯難以排查解決時,建議您使用第三方FTP客戶端連接工具。例如:FileZilla。下載地址為FileZilla官網。本示例介紹使用FileZilla連接匿名模式的FTP服務器。

    1. 配置vsftpd為匿名模式。

      1. 運行以下命令,修改配置文件/etc/vsftpd/vsftpd.conf

        如果您在安裝vsftpd時,使用的是apt install vsftpd安裝命令,則配置文件路徑為/etc/vsftpd.conf

        sudo vim /etc/vsftpd/vsftpd.conf
      2. i進入編輯模式。

      3. 將匿名上傳權限的注釋去掉,修改為anon_upload_enable=YES

      4. Esc退出編輯模式,然后輸入:wq并回車以保存并關閉文件。

        修改后的配置文件,如下圖所示。vsftpd配置文件

      5. 運行以下命令更改/var/ftp/pub目錄的權限,為FTP用戶添加寫權限。

        /var/ftp/pub為FTP服務默認的文件目錄。

        sudo chmod o+w /var/ftp/pub/
      6. 運行以下命令重新加載配置文件。

        sudo systemctl restart vsftpd
    2. 下載并安裝FileZilla。

    3. 通過FileZilla連接匿名模式的FTP服務器。

      1. 打開FileZilla客戶端。

      2. 在頂部菜單欄,選擇文件 > 站點管理器

      3. 站點管理器對話框的左下角,單擊新站點(N)

      4. 輸入新站點的名稱,并完成站點配置。

        說明

        以下界面為3.64.0版本的FileZilla,其他版本的FileZilla界面可能有所不同。

        filezilla具體的配置項說明如下:

        • 新站點名稱:您自定義的站點名稱。例如test-01

        • 協議:FTP-文件傳輸協議。

        • 主機:FTP服務器公網IP地址。本文中為Linux實例的公網IP地址,例如121.43.XX.XX

        • 端口:21。

        • 登錄類型:匿名。

          本示例中使用FTP客戶端連接匿名模式的FTP服務器。如果您需要使用FTP用戶密碼連接FTP服務器,則登錄類型需要設置為正常,并需要配置用戶和密碼信息。

      5. 單擊連接(C)

        連接成功后,您可以對文件進行上傳、下載和刪除等操作。FileZilla工具界面如下圖所示。filezilla圖中各區域的信息說明如下表所示。

        序號

        說明

        顯示命令、FTP連接狀態和任務執行結果。

        本地區域,顯示本地主機的目錄信息。

        遠程區域,顯示FTP服務器的目錄信息。匿名模式下,默認目錄為/pub

        記錄區域,可查看FTP任務的隊列信息和日志信息。

相關文檔

您也可以在Windows實例中搭建FTP站點,具體操作,請參見手動搭建FTP站點(Windows)