linux(centos6)搭建ftp服務器 -摘自網絡


前提

ssh服務已經開啟,關閉防火牆,主機和虛擬機能ping通

查看ssh和防火牆的狀態

service sshd status

service iptables status

開啟ssh服務

service sshd start

關閉防火牆

chkconfig iptables off

測試主機和虛擬機的連通性

ping 192.168.2.129

安裝並開啟tftp和vsftpd

[root@localhost ~]# yum install tftp

[root@localhost ~]# yum install vsftpd

[root@localhost ~]# chkconfig vsftpd on

[root@localhost ~]# chkconfig tftp on

啟動vsftpd 服務

service vsftpd start

查看vsftpd 的啟動狀態

service vsftpd status 

打開21和20端口

[root@localhost ~]# /sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT

[root@localhost ~]# /sbin/iptables -I INPUT -p tcp --dport 20 -j ACCEPT

[root@localhost ~]# /etc/rc.d/init.d/iptables save

添加ftp用戶

[root@localhost vsftpd]# useradd ftpuser

[root@localhost vsftpd]# passwd ftpuser

修改sftpd .conf配置文件

[root@localhost vsftpd]#vi /etc/vsftpd/vsftpd.conf

把第一行的 anonymous_enable=YES ,改為NO

注:

vsftpd的配置,配置文件中限定了vsftpd用戶連接控制配置。 vsftpd.ftpusers:位於/etc目錄下。它指定了哪些用戶賬戶不能訪問FTP服務器,例如root等。     vsftpd.user_list:位於/etc目錄下。該文件里的用戶賬戶在默認情況下也不能訪問FTP服務器,僅當vsftpd .conf配置文件里啟用userlist_enable=NO選項時才允許訪問。     vsftpd.conf:位於/etc/vsftpd目錄下。來自定義用戶登錄控制、用戶權限控制、超時設置、服務器功能選項、服務器性能選項、服務器響應消息等FTP服務器的配置。如下

[root@Mclass vsftpd]# cat ftpusers

# Users that are not allowed to login via ftp

root

[root@Mclass vsftpd]#

重啟vstfpd 服務

[root@localhost upload]# service vsftpd restart

windows cmd測試鏈接

C:\Users\Administrator>ftp 192.168.1.112

連接到 192.168.1.112。

220 (vsFTPd 2.2.2)

用戶(192.168.1.112:(none)): ftpuser

331 Please specify the password.

密碼:

500 OOPS: cannot change directory:/home/ftpuser

登錄失敗。

ftp> bye

可以看到報了個錯誤:500 OOPS: cannot change directory:/home/ftpuser。原因是CentOS系統安裝了SELinux,因為默認下是沒有開啟FTP的支持,所以訪問時都被阻止了。查看如下:

[root@localhost vsftpd]# getsebool -a | grep ftp

allow_ftpd_anon_write --> off

allow_ftpd_full_access --> off

allow_ftpd_use_cifs --> off

allow_ftpd_use_nfs --> off

ftp_home_dir --> off

ftpd_connect_db --> off

httpd_enable_ftp_server --> off

tftp_anon_write --> off

[root@localhost vsftpd]#

只要把allow_ftpd_full_access --> off,ftp_home_dir --> off改為on就可以了。

[root@localhost vsftpd]# setsebool ftp_home_dir 1

[root@localhost vsftpd]# setsebool allow_ftpd_full_access 1

開啟SELinux

如執行getsebool -a | grep ftp出現getsebool: SELinux is disabled的錯誤,需重新開啟selinux

vi /etc/selinux/config

更改為:SELINUX=enabled

必須重啟linux,不重啟是沒辦法立刻開啟selinux的

重啟完以后,就可以使用getsebool -a | grep ftp命令了

再次查看

[root@localhost vsftpd]# getsebool -a | grep ftp

allow_ftpd_anon_write --> off

allow_ftpd_full_access --> on

allow_ftpd_use_cifs --> off

allow_ftpd_use_nfs --> off

ftp_home_dir --> on

ftpd_connect_db --> off

httpd_enable_ftp_server --> off

tftp_anon_write --> off

 

再次測試連接

C:\Users\Administrator>ftp 192.168.1.112

連接到 192.168.1.112。

220 (vsFTPd 2.2.2)

用戶(192.168.1.112:(none)): ftpuser

331 Please specify the password.

密碼:

230 Login successful.

ftp> ls

200 PORT command successful. Consider using PASV.

150 Here comes the directory listing.

226 Directory send OK.

ftp> bye

221 Goodbye.

Ok,配置成功,可以用flashxftp來進行上傳文件了。

Flashxftp上傳文件

首先在/home的目錄中創建一個目錄,然后設置權限為777    [root@localhost home]# mkdir upload

[root@localhost upload]# chmod -R 777 /home/upload    然后修改vsftp的配置文件vsftpd.conf文件

[root@localhost upload]# vi /etc/vsftpd/vsftpd.conf    在最后添加上     local_root=/home/upload     保存,然后重啟vsftpd服務器程序。

配置完成,就可以通過ftp上傳文件到/home/upload目錄下了。


免責聲明!

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



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