一、FTP简介

1、ftp 概述                                               

FTP:(file  transfer  protocol文件传输协议)是典型的C/S 结构的应用层协议,需要由服务端软件,客户端软件两个部分共同实现文件传输共能。

2、FTP连接及传输模式                                      

FTP服务器默认使用TCP协议的20,21端口与客户端进行通信,20端口用于建立数据连接,并传输文件数据,21端口用于建立控制连接,并传输FTP控制命令。根据FTP服务器在建立数据连接过程中的主,被动关系,FTP数据连接分为主动模式和被动模式,两者的含义及主要区别如下:

主动模式 服务器主动发起数据连接,首先由客户端向服务端的21端口建立FTP控制连接,当需要传输数据时,客户端以PORT命令告知服务器“我打开了某端口,你过来连接我”于是服务器从20端口向客户端德该端口发送请求建立数据连接
被动模式 服务器被动等待数据连接。如果客户机所在网络的防火墙禁止主动模式连接,通常会使用被动模式,首先由客户端向服务端的21端口建立FTP控制连接,当需要传属数据时,服务器以PASV命令告知客户端“我打开了某端口。你过来连接我”于是客户端向服务器的该端口(随机端口)发送请求建立数据连接

客户端与服务器建立好数据连接以后,就可以根据从控制连接中发送的FTP命令上传或下载文件了。在传输文件时,根据是否进行字符转换,分为文本模式和二进制模式:

文本模式 又称为ASCII(american  standard  code  for  information  interchange美国信息交换标准码)模式,这种模式在传输文件时使用ASCII标准字符序列,一般只用于纯文本文件的传输。
二进制模式 又称为Binary模式,这种模式不会转换文件中的字符序列更适合传输程序,图片等非文本字符的文件

使用二进制模式比文本模式更有效,大多数FTP客户段工具可以分局文件类型自动选择文件传输模式,而无需用户手工指定。

3、FTP用户类型:

匿名用户 使用FTP客户端软件访问服务器时,通常要用到一类特殊的用户帐号,其用户名为ftp或anonymous,提供任意密码都可以通过服务器的验证,这样的用户称为匿名用户。匿名用户一般用于提供公共文件的下载,如提供一些免费软件,学习资料的下载的站点。
本地用户 FTP服务器还可以直接使用本机的系统用户账号进行验证,这些用户被称为本地用户。在RHEL5中匿名用户对应的系统用户帐号“ftp”但对于vsftp服务来说,本地用户指的是除了匿名用户以外的其他系统用户。
虚拟用户 有些FTP服务器软件还可以维护一份独立的用户数据库文件,而不是直接使用系统用户帐号,这些位于独立数据库文件中的FTP用户帐号,通常被称为“虚拟用户”通过使用虚拟用户,将FTP账户与Linux系统用户关联性降至最低。可以为系统提供安全性。

FTP服务器软件的种类

Windows 常见的FTP服务器软件包括IIS,Serv-U等
Linux Proftpd,   pureftpd,   vsftpd  等

FTP客户端工具的种类  

Windows cuteFTP,  flashFXP,   filezilla
Linux Gftp,  kuftp

二、安装vsftp

可以到https://pkgs.org/download/vsftpd下载适合自己的软件版本,通过RPM方式安装的vsftpd软件包,将会自动添加名为vsftpd的系统服务,因此启动,停止vsftpd服务变得非常方便。这里使用yum进行安装。

1、检查本机是否安装了vsftpd

[root@app ~]# rpm -qa | grep vsftpd

如果没有安装,使用yum进行安装。

[root@app ~]# yum install vsftpd -y

安装完成后验证是否安装成功

[root@app ~]# systemctl start vsftpd
[root@app ~]# vsftpd -v # 查看vsftpd的版本
vsftpd: version 3.0.2

2、常用配置选项:

选项

解释

background=YES 启用后,vsftpd以“监听”模式启动,vsftpd将后台监听程序。
chmod_enable=YES 启用后,允许使用SITE CHMOD命令。仅适用于本地用户。 不适用于匿名用户
delete_failed_uploads=NO 启用后,所有上传失败的文件都被删除。
download_enable=YES 如果为NO 将拒绝所有下载请求
allow_anon_ssl=NO 仅当本机启用了ssl协议时生效,如果启用允许匿名用户使用ssl的方式进行连接
ide_ids=NO 启用后,所有文件夹,文件的用户和组信息都是ftp
syslog_enable=NO 启用后,所有的输出将被写入/var/log/vsftpd.log
deny_file = none 限制文件类型,如:deny_file={*.mp3,*.mov,.private}
accept_timeout=60 客户端与服务端建立连接的时间(单位:秒)
connect_from_port_20=YES FTP数据传输端口,默认20
idle_session_timeout=60 60秒后无操作断开会话
data_connection_timeout=120 数据传输超时120秒
anon_max_rate=0 匿名用户的最大数据传输速率(单位:字节/秒)
local_max_rate=0 本地用户的最大数据传输速率(单位:字节/秒)
connect_timeout=60 建立数据连接超时时间(单位:秒)
file_open_mode=0666 上传文件的权限
max_clients=2000 客户端的连接数量
max_login_fails=3 登录3次失败后,会话将被终止
max_per_ip=3 一个IP地址可以启用3个客户端连接FTP服务器,如果超过3个会报错,0表示没有限制
pasv_enable=YES 启用被动模式
pasv_max_port=24600 PASV被动模式最大端口号
pasv_min_port=24500 PASV被动模式最小端口号
pasv_addr_resolve=NO   启用后,使用主机名的方式访问服务器
port_enable=YES 如果不想使用PORT的方式进行数据连接,请设置为NO
hide_file=none 隐藏文件hide_file={*.mp3,.hid‐den,hide*,h?}
user_config_dir=none 为每个用户设置独立配置文件的目录,如user_config_dir=/etc/vsftpd/user_conf,当使用test用户登录后系统会尝试到/etc/vsftpd/user_conf/test中读取配置。所以我们可以在test中为用户单独设置。
ftp_username=ftp 匿名登录的用户
guest_enable=NO 启用后,所有匿名用户登录都被视为guest用户(启用虚拟用户)
guest_username=ftp 这个用户名会被应用到guest_enable选项,(启用虚拟用户后,用于指定映射的本地用户)
anonymous_enable=YES 允许匿名用户使用ftp和anonymous访问FTP服务器
anon_upload_enable=NO 匿名用户上传文件的权限(启用后,write_enable必须是YES,并且匿名用户对该文件夹有写的权限)
anon_mkdir_write_enable=NO 匿名用户创建目录的权限(启用后,write_enable必须为YES并且匿名用户对当前目录有写入的权限)
anon_other_write_enable=NO 匿名用户除了创建文件,文件夹以外的其它权限,如删除,重命名的权限。不建议开启。
no_anon_password=NO 启用后,匿名用户将不需要密码直接登录
anon_umask=077 匿名用户上传文件的权限
chown_uploads=YES 启用后,所有匿名用户上传文件的所有者将是chown_username选项指定的用户
chown_username=whoever 文件所有者的用户名,会被应用到chown_uploads选项中,不推荐root用户
local_enable=YES 启用本地用户
write_enable=YES 本地用户写入权限
local_umask=022 上传权限默认是077,推荐是022
dirmessage_enable=YES 切换目录时,显示提示信息
xferlog_enable=YES 上传或下载时写入日志
xferlog_std_format=YES 启用标准的ftpd xferlog日志文件格式
xferlog_file=/var/log/xferlog 日志文件的位置
nopriv_user=ftpsecure 运行vsftpd需要的非特权系统用户,缺省是nobody
async_abor_enable=YES 启用识别异步ABOR请求,旧的FTP客户端会使用,但出于安全考虑,不建议开启
ascii_upload_enable=YES 上传文件时使用ASCII的模式进行传输
ascii_download_enable=YES 在下载文件时使用ASCII的模式进行传输
ftpd_banner=Welcome to blah FTP service. 登陆FTP后的提示语
deny_email_enable=YES 启用黑名单,用于禁止黑名单中的邮件地址登陆FTP服务器,用于抵抗DOS攻击
banned_email_file=/etc/vsftpd/banned_emails 黑名单,用于禁止该名单中的邮件地址登陆服务器
chroot_local_user=YES

启用后,本地用户被锁定在家目录中。最新版本需要家目录没有写入的权限,否则会报OOPS:vsftpd: refusing to run with writable root inside chroot()错误。

解决方案:1、去除家目录的写权限。2、allow_writeable_chroot=YES

chroot_list_enable=YES 启用后,所有用户将被锁定在家目录中,/etc/vsftpd/chroot_list文件中的用户将会被排除在外。可以使用chroot_list_file选项指定的文件来覆盖/etc/vsftpd/chroot_list中的设置。
chroot_list_file=/etc/vsftpd/chroot_list 用户列表文件(需要自己创建这个文件)
allow_writeable_chroot=NO 用户切入到其他目录后的写入权限,不建议开启
local_root=none 仅限本地用户,登录成功后切换到local_root指定的目录中
ls_recurse_enable=YES 激活内置ls“-R”选项。默认情况下是禁用的,以避免远程用户在大型站点上导致过多的I/O。
listen=NO 启用“listen”指令时,vsftpd以独立模式运行并侦听IPv4套接字。此指令不能与listen-ipv6指令一起使用
listen_ipv6=YES 启用“listen”指令时,vsftpd以独立模式运行并侦听IPv6套接字,此指令不能与listen-ipv4指令一起使用
pam_service_name=vsftpd 设置PAM外挂模块提供的认证服务所使用的配置文件名,即/etc/pam.d/vsftpd文件 此文件中file=/etc/vsftpd/ftpusers字段,说明了PAM模块能抵挡的帐号内容来自文件/etc/vsftpd/ftpusers中
userlist_enable=YES  启用后,禁止userlist_file文件中的用户登陆
userlist_deny=YES userlist_enable启用后,才会检查此项。如果为NO,只允许userlist_file文件中的用户登陆,如果为YES,禁止userlist_file文件中的用户登录
userlist_file=/etc/vsftpd/user_list 指定userlist文件,

决定user_list文件中的用户是否能够访问FTP服务器。若userlist_deny设置为YES,则user_list文件中的用户不允许访问FTP,若设置为NO,则只有user_list文件中的用户才能访问FTP。
/etc/vsftpd/ftpusers文件专门用于定义不允许访问FTP服务器的用户列表(注意:如果userlist_enable=YES,userlist_deny=NO,此时如果在user_list和ftpusers中都有某个用户时,那么这个用户是不能够访问FTP的,即ftpusers的优先级要高)。默认情况下user_list和ftpusers,这两个文件已经预设置了一些不允许访问FTP服务器的系统内部账户。如果系统没有这两个文件,那么新建这两个文件,将用户添加进去即可。

virtual_use_local_privs=NO 如果为YES则虚拟用户类似于本地用户,如果为NO虚拟用户类似于匿名用户
tcp_wrappers=YES

设置vsftpd是否与tcp_wrapper相结合来进行主机的访问控制。默认值为YES。如果启用,则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。比如:若要仅允许192.168.0.1—192.168.0.254的用户可以连接FTP服务器,则在/etc/hosts.allow文件中添加以下内容:
vsftpd:192.168.0. :allow
all:all :deny

三、简单实验

实验环境:

FTP服务器:centos 7 vsftpd-3.0.2  192.168.10.100

FTP客户端:centos 7 192.168.10.130

      windows 7 192.168.10.101

1、匿名访问

安装VSFTPD后,默认访问匿名FTP服务器,不需要密码验证,任何人都可以使用,非常方便,当需要提供公开访问的文件下载资源时,或者用户上传一些不需要保密的数据资料时,可以选择匿名模式。默认匿名用户的家目录是/var/ftp/。

1.1 关闭本机selinux和防火墙

[root@localhost ~]# systemctl stop firewalld.service # 临时关闭本机防火墙
[root@localhost ~]# setenforce 0 # 临时关闭selinux
# 永久关闭selinux
修改配置文件/etc/selinux/config:
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可

1.2 创建一个用于测试的文件夹public

[root@localhost ~]# mkdir /var/ftp/public
[root@localhost ~]# chmod 777 /var/ftp/public # 允许匿名用户有写入的权限

1.3 我的配置文件(/etc/vsftpd/vsftpd.conf)

ftpd_banner=Welcome to My Test FTP  # 欢迎信息
write_enable=YES # 本地用户写入权限(匿名用户写入权限也必须启用本项)
anonymous_enable=YES # 启用匿名访问
anon_upload_enable=YES # 允许匿名用户上传文件
anon_mkdir_write_enable=YES # 允许匿名用户创建目录
anon_umask=022 # 匿名用户上传文件的权限 local_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

关于权限022,是上传的文件或目录减去022后,才是上传后的权限,实际结构是所上传文件的默认权限为644 目录的实际权限是755,然后减去022就是最终的文件/文件夹的权限。

保存配置文件后重启ftp服务

[root@localhost ~]# systemctl restart vsftpd

1.4 验证配置信息

1.4.1验证欢迎信息

1.4.2 验证上传文件/文件夹

到目前为止上传文件,创建目录都没有问题,但此时还不能修改文件名,删除文件,限制上传文件类型等,如下:

其实只要在配置文件中添加限制文件上传类型就可以了,不需要让用户有修改文件名,删除文件的操作。但如果想让匿名用户有操作权限,我修改后的配置文件如下:

ftpd_banner=Welcome to My Test FTP  # 欢迎信息
write_enable=YES # 本地用户写入权限(匿名用户写入权限也必须启用本项)
anonymous_enable=YES # 启用匿名访问
anon_upload_enable=YES # 允许匿名用户上传文件
anon_mkdir_write_enable=YES # 允许匿名用户创建目录
anon_umask=022 # 匿名用户上传文件的权限
anon_other_write_enable=YES # 允许匿名用户修改文件名,删除文件
deny_file={*.exe,*.bat} # 限制上传文件的类型 local_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

保存配置文件后,重启ftp服务。

[root@localhost ~]# systemctl restart vsftpd

1.4.3 验证限制上传文件类型和文件名的修改和删除权限

到此匿名访问就告一段落,关于更多的功能请参考配置选项结合实际情况自行研究吧。


2、本地用户访问

2.1 创建ftp用户

[root@localhost ~]# useradd ftp_user -s /sbin/nologin
[root@localhost ~]# passwd ftp_user

创建好用户后,我的配置文件(/etc/vsftpd/vsftpd.conf)如下:

ftpd_banner=Welcome to My Test FTP  # 欢迎信息
write_enable=YES # 本地用户写入权限(匿名用户写入权限也必须启用本项)
max_clients=50 # 允许客户端连接的数量
max_login_fails=5 # 登录5次失败后,会话将被终止
max_per_ip=2 # 每个IP启只能开启2个客户端 anonymous_enable=YES # 启用匿名访问
anon_upload_enable=YES # 允许匿名用户上传文件
anon_mkdir_write_enable=YES # 允许匿名用户创建目录
anon_umask=022 # 匿名用户上传文件的权限
anon_other_write_enable=YES # 允许匿名用户修改文件名,删除文件
deny_file={*.exe,*.bat} # 限制上传文件的类型 local_enable=YES # 启用本地用户
local_umask=022 # 本地用户上传文件权限
userlist_enable=YES # 禁止/etc/vsftpd/userlist_user中的用户登录 dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
tcp_wrappers=YES

保存配置文件后,重启ftp服务。

[root@localhost ~]# systemctl restart vsftpd

2.2 验证服务器配置

从上面的小视频我们可以看到本地用户不单单可以访问自己的家目录,还可以访问系统目录,从安全的角度来说,这很不友好,我们最好将用户限制到某个目录内,或者限制在家目录中。

2.3 限制用户在家目录

我的配置文件(/etc/vsftpd/vsftpd.conf)如下:

ftpd_banner=Welcome to My Test FTP  # 欢迎信息
write_enable=YES # 本地用户写入权限(匿名用户写入权限也必须启用本项)
max_clients=50 # 允许客户端连接的数量
max_login_fails=5 # 登录5次失败后,会话将被终止
max_per_ip=2 # 每个IP启只能开启2个客户端 anonymous_enable=YES # 启用匿名访问
anon_upload_enable=YES # 允许匿名用户上传文件
anon_mkdir_write_enable=YES # 允许匿名用户创建目录
anon_umask=022 # 匿名用户上传文件的权限
anon_other_write_enable=YES # 允许匿名用户修改文件名,删除文件
deny_file={*.exe,*.bat} # 限制上传文件的类型 local_enable=YES # 启用本地用户
local_umask=022 # 本地用户上传文件权限
userlist_enable=YES # 禁止/etc/vsftpd/userlist_user中的用户登录
allow_writeable_chroot=YES # 切换目录后写入权限
chroot_local_user=YES # 将用户锁定在家目录中,需要allow_writeable_chroot=YES
# local_root=/var/ftp # 将用户锁定在/var/ftp目录下,如果和chroot_local_user同时存在,以local_root选项为准 dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
tcp_wrappers=YES

这个版本chroot_local_user将用户锁定在家目录,需要用户对家目录没有写入的权限,否则会报OOPS:vsftpd: refusing to run with writable root inside chroot()错误

解决办法:1、去掉该用户家目录的写权限。

2、allow_writeable_chroot=YES

保存配置后,重启ftp服务:

[root@localhost ~]# systemctl restart vsftpd

如果一切顺利,用户登录后会被锁定在家目录中。这里就不上图片了。

2.4 为每个用户设置独立的配置文件

两个用户ftp_user,ftp_test。实现的功能:ftp_user被锁定在/var/ftp/public,ftp_test被锁定在/var/ftp目录中

ftp_user用户我们已经创建了,下面在创建一个ftp_test用户

[root@localhost ~]# useradd ftp_test -s /sbin/nologin
[root@localhost ~]# passwd ftp_test

我的主配置文件(/etc/vsftpd/vsftpd.conf)如下:

ftpd_banner=Welcome to My Test FTP  # 欢迎信息
write_enable=YES # 本地用户写入权限(匿名用户写入权限也必须启用本项)
max_clients=50 # 允许客户端连接的数量
max_login_fails=5 # 登录5次失败后,会话将被终止
max_per_ip=2 # 每个IP启只能开启2个客户端 anonymous_enable=YES # 启用匿名访问
anon_upload_enable=YES # 允许匿名用户上传文件
anon_mkdir_write_enable=YES # 允许匿名用户创建目录
anon_umask=022 # 匿名用户上传文件的权限
anon_other_write_enable=YES # 允许匿名用户修改文件名,删除文件
deny_file={*.exe,*.bat} # 限制上传文件的类型 local_enable=YES # 启用本地用户
local_umask=022 # 本地用户上传文件权限
userlist_enable=YES # 禁止/etc/vsftpd/userlist_user中的用户登录
user_config_dir=/etc/vsftpd/user_conf # 用户配置文件目录,系统会到该目录下去查找对应用户名的配置文件
allow_writeable_chroot=YES # 切换目录后写入权限
chroot_local_user=YES # 将用户锁定在家目录中,需要allow_writeable_chroot=YES dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
tcp_wrappers=YES

ftp_user用户的配置文件(/etc/vsftpd/user_conf/ftp_user)如下:

local_root=/var/ftp/public

ftp_test用户的配置文件(/etc/vsftpd/user_conf/ftp_test)如下:

local_root=/var/ftp

保存配置文件后,重启ftp服务:

[root@localhost ~]# systemctl restart vsftpd

2.5 验证配置(ftp_user被锁定在/var/ftp/public,ftp_test被锁定在/var/ftp目录中)

到此用户配置就告一段落,更多参数请参考配置文档。


3、虚拟用户访问

虚拟账户的数据保存在Berkeley DB格式的数据文件中,所以需要安装db4-utils工具来创建数据文件的,这里使用yum安装vsftpd后就已经安装了这个工具,没有安装的请自行安装。虚拟用户的好处就是只需要创建一个本地用户,然后就可以映射多个虚拟账户。

3.1 创建虚拟用户文件(/etc/vsftpd/virtual_user_list)

[root@localhost ~]# vim /etc/vsftpd/virtual_user_list
aaa # 用户名
123456 # 密码
bbb
123456

3.2 创建Berkeley DB格式的数据库文件

[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# db_load -T -t hash -f virtual_user_list vusers.db
db_load命令中“-f”选项用于指定数据源文件,“-T”选项允许非Berkeley DB的应用程序使用从文本格式转换的DB数据文件,“-t hash”选项指定读取数据文件的基本方法

3.3 为虚拟用户创建PAM认证

[root@localhost ~]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
[root@localhost ~]# vim /etc/pam.d/vsftpd
#%PAM-1.0
# 将这两条记录添加到顶部
auth sufficient pam_userdb.so db=/etc/vsftpd/vusers
account sufficient pam_userdb.so db=/etc/vsftpd/vusers 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 password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth

上述PAM配置内容中,通过“db=/etc/vsftpd/vusers”参数指定了要使用的虚拟用户数据库文件位置(省略.db扩展名)即对应为/etc/vsftpd/vusers文件。

3.4 创建本地用户用于映射虚拟用户

[root@localhost ~]# useradd ftp_virtual_user -d /var/ftp/virtual_user_home -s /sbin/nologin
[root@localhost ~]# chmod 755 /var/ftp/virtual_user_home/

这样所有虚拟用户的家目录就是/var/ftp/virtual_user_home

3.5 调整配置文件支持虚拟用户

我的配置文件如下:

ftpd_banner=Welcome to My Test FTP  # 欢迎信息
write_enable=YES # 本地用户写入权限(匿名用户写入权限也必须启用本项)
max_clients=50 # 允许客户端连接的数量
max_login_fails=5 # 登录5次失败后,会话将被终止
max_per_ip=2 # 每个IP启只能开启2个客户端 anonymous_enable=YES # 启用匿名访问
anon_upload_enable=YES # 允许匿名用户上传文件
anon_mkdir_write_enable=YES # 允许匿名用户创建目录
anon_umask=022 # 匿名用户上传文件的权限
anon_other_write_enable=YES # 允许匿名用户修改文件名,删除文件
deny_file={*.exe,*.bat} # 限制上传文件的类型 local_enable=YES # 启用本地用户
local_umask=022 # 本地用户上传文件权限
userlist_enable=YES # 禁止/etc/vsftpd/userlist_user中的用户登录
user_config_dir=/etc/vsftpd/user_conf # 用户配置文件目录,系统会到该目录下去查找对应用户名的配置文件
allow_writeable_chroot=YES # 切换目录后写入权限
chroot_local_user=YES # 将用户锁定在家目录中,需要allow_writeable_chroot=YES # 启用虚拟用户
guest_enable=YES # 启用guest
guest_username=ftp_virtual_user # 将虚拟用户映射本地用户 dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
tcp_wrappers=YES

保存配置文件,重启vsftpd服务:

[root@localhost ~]# systemctl restart vsftpd

3.6 验证虚拟用户登录(虚拟用户aaa,bbb)

到此虚拟用户配置就到这里吧,关于更多的功能请结合实际查看配置文档。

centos 7 搭建vsftp的更多相关文章

  1. 基于腾讯云centos简单搭建VSFTP

    基于腾讯云centos7.3搭建VSFTP 环境分析: 基于vsftp服务在于云主机上,所以推荐使用FTP的PASV模式: FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动 ...

  2. Centos|Rhel搭建vsftp

    vsftp,在ftp传输中相对安全的 01.安装vsftpd yum install -y vsftpd 版本信息: Installed PackagesName        : vsftpdArc ...

  3. CentOS 7搭建vsftp(虚拟用户方式登录)

    说明: vsftpd的版本:vsftpd-3.0.2-22.el7.x86_64 ftp 根目录 : /data/ftp ftp 配置文件目录:/etc/vsftpd ftp 虚拟用户权限配置文件目录 ...

  4. centos 7.2下搭建vsftp 虚拟用户

    虚拟用户搭建vsftp 要求一: 只允许上传 下载 不能删除 不能更换名称 yum install pam* yum install db4* -y yum install vsftpd chkcon ...

  5. CentOS 7搭建LAMP环境(二)

    前面已经讲过了CentOS 7下LAMP环境的配置过程,一台简单的WEB服务器已搭建完成,但后期在网站部署的过程中也许会碰到各种各样头疼的问题.下面我们来讲讲怎么解决这些问题,以及如何高效地管理服务器 ...

  6. 快速搭建vsftp 服务器并配置指定目录

    1  搭建vsftp 服务器 前期准备: 1.用root 进入系统 2.使用命令 rpm  -qa|grep vsftpd 查看系统是否安装了ftp,若安装了vsftp,使用这个命令会在屏幕上显示vs ...

  7. CentOS下搭建LAMP环境详解

    前言:在这里将介绍如何在CentOS下搭建LAMP环境(全部使用源码编译安装),用于web服务器开发. •LAMP: Linux + Apache + PHP + Mysql. •系统: CentOS ...

  8. CentOs上搭建git服务器

    CentOs上搭建git服务器 首先安装setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0 ...

  9. Centos下搭建 nginx+uwsgi+python

    python做web应用最麻烦的还是配置服务器了,此话不假,光中间件就有好几种选择,fastcgi.wsgi.uwsgi,难 免让人眼花缭乱. 而听说uwsgi的效率是fastcgi和wsgi的10倍 ...

随机推荐

  1. Java之ssh框架spring配置文件配置定时任务

    最近做了一个数据同步功能,要求晚上0点去定时同步数据,这是个老项目框架用的ssh,定时任务基于quartz,废话不多说,下面详细说说相关配置. 在spring的配置文件中: <!-- 0点定时任 ...

  2. Gluserfs 架构详解【译】官网

    Gluserfs详解 排版看着不舒服的,可以查看[我的简书](https://www.jianshu.com/p/0340e429431b) doc home:https://docs.gluster ...

  3. SpringCloud微服务(04):Turbine组件,实现微服务集群监控

    本文源码:GitHub·点这里 || GitEE·点这里 写在前面,阅读本文前,你需要了解熔断器相关内容 SpringCloud微服务:Hystrix组件,实现服务熔断 一.聚合监控简介 1.Dash ...

  4. 【HTML】---常用标签(1)

    Html常用标签(1) 重新整理学习下前端知识从Html标签开始.我们先看HTML 骨架格式: <!DOCTYPE html> <!--这句话就是告诉我们使用哪个html版本--&g ...

  5. 爬虫爬取m3u8视频文件

    一.m3u8视频格式 一般m3u8文件和 视频流ts文件放在同一目录 而m3u8文件格式存放的一般都是ts 文件的一个列表 二.根据m3u8视频存放以及写法的规律 思路 我们一般网站上能找到的m3u8 ...

  6. CSS学习笔记-背景属性

    一.背景尺寸属性:    1.含义:        背景尺寸属性是CSS3中新增的一个属性,专门用于设置背景图片大小 2.格式:        1.1具体像素:             backgro ...

  7. leaflet-webpack 入门开发系列三地图分屏对比(附源码下载)

    前言 leaflet-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 w ...

  8. ApiPost——国产postman,中文版,好用

    一款类似postman的接口测试平台,中文版,很好用 参考链接: https://www.cnblogs.com/phpwechat/p/10487077.html ApiPost下载地址: http ...

  9. 转战物联网·基础篇05-通俗理解MQTT协议的实现原理和异步方式

      网络上搜索MQTT协议,会出现太多的解释,这里就不做官方标准释义的复制了.这一节我们从实战理解角度,通俗的将MQTT协议的作用及实现原理说一下,旨在可以快速理解MQTT协议.所以可能会出现很多看似 ...

  10. Android项目模块化/组件化开发(非原创)

    文章大纲 一.项目模块化初步介绍二.项目模块化的两种模式与比较三.大型项目模块化的演进四.项目模块化总结五.参考文章   一.项目模块化初步介绍 1. 前言 在Android开发中,随着项目的不断扩展 ...