基于linux系统的FTP搭建配置与测试

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mochou111/article/details/80911656

        FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件                                                                                               --来自百度百科   

 FTP是两个服务器之间的事情,所以必须两台服务器都搭配的有ftp服务,这里以一个服务器为例,另外一台也与之相同操作。

首先下载安装两个包,一个是vsftpd服务,一个是ftp客户端,都安装开启了才可以进行ftp接下来的步骤

 # yum -y install vsftpd
 # yum -y install ftp

一般ftp默认是不使用root用户的,但是有些环境下需要使用root用户,如果需要使用root,请修改下两个文件,把root给注释掉,不然会报错无法连接

# vim /etc/vsftpd/ftpusers
#Users that are not allowed to login via ftp
#root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
~
~
~

# vim /etc/vsftpd/user_list
#vsftpd userlist
#If userlist_deny=NO, only allow users in this file
#If userlist_deny=YES (default), never allow users in this file, and
#do not even prompt for a password.
#Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
#for users that are denied.
#root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

改完配置都要重启服务

接着打开vsftp服务

# chkconfig --level 35 vsftpd on --打开服务
# service vsftpd restart  --重启让改动生效
# chkconfig --list vsftpd --查看哪些打开

上面是CentOS6的配置,CentOS7与之不同,它是配置主文件然后再重启服务

# vim  /etc/vsftpd/vsftpd.conf

       anonymous_enable=NO 
     use_localtime=YES 
     local_enable=YES 
	chroot_local_user=YES
	chroot_list_enable=YES
	chroot_list_file=/etc/vsftpd/chroot_list
     allow_writeable_chroot=YES  --这个开启之后,需要在/etc/vsftpd/下面创立一个文件:chroot_list,输入内容root,这样root就可以使用了
     xferlog_enable=YES 
     local_umask=022 
 
# systemctl restart vsftpd.service --重启服务

OK,一切搭配完之后就可以进行测试了,ftp可以测试本身,也可以测试目标服务器

# ftp -inv ftp_ip
ftp>user ftp_user ftp_password

如果出现login successful!并且能进去该主机的文件夹里查看文件等,则证明ftp打通

下面是我写的一个简单测试ftp连通性的shell,可以参考下

flag=0
ftpIp=$1
ftpUser=$2
ftpPasswd=$3
function rmtFileIsExist(){

ret=`ftp -inv ${ftpIp}  <<!
user ${ftpUser} ${ftpPasswd}
quit
!`
echo "===测试:$ret"
str1=`echo ${ret}|grep "Login successful"`
##登陆失败为-1,登陆成功文件存在为1
if [[ ! ${str1} ]]; then
	flag=-1
fi
}
rmtFileIsExist

tips:如果出现无法连接,或者连接拒绝,root用户我们已经打开它,可以用root访问,所以剩下的一般都是防火墙的问题,可以关闭防火墙,service iptables stop 或者开放ftp的端口即可,防火墙具体设置请参考百度,一搜一大片


猜你喜欢

转载自blog.csdn.net/mochou111/article/details/80911656