[vsftpd] CentOS 7 安裝 ftp 伺服器,不再為虛擬機不能直接傳檔案而困擾!
IT 產業在開發時一定會使用到虛擬機,而在虛擬機與主機之間做檔案轉移時總會遇到奇奇怪怪的問題,先不論是否是虛擬機的問題,但這無關緊要的問題浪費掉許多時間,因此研究如何架設 ftp ,讓主機直接上傳檔案到 ftp 伺服器,再從虛擬機中下載,避免檔案轉移遇到的麻煩!
(環境:CentOS 7.9, vsftpd 3.0.2)
- 安裝vsftpd
$ sudo yum install -y vsftpd
- 修改設定檔(/etc/vsftpd/vsftpd.conf),因為只是要讓 VM 可以讀取我們 Host 想傳的檔案,因此可將 ftp server 掛在區域網路內,這樣只需要匿名登入即可
#修改以下設定值 anonymous_enable=YES #允許匿名登入 local_enable=NO #不允許實體使用者登入 write_enable=YES #可寫入 #新增以下設定值 pasv_enable=YES #使用被動式連線,避免客戶端還需另外設定防火牆 pasv_min_port=60101 #被動式連線的 ftp-data port 設定為 60101~60110 pasv_max_port=60110 no_anon_password=YES #匿名使用者不用輸入密碼 anon_other_write_enable=YES #匿名使用者權限設定 anon_mkdir_write_enable=YES anon_upload_enable=YES anon_umask=022 #匿名使用者上傳的檔案的預設權限 #user與other需有r權限才可以被匿名使用者下載 #此設定值預設為077
- 啟用vsftpd
$ sudo systemctl enable vsftpd $ sudo systemctl start vsftpd
- 設定防火牆
$ sudo firewall-cmd --permanent --add-port=21/tcp #開啟指令的port $ sudo firewall-cmd --permanent --add-port=60101-60110/tcp #開啟被動式連線的port $ sudo firewall-cmd --reload
- 設定SELinux
$ sudo setsebool -P ftpd_connect_all_unreserved=1 #設定這個才能使用ls/dir指令,否則出現425錯誤 $ sudo setsebool -P ftpd_full_access=1 #設定這個才能上傳、修改檔名、刪除
- 創建匿名使用者可以上傳檔案的資料夾
$ sudo mkdir /var/ftp/upload_anonymous $ sudo chown ftp:ftp /var/ftp/upload_anonymous/ #anonymous登入後是以 ftp 角色進行操作的 #因此需改變資料夾擁有者
- 至此萬事俱全,可以開始使用,匿名使用者只能在「upload_anonymous」資料夾中上傳或下載檔案!
留言
張貼留言