error installing service: 拒绝访问。 (5)_学习笔记5-vsftpd

FTP是File Transfer Protocol(文件传输协议)的英文简称,是用于Internet上的控制文件的双向传输。同时也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守这个协议以传输文件。FTP的使用过程中有两个概念,上传和下载。下载就是从远程主机拷贝文件到自己的电脑上,上传就是将自己的文件拷贝到远程主机上。

Vsftpd是very secure FTP daemon的缩写,安全性是他的一个最大的特点。Vsftpd是一个UNIX类操作系统上运行的服务器的名字,它可以运行在注入Linux、BSD、Solaris等系统上,是一个完全免费的,开源的ftp服务器软件,支持很多其他的FTP服务器所不支持的特征。

以前写代码做上传基本都是在项目下新建个文件夹存放上传的文件,这样做的优点是在传统的单体架构 项目中,使用方便,便于管理。但是如果是分布式的环境图片引用就会出现问题,而且图片等文件的下载会给服务器增加额外的压力。

传统的图片管理方式在分布式环境中的问题:

c5d627252c34427cc427203ea253b8e5.png

在分布式的环境中图片管理一般是使用如下方式:

8ab43c951a02e952c0e0cc8ef1dcf88b.png

vsftpd的安装:

1、安装vsftpd组件:yum -y install vsftpd 安装完成后在/etc/vsftpd/vsftpd.conf文件是vsftpd的配置文件。

2、添加一个Linux用户用来登录ftp服务器:useradd ftpuser 登陆后的默认路径为/home/ftpuser

3、给新建的用户添加密码:passwd ftpuser,两次密码输入相同,即可修改密码。

394e8a4d937ac7c2abea3b710a54914d.png

4、防火墙开启21端口:ftp默认的端口是21,此方式为centos6以下的命令

7c2eaf9bec9d5728677e17c783274280.png

5、修改selinux:(Security-Enhanced Linux)是美国国安局对于强制访问控制的实现,是Linux历史上最杰出的新安全子系统。大部分时候访问ftp会被selinux拦截,可以自己设置关闭selinux:

9794ca97b7de714d3496f1bdf411450a.png

selinux一共有三种模式:enforcing(强制模式):开始限制domain/type

permissive(宽容模式):仅会有警告信息

disabled(关闭):关闭selinux

设置selinux:

d4a304e5ae70e66e96760b69785c7409.png

设置selinux:需要将ftpd_full_access和tftp_home_dir两项修改为on

setsebool -P ftpd_full_access 1

80e918ee0baca5315b8a82b60290dc9c.png

6、关闭匿名访问:vim /etc/vsftpd/vsftpd.conf

0470540b7a9c8f6dfddead9498fb9edb.png

:set number打开行数,找到100行,设置如下,根据自己需要自行设置,我用cengos7,不设置这俩个的话访问不了ftp:

2a17951b43c4d787917b0002f3b83843.png

重启ftp:service vsftpd restart.注意,centos7命令不同,systemctl restart vsftpd.service

查看vsftpd进程:ps -ef | grep vsftpd

设置开机启动:systemctl enable vsftpd.service

在做图片上传之前先使用工具往用户目录下放一张图片,使用浏览器通过地址访问,格式为:

ftp://username:password@ip地址/图片路径/图片名称

63f296c0c1964bd532807e2cefeaa00e.png

因为之前在etc/vsftpd/vsftpd.conf中设置了 禁止匿名访问,所以访问的时候要输入用户名密码

b3b563e9e15097f36c305140b4d00168.png

在做图片上传时需要用到FTPClient工具,它是Apache提供的一个开源的基于java的FTP客户端工具,使用时需要加入jar包

371f3735e963e4b3bfd829bac4392a2f.png

使用时基本设置如下,此外还提供了很多方法可供使用:

28448100888e4f7f601a48a4a14ee5d9.png

由于在开发 中频繁的写这些比较繁琐,为了效率和提高代码的复用性,所以将文件上传和下载封装成一个工具类FTPUtil.java 用来使用。

上传时使用KindEditor,这是一个富文本编辑器,同样的工具还有ueditor等,主要是让用户在网站上获得所见即所得的编辑效果。

在用KindEditor做图片上传时使用了下面几个工具类:

FTPUtil:FTPClient工具类

IDUtils:生成id的工具类,用来生成图片名称

JsonUtils:对象与json格式转换的工具类。

在JSP中使用KindEditor的步骤:

1、在项目中添加KindEditor和JQuery的js文件

2、在页面中通过script标签引入js

3、在页面中添加textarea标签

4、调用KindEditor的API将KindEditor渲染到textarea

KindEditor初始化参数介绍:

uploadJson:指定上传文件的服务器端程序

FIlePostName:指定上传文件form名称

dir:指定上传文件类型

99372f97afc8d602d9ae91b02e0cb4bd.png

db083f472c57f8669d7ea3f69433ca9d.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值