最近接到个需求,需要搭建图片文件服务器给后端程序读取目录和操作图片
这个需求分为几个步骤:
1.扩展windwos虚拟机磁盘空间
考虑到图片操作的便利性,这里选用windows系统做图片服务器,但是由于图片比较大,原有windows主机磁盘不够,所以第一步就是扩展windows虚拟机磁盘空间
2.在windows服务器上搭建FileZilla服务端
图片需要从本地硬盘上传到服务器,考虑到传输的快速和稳定(支持断点续传),这里果断选用FileZilla服务
3.linux挂载windows共享文件夹
后端程序是通过docker部署在linux机器上,读取和操作图片需要通过本地路径,所以需要通过linux主机挂载windows共享文件夹的方式来获取本地路径
4.docker映射图片文件夹并通过nginx代理图片文件
本篇着重记录在windows服务器上搭建FileZilla服务端,下面为操作步骤
1.下载并安装FileZilla服务端程序
FileZilla官网:https://filezilla-project.org/
安装一直下一步,这里选择手动启动,不跟随系统自启动(因为不传文件可以关掉,减少安全风险)
为了安全,下面可以选择Run service under a different Windows user account,使用非管理员用户运行
如果安装时用的是system选项,安装完也可以修改
这个端口号,是连接FileZilla server后台的端口,不是传文件的端口,可以不修改
设置完管理员密码之后,一直点下一步即可。
2.配置FileZilla server 用户和目录
安装完后,点击Administer FileZilla Server图标,填入刚才设置的管理员账号密码,进入管理后台
然后点击左上角的 server->configure,进入设置
先加一个组,并设置组对应的虚拟目录和本地目录
再新增用户,把用户加到刚才的组里,用户会继承组的权限,设置用户密码
3.FileZilla网络配置
这个是配置的重点
下面先说一下概念:
FTP的21号端口用于监听服务,但除此之外,FTP还需要几个端口用于数据传输。
这里先简单说说主动模式和被动模式,两种模式具体如何我们先不管,需要知道的是一般FTP采用被动模式,主动模式相当于备选方案,详细的概念请自行搜索。
两种模式使用不同的端口,主动模式默认20,FileZilla没有提供修改;
被动模式可以使用1个到多个端口,如果上传文件比较多,建议可以设置多个被动端口,这样多端口协同传输,速度会比较快
关于FileZilla映射到外网的端口映射问题:
把被动模式设置的那些端口都映射出来,内外网端口号要保持一致。(主动模式使用的端口20可以不映射)
把内网的21号端口(如果你之前没在常规设置改监听端口的话)映射到外网你喜欢的端口。端口设置得随意一些,黑客也不好找到。
下面是操作步骤:
(1)配置服务监听端口
默认是21,为了和被动端口映射规则保持一致,这里设置成和外网的映射一样的端口号
(2)配置被动端口
这里配置3个被动端口,如果传输文件过大,可以考虑开放5~10个端口,用于提高传输速度
如上配置客户端上传文件时会有警告:服务器回应不可路由的地址。使用服务器地址代替。
可以在这里配上服务端实际使用的外网ip
点ok保存配置
(3)在外网防火墙里配置映射关系
在外网防火墙里配置映射关系,开放防火墙18321~18324端口,分别对应映射到文件服务器内网ip的18321~18324端口上
安全配置
出于安全起见,外网防火墙映射推荐做ip限制,只允许指定ip访问(客户端使用的固定ip)
这里不是很推荐在FileZilla里做ip地址限制,推荐在防火墙侧配置,方便统一管理
这里还有个多次登陆失败自动ban ip的安全策略,一般做了ip访问限制之后可以不用这个,这个只适用于做不了ip限制的场景(客户端没有固定ip)
4.windows主机防火墙配置
配置windows主机防火墙配置,新增入站规则,入站规则名称可以填FileZilla,本地端口填18321-18324
5.开启FileZilla服务并测试
其实默认已开启,因为没有开启的话,是连不上后台的
点击桌面Start FileZilla Server图标
在外网机器上安装FileZilla客户端并连接测试
用完,不传文件了,可以点下面的stop关掉服务
并关闭外网防火墙端口映射
6.证书问题
FileZilla证书有效期是一年,到期之后,点击更新一下就可以
参考文档:https://blog.csdn.net/weixin_42628449/article/details/108410728