怎樣通過FTP在Windows本地上傳文件到阿里雲ECS服務器(Linux系統,CentOs8)

這是一篇嘔心瀝血的踩坑記錄文,在下親測是成功的,由於網上太多假冒僞劣的教程,各位且看且珍惜。

  • 如何設置阿里雲ECS服務器FTP?

很多購買了阿里雲ECS雲服務器的萌新可能會很懵逼到底在哪裏獲取FTP的用戶名和密碼。網上很多文章都是答非所問,去阿里雲文檔區又找不到答案(我一直很想吐槽阿里雲的幫助文檔區到底是幹什麼用的,連個簡單靠譜的回答都找不到)。

閒話少說那麼,阿里雲ECS雲服務器到底要怎麼設置FTP用戶名和密碼?

答案是其實不需要設置。

別白費心機了,FTP用戶名和密碼就是你的雲服務器實例用戶名和密碼,換句話說,你是用什麼用戶名密碼在終端工具登錄遠程服務器的,就用什麼用戶名和密碼登錄FTP就行了,只不過一個端口是21,一個端口是22,端口不同罷了。哪天忘了怎麼登錄FTP,改一下ECS雲服務器的實例密碼就行了。如果沒有設置用戶名,基本可以拿root來登錄。

下面是重頭戲。

  • 怎樣通過命令行將Windows本地的文件上傳到Linux服務器?

我在Linux服務端安裝的是vsftpd,通過vsftpd來啓動FTP服務,網上很多說用rz命令來上傳文件,我還沒試過這個命令,暫不做評價。

這裏可以參考一下文章:https://cloud.tencent.com/document/product/213/42501

廢話不多說,接下來就是操作步驟:通過 rpm -qa | grep vsftpd 命令來查看是否有安裝vsftpd,如果沒有,可以用 yum -y install vsftpd 來安裝。另外,有可能需要安裝ftp和lftp(說實話,我已經不記得這兩個到底有沒有用,反正是已經裝了,保險起見,還是裝上吧,反正也不礙事),安裝命令和上面一樣;

  1. 安裝了vsftpd並不意味着就能馬上使用FTP傳輸,這裏可能會出現兩個問題:一是vsftpd啓動失敗;二是Windows訪問登錄FTP被拒絕,提示“530 Permission denied.”。下面來說說解決方案:
    1. 如果用 service vsftpd start 命令來啓動vsftp,則vsftpd啓動失敗,終端提示“Redirecting to /bin/systemctl start vsftpd.service”。原因在於這條命令只適用與CentOs7以前的系統版本,如果是使用CentOs7以後的版本則會報錯,需要使用 
      systemctl start vsftpd.service
      命令來啓動vsftpd。
    2. Windows登錄服務器FTP被拒絕。原因很簡單,那就是權限問題。在vdftpd的配置目錄 /etc/vsftpd/ 下,有兩個文件( user_list 和 ftpusers )共同管理着拒絕訪問和登錄FTP的用戶目錄,換句話說,Windows使用命令行登錄FTP被拒絕的原因就是你登錄FTP的用戶名被列入vsftpd的“黑名單”,被禁止訪問FTP了。唯一的解決辦法就是在“黑名單”裏把登錄的用戶名註釋掉,兩個文件內容如下,下面是因爲我是使用root來登錄FTP的,所以我註釋了root用戶名:
      ftpusers文件:
      
      # Users that are not allowed to login via ftp
      #root
      bin
      daemon
      adm
      lp
      sync
      shutdown
      halt
      mail
      news
      uucp
      operator
      games
      nobody
      
      ===============================================================================
      
      user_list文件:
      
      # vsftpd userlist
      # If userlist_deny=NO, only allow users in this file
      # If userlist_deny=YES (default), never allow users in this file, and
      # do not even prompt for a password.
      # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
      # for users that are denied.
      #root
      bin
      daemon
      adm
      lp
      sync
      shutdown
      halt
      mail
      news
      uucp
      operator
      games
      nobody
      

 

當你完成了上面兩步操作,就可以在Windows打開CMD來開始上傳文件到服務器了,步驟如下:

  1. 輸入命令行:
    ftp 你要訪問的服務器ip地址

    之後會要求輸入用戶名和密碼,輸入阿里雲服務器實例的用戶名和密碼就OK了,之後會提示“230 Login successful.”表示登錄成功。

  2. 輸入命令行

    put 你要上傳的文件的完整路徑 你要上傳的文件的目標目錄的完整路徑

    這裏所說的完整路徑是指包括文件名在內的路徑。比如,我想把Windows目錄D:\workspace\demo下的文件一個jar包demo.jar上傳到服務器的/home目錄,則需要這樣寫:

    put D:/workspace/demo/demo.jar /home/demo.jar

    兩個地方都要寫出文件名,如果寫成“put D:/workspace/demo/demo.jar /home/”,就會提示“553 Could not create file.”。

注意,要從Windows系統上傳文件到Linux服務器,不能在Linux服務器的終端上操作,必須在Windows的終端操作命令行,因爲Linux平臺是無法主動連接和識別Windows的目錄的,Linux是讀不出Windows的目錄的。

正確的做法是,在Linux平臺放開訪問權限,再在Windows平臺的終端連接和訪問Linux平臺。不要指望能在Linux平臺的終端上傳Windows的文件,門都沒有!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章