一、简介Vsftp的两种工作模式:

(1) PORT(主动模式)

PORT中文称为主动模式,工作的原理: FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据,原理如下图:

windows10 ftp设置(服务器如何与Windows10系统共享文件)(1)

主动模式

(2) PASV(被动模式)

PASV是Passive的缩写,中文成为被动模式,工作原理:FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输,原理如下图:

windows10 ftp设置(服务器如何与Windows10系统共享文件)(2)

被动模式

总结:两种模式的比较

二、安装过程:

1.)简易安装

1.[root@hwg1227 /]# rpm -qa | grep vsftp 2.[root@hwg1227 /]# yum install vsftpd* -y 3.[root@hwg1227 /]# rpm -ql vsftpd 4.[root@hwg1227 /]# cd /etc/vsftpd 5.[root@hwg1227 vsftpd]# ll total 20 -rw-------. 1 root root 125 Mar 1 2013 ftpusers -rw-------. 1 root root 361 Mar 1 2013 user_list -rw-------. 1 root root 4599 Mar 1 2013 vsftpd.conf -rwxr--r--. 1 root root 338 Mar 1 2013 vsftpd_conf_migrate.sh 6.[root@hwg1227 vsftpd]# cp vsftpd.conf vsftpd.conf.bak 7.[root@hwg1227 vsftpd]# vi vsftpd.conf 8. [root@hwg1227 vsftpd]# cat vsftpd.conf.bak |grep -v ^# anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES

9.[root@hwg1227 vsftpd]# cat vsftpd.conf.bak |grep -v ^# >vsftpd.conf /将ftp配置文件过滤导入到vsftpd.conf下

10.[root@hwg1227 vsftpd]# vi vsftpd.conf 11.[root@hwg1227 vsftpd]# /etc/init.d/vsftpd start Starting vsftpd for vsftpd: [ OK ] 12.[root@hwg1227 vsftpd]# netstat -tnlp 13.[root@hwg1227 vsftpd]# netstat -tnlp | grep vsftpd 14.[root@hwg1227 vsftpd]# ps -ef |grep vsftpd /查看ftp进程 15.[root@hwg1227 vsftpd]# cd /var/ftp/pub /ftp的共享目录路径

16.在我的电脑输入ftp://192.168.0.26

windows10 ftp设置(服务器如何与Windows10系统共享文件)(3)

share

17.到此初步的FTP共享设置完成。

2.)VSFTP虚拟用户配置:

在home 目录下创建3个用户 hr admin it 并设置密码

1.[root@hwg1227 /]# cd /home 2.[root@hwg1227 home]# mkdir vsftpd 3.[root@hwg1227 home]#cd vsftpd 4.[root@hwg1227 vsftpd]# mkdir hr admin it 5.[root@hwg1227 vsftpd]# ll total 12 drwxr-xr-x. 2 root root 4096 Apr 16 21:23 admin drwxr-xr-x. 2 root root 4096 Apr 16 21:23 hr drwxr-xr-x. 2 root root 4096 Apr 16 21:23 it

6.在home目录下创建一个loguser.txt文件,然后再安装一个认证加密的软件pam db4

7.[root@hwg1227 home]# cat loguser.txt hr hr01 admin ad01 it it01 8.[root@hwg1227 home]# yum -y install pam* db4* 9.[root@hwg1227 home]# db_load -T -t hash -f /home/loguser.txt /etc/vsftpd/vsftpd_login.db /生成加密文件 10.[root@hwg1227 home]# ll /etc/vsftpd/ 总计 36 -rw------- 1 root root 125 2013-01-09 ftpusers -rw------- 1 root root 361 2013-01-09 user_list -rw------- 1 root root 233 04-17 09:17 vsftpd.conf -rw------- 1 root root 4579 04-17 09:16 vsftpd.conf.bak -rwxr--r-- 1 root root 338 2013-01-09 vsftpd_conf_migrate.sh -rw-r--r-- 1 root root 12288 04-17 09:29 vsftpd_login.db

11.[root@hwg1227 home]# chmod 600 /etc/vsftpd_login.db /给文件600权限(设置一下数据库文件的访问权限)

12.配置PAM文件,编辑文件/etc/pam.d/vsftpd.vu文件。

[root@hwg1227 home]# ll /etc/pam.d/ -rw-r--r-- 1 root root 97 2007-03-15 system-config-nfs -rw-r--r-- 1 root root 118 2009-09-03 system-config-samba -rw-r--r-- 1 root root 97 2010-01-27 system-config-securitylevel -rwxr-xr-x 1 root root 118 2010-03-31 system-config-services -rw-r--r-- 1 root root 329 2013-01-09 vsftpd [root@hwg1227 vsftpd]# ll /etc/pam.d/vsftpd -rw-r--r-- 1 root root 329 2013-01-09 /etc/pam.d/vsftpd 13. [root@hwg1227 vsftpd]#vi /etc/pam.d/vsftpd 14.[root@hwg1227 vsftpd]# cat /etc/pam.d/vsftpd /这里主机是32位的 如果是64位是/lib64/security/pam_userdb.so #%PAM-1.0 auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login session optional pam_keyinit.so force revoke auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed auth required pam_shells.so auth include system-auth account include system-auth session include system-auth session required pam_loginuid.so

15.为虚拟用户创建本地系统用户,新建一个系统用户vsftpd,用户家目录为/home/vsftpd, 用户登录终端设为/bin/false(即使之不能登录系统)

[root@hwg1227vsftpd]# useradd vsftpd -d /home/vsftpd -s /bin/false [root@hwg1227 vsftpd]# chown -R vsftpd:vsftpd /home/vsftpd [root@hwg1227 home]# ll 总计 16 -rw-r--r-- 1 root root 36 04-17 09:21 loguser.txt drwxr-xr-x 5 vsftpd vsftpd 4096 04-17 09:20 vsftpd drwxr-xr-x 2 root root 4096 04-10 20:47 zl 16.[root@hwg1227 home]# vi /etc/vsftpd/vsftpd.conf listen=YES

#使vsftpd处于独立启动监听端口模式

anonymous_enable=NO

#禁止匿名用户访问

dirmessage_enable=YES

#激活目录信息,当远程用户更改目录时,将出现提示信息

xferlog_enable=YES

#启用上传和下载日志功能

xferlog_file=/var/log/vsftpd.log

#日志文件存放目录

xferlog_std_format=YES

#是否使用标准的ftpd xferlog日志文件格式

chroot_local_user=YES

#设置所有的本地用户可以chroot

guest_enable=YES

#访客模式开启

guest_username=vsftpd

#访客使用的系统账号

user_config_dir=/etc/vsftpd/vsftpd_user_conf

#用户的配置文件

pam_service_name=vsftpd

#认证用户的数据库文件

local_enable=YES

#开启本地用户

17.[root@hwg1227 home]# mkdir /etc/vsftpd/vsftpd_user_conf 18.[root@hwg1227 home]# cd /etc/vsftpd/vsftpd_user_conf 19.[root@hwg1227 vsftpd_user_conf]# touch hr admin it 20.[root@hwg1227 vsftpd_user_conf]# cat hr local_root=/home/vsftpd/hr [root@hwg1227 vsftpd_user_conf]# cat amin local_root=/home/vsftpd/admin [root@hwg1227 vsftpd_user_conf]# cat it write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=/home/vsftpd/it 21.[root@hwg1227 vsftpd_user_conf]# cd /home/vsftpd/hr [root@hwg1227 hr]#touch abc.txt [root@hwg1227 hr]#echo "this is hr files" >abc.txt [root@hwg1227 admin]# touch def.txt [root@hwg1227 admin]# echo "this is admin files" >def.txt [root@hwg1227 it]#touch ggc.txt [root@hwg1227 it]#echo "this is admin files" >ggc.txt

22.在浏览器输入ftp://192.168.0.26来测试安装的正确性,到此处安装结束。

总结

有时候在工作时需要临时传递一些文件需要使用FTP的方式共享文件也是挺方便的,2种模式的共享方式各有优缺点,最重要的事你选择最快最正确的方式来完成工作才是关键。

,