linux(centos6)搭建ftp服务器 -摘自网络 前提 安装并开启tftp和vsftpd 打开21和20端口 添加ftp用户 修改sftpd .conf配置文件 重启vstfpd 服务 windows cmd测试链接 开启SELinux Flashxftp上传文件
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:UsersAdministrator>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:UsersAdministrator>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目录下了。