CentOS7 搭建FTP服務器


說明:本文是參考了 CSDN的博主:xiaocia 的文章《 CentOS7 搭建FTP服務器》進行親手操作驗證可行的。但是有一個不足之處就是:

linux系統重啟后,ftp就無法訪問呢了。我對此也提供了修正方法,具體請查看本文第七節

 

軟件環境:  +  CentOS7a明:我的環境安裝時CentOS最小化安裝,所有很多工具和軟件都是沒有默認安裝的

一:安裝FTP軟件包

1 :安裝軟件包:  yum install vsftpd -y

2:安裝完后,有/etc/vsftpd/vsftpd.conf文件,該文件是vsftp的配置文件。

 

 

二:專門新建一個FTP服務器的用戶

1:建立用戶:

命令:useradd ftpuser  新增一個用戶ftpuser

           passwd  ftpuser  為ftpuser設定密碼,期間會有兩次提示輸入密碼確認。

 

 

 三:為FTP服務器設置防火牆

 ftp默認端口是21,而centos默認是沒有開啟的,所以要修改iptables文件 

    vi /etc/sysconfig/iptables

 

-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT   最后:wq 保存

重啟防火牆:service iptables restart 

注意:會出現iptables.service文件不存在,由於Centos7默認是firewall作為防火牆,這里改為iptables防火牆

 

systemctl start firewalld.service       #啟動firewall
systemctl stop firewalld.service        #停止firewall
systemctl disable firewalld.service   #禁止firewall開機啟動

[root@bogon ~]# setsebool -P allow_ftpd_full_access on

[root@bogon ~]# setsebool -P ftp_home_dir on

最后安裝iptables防火牆
sudo yum install iptables-services 
設置防火牆開機啟動
sudo systemctl enable iptables

 

 

 

四、修改seliunx

注意:如果外網是可以訪問上去了,可是發現沒法返回目錄(使用ftp的主動模式,被動模式還是無法訪問),也上傳不了,因為selinux作怪了。

getsebool -a | grep ftp
會發現以下狀態都是關閉的

 

setsebool -P allow_ftpd_full_access on

setsebool -P ftp_home_dir on

執行上面命令,再返回的結果看到兩行都是off,代表,沒有開啟外網的訪問

會發現狀態已經是on了

 這樣應該沒問題了(如果,還是不行,看看是不是用了ftp客戶端工具用了passive模式訪問了,如提示Entering Passive mode,就代表是passive模式,默認是不行的,因為ftp passive模式被iptables擋住了,下面會講怎么開啟,如果懶得開的話,就看看你客戶端ftp是否有port模式的選項,或者把passive模式的選項去掉。如果客戶端還是不行,看看客戶端上的主機的電腦是否開了防火牆,關吧)

 

 

五、關閉匿名訪問

修改/etc/vsftpd/vsftpd.conf文件

vi /etc/vsftpd/vsftpd.conf

 

 

 

 重啟FTP服務:service vsftpd restart

 

六、開啟被動模式

默認是開啟的,但是要指定一個端口范圍,打開vsftpd.conf文件,在后面加上

pasv_min_port=30000

pasv_max_port=30999

表示端口范圍為30000~30999,這個可以隨意改。改完重啟一下vsftpd

由於指定這段端口范圍,iptables也要相應的開啟這個范圍,所以像上面那樣打開iptables文件。

也是在21上下面另起一行,更那行差不多,只是把21改為30000:30999,然后:wq保存,重啟下iptables。這樣就搞定了。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

修改前:

 

修改后:

 

-=======================================================================================================================================

修改 vsftpd   表示端口范圍為30000~30999。改完重啟一下

 

===============================================================================================================================================================================================================

ttp工具測試:因為ip 為 192.168.1.3 所以ftp的連接IP為此值

 

===========================================================

在linux下開啟FTP服務

1. 首先服務器要安裝ftp軟件,查看是否已經安裝ftp軟件下:
   #which vsftpd
   如果看到有vsftpd的目錄說明服務器已經安裝了ftp軟件


2. 查看ftp 服務器狀態     
   #service vsftpd status


3. 啟動ftp服務器     
   #service vsftpd start


4. 重啟ftp服務器 
   #service vsftpd restart


5. 查看服務有沒有啟動
   #netstat -an | grep 21
   tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN 
   如果看到以上信息,證明ftp服務已經開啟。


6.如果需要開啟root用戶的ftp權限要修改以下兩個文件
  #vi /etc/vsftpd.ftpusers中注釋掉root
  #vi /etc/vsftpd.user_list中也注釋掉root
  然后重新啟動ftp服務。
 
7. vsftpd 500 OOPS: cannot change directory
   登陸報錯:
   C:\>ftp 192.168.0.101
   Connected to 192.168.0.101.
   220 (vsFTPd 2.0.5)
   User (192.168.0.101:(none)): frank
   331 Please specify the password.
   Password:
   500 OOPS: cannot change directory:/home/frank
   Login failed.
   ftp> ls
   500 OOPS: child died
   Connection closed by remote host.
   解決方法:
   setsebool ftpd_disable_trans 1
   service vsftpd restart
   就OK了!
 
   這是SELinux的設置命令,在不熟悉SELnux前,把SELinux關掉也可以的。

 ======================================================================================================================

七:解決 linux系統重啟后 用ftp工具無法訪問的問題

處理方法1: 運行ntsysv命令,然后選擇上ftp的服務,下次重啟機器就會自動啟動ftp服務了。<注:此次借鑒百度問答>

具體操作步驟如下:

1:如下圖:輸入  ntsysv ,再按下回車鍵

2:如下圖,找到 ftp的服務,光標切換到ftp選項按下空格使其處於選中狀態在用 tab 按鈕 使其光標切換到 OK 鍵,敲下回車按鈕即可。

3:重啟linux系統:reboot ;等系統重啟完畢后,再次用ftp工具鏈接測試通過

 方法二:[root@localhost ~]# chkconfig vsftpd on   <注:該方法我沒有測試過。借鑒於:csdn:JAVA_DIRECTION>


免責聲明!

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



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