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
[[email protected] ~]# yum install tftp
[[email protected] ~]# yum install vsftpd
[[email protected]
[[email protected] ~]# chkconfig tftp on
啟動vsftpd 服務
service vsftpd start
查看vsftpd 的啟動狀態
service vsftpd status
打開21和20端口
[[email protected] ~]# /sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT
[[email protected] ~]# /sbin/iptables -I INPUT -p tcp --dport 20 -j ACCEPT
[[email protected] ~]# /etc/rc.d/init.d/iptables save
添加ftp用戶
[[email protected] vsftpd]# useradd ftpuser
[[email protected] vsftpd]# passwd ftpuser
修改sftpd .conf配置文件
[[email protected] 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服務器的配置。如下
[[email protected] vsftpd]# cat ftpusers
# Users that are not allowed to login via ftp
root
…
[[email protected] vsftpd]#
重啟vstfpd 服務
[[email protected] 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的支持,所以訪問時都被阻止了。查看如下:
[[email protected] 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
[[email protected] vsftpd]#
只要把allow_ftpd_full_access --> off,ftp_home_dir --> off改為on就可以了。 #我這裏直接用setenforce 0
[[email protected] vsftpd]# setsebool ftp_home_dir 1
[[email protected] 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命令了
再次查看
[[email protected] 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
[[email protected] home]# mkdir upload
[[email protected] upload]# chmod -R 777 /home/upload 然後修改vsftp的配置文件vsftpd.conf文件
[[email protected] upload]# vi /etc/vsftpd/vsftpd.conf 在最後添加上 local_root=/home/upload 保存,然後重啟vsftpd服務器程序。
配置完成,就可以通過ftp上傳文件到/home/upload目錄下了。
linux(centos6)搭建ftp服務器