網卡NAT方式下虛擬機安裝FTP服務


在windows8下安裝Oracle VM VirtualBox虛擬機,虛擬機中安裝的CentOS操作系統,在CentOS中搭建LNMP環境,安裝vsftpd服務器,宿主機在phpStorm編程,將代碼FTP上傳到虛擬機,在宿主機瀏覽器輸入地址,訪問虛擬機中php代碼頁。虛擬機網絡使用橋接方式很方便,但是宿主機進入公司辦公網絡后,FTP出現問題,因此改用網絡采用NAT模式。NAT下虛擬機ip地址10.0.2.15。

安裝過程分為三步,

1,在CentOS安裝vsftpd服務器,配置好,再安裝ftp客戶端,可以利用ftp客戶端訪問vsftpd服務器;

2,在宿主機中通過網頁訪問虛擬機中ftp服務器;

3,在宿主機phpStorm配置ftp服務器,可以連接虛擬機中ftp服務器;將代碼上傳到虛擬機中ftp服務器;

 

1,在CentOS安裝vsftpd服務器,配置好,再安裝ftp客戶端,可以利用ftp客戶端訪問vsftpd服務器;

1.1,以管理員(root)身份執行以下命令,安裝FTP服務器端

yum install vsftpd

1.2,設置開機啟動vsftpd ftp服務

chkconfig vsftpd on

1.3,啟動vsftpd服務

service vsftpd start

1.4,安裝FTP客戶端

yum install ftp

1.5,為ftp添加用戶

/usr/sbin/adduser -d /opt/ftp1 -g ftp -s /sbin/nologin ftp1

1.6,為ftp1用戶設置密碼

passwd ftp1

輸入新密碼即可

1.7,測試vsftp是否安裝成功

ftp 10.0.2.15

用戶名

密碼

顯示成功,表示vsftpd安裝成功。(有時會出現錯誤,需要去vsftpd.conf禁用默認用戶登錄

vim /etc/vsftpd/vsftpd.conf

anonymous_enable = YES 修改為 anonymous_enable = NO

重啟vsftpd服務,service vsftpd restart

)。

2,在宿主機中通過網頁訪問虛擬機中ftp服務器;

由於虛擬機選用NAT網絡模式,虛擬機可以訪問宿主機,宿主機沒法訪問虛擬機,需要在NAT中配置接口轉換,ftp對應20,21兩個接口,需要NAT配置兩次,比如

127.0.0.10     2020         10.0.2.15   20
127.0.0.10     2021         10.0.2.15   21

在宿主機的瀏覽器輸入ftp://127.0.0.10:2021,會彈出輸入用戶名、密碼窗口,輸入后顯示錯誤。此時通過對ftp了解,知道ftp連接分為兩個過程:客戶端連接服務器的21端口,認證用戶是否合法,驗證通過之后;服務器端會將根目錄下數據通過20端口發送到客戶端。我們可以登陸進去,沒法顯示服務器端數據。說明20接口有問題。將ftp模式設定為PASV被動模式,設定新的接口。

2.1,在vsftpd.conf中將被動模式接口寫進去,

pasv_min_port=2017
pasv_max_port=2020

  注意等號左右不能有空格。

2.2,在FTP指令下,將模式設定為PASV。輸入passive,使POR和PASV模式切換。

2.3, 在NAT下調整接口

如圖所示,LNMP和SSH是配置網頁訪問虛擬機代碼,和ssh連接虛擬機的,此處暫且不考慮。

2.4, 在宿主機的瀏覽器輸入ftp://127.0.0.10:2021,會彈出輸入用戶名、密碼窗口,輸入后顯示根目錄內容;

3,在宿主機phpStorm配置ftp服務器,可以連接虛擬機中ftp服務器;將代碼上傳到虛擬機中ftp服務器

3.1,在phpStorm配置ftp,點擊advanced options選擇被動模式;

 

3.2,mapping需要配置下

3.3,測試ftp是否聯通,點擊Test FTP connection測試是否聯通,如果網頁聯通,此處基本會聯通的。
 
3.4,通過phpStorm將代碼上傳到虛擬機,
提示錯誤:
"[2015/9/23 1:41] Failed to transfer file 'F:\ftp1\blog\test.php': cant open output connection for file "ftp://www.lhycentos.com:2021/blog/test.php". Reason: "553 Could not create file.".",需要配置FTP配置文件。

 3.4.1,確保/opt/ftp1目錄對應ftp1用戶權限是755或777,如果不是修改;

 3.4.2,使用命令getsebool -a|grep ftp 查看ftpd_disable_trans ftp_home_dir allow_ftpd_full_access 是否為on。如果不是需要修改。

第一個修改setsebool ftpd_disable_trans 1,此時又會出錯,貌似找不到setsebool ftpd_disable_trans;直接修改setsebool   ftp_home_dir 1,只要ftp_home_dir修改成功,就不用管ftpd_disable_trans了。第三個修改setsebool   allow_ftpd_full_access 1。至此宿主機可以將代碼上傳到虛擬機了。但是這個修改只是臨時的,關閉虛擬機重啟后失效,每次開機都需要修改很麻煩,因此還有種方式直接關閉selinux,然后重啟即可。

(

vi /etc/selinux/config

 #SELINUX=enforcing     #注釋掉

#SELINUXTYPE=targeted  #注釋掉

SELINUX=disabled  #增加

:wq  #保存,關閉。

 shutdown -r now   #重啟系統

查看SELinux的狀態:

getenforce

)


免責聲明!

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



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