前言
在開發時免不了會使用到虛擬機的可能性,而在虛擬機與主機之間做檔案轉移時總會遇到奇奇怪怪的問題,先不論是否是虛擬機的問題,但總是會再這無關緊要的問題上浪費掉許多寶貴時間,因此研究如何架設 FTP,讓主機直接上傳檔案到 FTP 伺服器,再從虛擬機中下載,避免檔案轉移遇到的麻煩!
環境
- CentOS 7.9
安裝 vsftpd
1 | [user@localhost ~]$ sudo yum install -y vsftpd |
修改設定檔 (/etc/vsftpd/vsftpd.conf
),因為目標只是要讓 VM 可以讀取我們 Host 想傳的檔案,因此只需要將 FTP server 掛在區域網路內,這樣匿名登入是可以接受的
1 | # 修改以下設定值 |
啟用 vsftpd
1 | [user@localhost ~]$ sudo systemctl enable vsftpd |
設定防火牆
在 CentOS 中幾乎所有的 Port 預設對外服務都是關閉的,無法由外部連入,因此需要另外設定才能開放給其他主機連線,FTP 有兩種 Port 需要設定
1 | [user@localhost ~]$ sudo firewall-cmd --permanent --add-port=21/tcp # Command Port |
設定 SELinux
1 | [user@localhost ~]$ sudo setsebool -P ftpd_connect_all_unreserved=1 # 設定這個才能使用 ls/dir 指令,否則出現 425 錯誤 |
創建目錄
以 anonymous
登入後是以 ftp 角色進行操作的,因此需另外創建匿名使用者可以上傳與下載檔案的目錄
1 | [user@localhost ~]$ sudo mkdir /var/ftp/upload_anonymous |
完成
至此萬事俱全,可以開始使用 ftp 了,匿名使用者被限制只能在 upload_anonymous
目錄中上傳或下載檔案!