0. 前言

由于学习或工作需要,我们经常需要和他人或其他电脑共享文件,在这之前我们普遍的做法是用U盘来回拷贝文件,但这样就存在着一个风险,①U盘容易中毒;②容易把U盘上的病毒带到别的电脑上。

不管哪个风险都是我们不愿看到的,为了尽可能规避以上风险,我们就想到了ftp服务。

为什么我们不在自己服务器上搭建一个ftp服务呢?

只要我们控制好权限,哪些用户可以上传文件,哪些用户只可以下载文件。这不就给我们共享文件带来了很大方便么,同事也规避了一些风险。

只要将我们需要共享的文件放到服务器上,只要网络正常,我们就很容易从服务器上拉取文件,或者将我们的文件共享给其他小伙伴。

说干就干,接下来我们就行动起来呗。搭建一个属于自己的ftp服务。

1.ftp简介

在搭建ftp服务前呢,我们先来了解下ftp协议和ftp服务器

  • ftp协议: 一种文件传输协议。在本地和服务器之间进行文件传输。
  • ftp服务器:支持ftp传输协议的服务器。一般windows都带有ftp服务,只是默认情况下都没启动。

ftp相关软件也比较多,其中运用比较广泛的有Server-U、FileZilla、VsFTP、apache旗下的FtpServer。

今天我们就来介绍一个开源的ftp服务器,Apache FTPServerFtpServer也就这次的主角,Apache FTPServer是一个100%纯Java的FTP服务器。FTPServer可独立运行作为Windows服务或Unix/ Linux后台程序或是被嵌入在Java应用程序中。

接下来我们就以FtpServer为例,搭建ftp服务。

2.下载Apache FTPServer

可以到官网下载:http://mina.apache.org/ftpserver-project/downloads.html 目前最新版本是Apache FtpServer 1.1.1 Release,出于稳定考虑我这里下载的就是1.0.6版本

3.下载并解压压缩包

将下载下来的压缩包解压到本地,我的是放在D盘根目录下,其目录结构如下图:

4.修改配置文件

4.1 修改users.properties配置文件

配置文件路径:

D:\apache-ftpserver-1.0.6\res\conf\users.properties

在此配置文件中可以增加用户,如果不希望匿名登录的话,可以将匿名用户这个配置注释掉

# Password is "admin"
ftpserver.user.admin.userpassword=admin
ftpserver.user.admin.homedirectory=./res/home
ftpserver.user.admin.enableflag=true
ftpserver.user.admin.writepermission=true
ftpserver.user.admin.maxloginnumber=0
ftpserver.user.admin.maxloginperip=0
ftpserver.user.admin.idletime=0
ftpserver.user.admin.uploadrate=0
ftpserver.user.admin.downloadrate=0
ftpserver.user.anonymous.userpassword=
ftpserver.user.anonymous.homedirectory=./res/home
ftpserver.user.anonymous.enableflag=true
ftpserver.user.anonymous.writepermission=false
ftpserver.user.anonymous.maxloginnumber=20
ftpserver.user.anonymous.maxloginperip=2
ftpserver.user.anonymous.idletime=300
ftpserver.user.anonymous.uploadrate=4800
ftpserver.user.anonymous.downloadrate=4800
#密码 配置新的用户
ftpserver.user.lxw.userpassword=123456
#主目录
ftpserver.user.lxw.homedirectory=./res/home
#当前用户可用
ftpserver.user.lxw.enableflag=true
#具有上传权限
ftpserver.user.lxw.writepermission=true
#最大登陆用户数为20
ftpserver.user.lxw.maxloginnumber=20
#同IP登陆用户数为2
ftpserver.user.lxw.maxloginperip=2
#空闲时间为300秒
ftpserver.user.lxw.idletime=300
#上传速率限制为480000字节每秒
ftpserver.user.lxw.uploadrate=48000000
#下载速率限制为480000字节每秒
ftpserver.user.lxw.downloadrate=48000000

4.2 修改ftpd-typical.xml配置文件

配置文件路径:

D:\apache-ftpserver-1.0.6\res\conf\ftpd-typical.xml

<server xmlns="http://mina.apache.org/ftpserver/spring/v1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd
"
id="myServer">
<listeners>
<!-- 默认端口是2121,可以修改为自己的端口 -->
<nio-listener name="default" port="2121">
<ssl>
<keystore file="./res/ftpserver.jks" password="password" />
</ssl>
</nio-listener>
</listeners>
<file-user-manager file="./res/conf/users.properties" encrypt-passwords="clear"/>
<!-- 添加encrypt-passwords="clear",将密码加密方式修改给clear -->
</server>

5.启动FTPServer

打开CMD命令窗口,切换到D:\apache-ftpserver-1.0.6\bin这个目录下 输入以下命令:

service install
ftpd.bat res/conf/ftpd-typical.xml

注意:由于ftpserver是纯java编写的,所以第二条命令的执行需要在环境变量中配置java环境JAVA_HOME。java环境此处省去,不会可以自行百度

输入完命令之后如下图所示,当出现FtpServer started 出现即启动成功

6.访问FTP

在游览器中,输入ftp://ip:2121进行访问,如果端口修改了,要换成对应的端口,ip就是FTP所在的服务器的ip,访问如下图所示:

当然我们也能通过工具直接访问,进行上传和下载文件操作

下面提供一个比较好用的免安装工具给大家,大家可以放心食用。

winscp553 百度云下载链接 提取码:sncs

7.ftp 的启动与关闭

将dos命令窗口关掉,ftp服务即关闭

那么我们怎么样启动ftp服务呢,

  • 可以根据前面所提到的命令启动,切换到D:\apache-ftpserver-1.0.6\bin这个目录下 输入以下命令:
service install
ftpd.bat res/conf/ftpd-typical.xml
  • 可以把启动命令制作成bat文件,内容为:
d:
cd D:\apache-ftpserver-1.0.5\bin
ftpd.bat res/conf/ftpd-typical.xml

随便起一个名字xx,命名为xx.bat,点击xx.bat文件即可启动ftp服务器。

是不是很简单呀,到此呢属于我们自己的ftp服务就搭建好了(●'◡'●)。

windows环境下如何优雅搭建ftp服务?的更多相关文章

  1. Windows环境下使用Nginx搭建负载均衡

    前言 最近没有什么事情,喜欢总结并学习东西!前几天写来一个Session共享,那么我们为什么需要Session共享?因为我们的应用程序分布在多个服务器上,为了合理分配用户的请求,就需要用到负载均衡技术 ...

  2. windows环境下apache-apollo服务器搭建及发布订阅测试

    查证了一些资料之后,发现 apache-apollo服务器使用的人还是挺多的,资料也比较齐全,所以直接选择 apache-apollo了,具体性能如何,先用起来再说吧: 1.下载 apache-apo ...

  3. windows环境下利用Gitblit搭建Git服务器并实现自动部署Web站点目录

    Git服务搭建多见于linux环境,但windows主机也不少,目前网上文章诸多不全,且以讹传讹,不甚清楚.下面介绍windows环境下的自动部署和发布. 所需环境及资源:Java环境.Gitblit ...

  4. windows环境下基于nginx搭建rtmp服务器

    基于nginx搭建rtmp服务器需要引入rtmp模块,引入之后需重新编译nginx linux环境几个命令行就能实现编译,笔者未尝试,网上有很多教程. windows环境还需要安装一系列的编译环境,例 ...

  5. windows服务器入门 使用FileZilla搭建FTP服务

    下载FileZilla Server(注意:我搭建ftp的时候,有一个fz的版本会报错,百度了老半天都没有解决这个问题,回来我换了一个版本就可以.如果你们也出现了不知道怎么搞定的问题的话   可以考虑 ...

  6. windows 环境下Maven私服搭建

    使用Nexus.3.11在Windows环境上搭建1.下载nexus.3.11.zip包https://www.sonatype.com/download-oss-sonatype 下载下来之后,进行 ...

  7. Windows环境下ELK简单搭建记录

    前言 ELK已经是一套成熟的日志解决方案,虽然出现了好久,今日才终于研究了一下,不过是在windows平台上安装的. 搭建步骤 下载软件 安装软件 修改配置文件 启动软件 集成测试 下载软件 首先从官 ...

  8. 在windows环境下利用virtualenv搭建Python虚拟环境

    安装Python 安装时只有一点需要注意,一定一定要将Python添加到系统环境变量那一项勾选. 安装 virtualenv 加入系统目录之后,命令行(CMD)下就多了一条命令:pip.用pip可以自 ...

  9. windows环境下redis启动加到服务中

    前置条件: 1.命令运行在redis-server.exe目录下  2.cmd命令  安装命令: redis-server.exe --service-install redis.windows.co ...

  10. Windows环境下,从零开始搭建Nodejs+Express+Ejs框架(一)---安装nodejs

    第一步,安装nodejs https://nodejs.org/en/download/ 这个是nodejs的官网,由于操作系统是win7 64位的,所以,我下载的是node-v8.11.1-x64的 ...

随机推荐

  1. JDK对于Java的作用

    JDK是Java Development Kit的缩写,是Java的开发工具包(SDK).JDK 是整个 Java 的核心,包括 Java 运行环境(Java Runtime Envirnment,简 ...

  2. umich cv-3-2

    UMICH CV Neural Network 既然谈到神经网络,我们肯定要讨论在神经网络中是如何进行梯度的计算以及参数的优化的 传统的方法就是我们手动计算梯度,但是随着神经网络层数的增加,这种方法显 ...

  3. Hyper-V 下的 Debian 双网卡配置

    Debian 双网卡配置 因为 Hyper-v 不能在 Hyper-v Manger 里设置网卡的静态 IP, 而每次开机自启之后又要连接 Debian 虚拟机,所以使用了双网卡. 双网卡分为内网网卡 ...

  4. Spring Cloud Gateway系列:路由断言工厂

    目录 1.After路由断言工厂 配置式 API式 2.Before路由断言工厂 配置式 API式 3.Between路由断言工厂 配置式 API式 4.Cookie路由断言工厂 配置式 API式 5 ...

  5. Chromium Canvas工作流

    blink 中实现了2种 canvas,分别是 blink::HTMLCanvasElement 和 blink::OffscreenCanvas ,前者对应 html/dom 中的 canvas,后 ...

  6. Java 基础学习第二弹

    1. HashMap和HashT able的区别 HashMap和Hashtable是两种常见的哈希表数据结构,它们在实现上有一些区别. 线程安全性:Hashtable是线程安全的,而HashMap不 ...

  7. React同构与极致的性能优化

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  8. Java笔记——常用类

    一.API概述 JDK中提供的各种功能的Java类 二.Object类 概述 类层次结构的根类 所有类都直接或间接的继承自该类 Class Object是类object结构的根.每个Class都有ob ...

  9. C#中LINQ的使用知多少?LINQ常功能整理,实例源代码解析

    LINQ(Language-Integrated Query)是C#语言中的一个强大的查询技术,它提供了一种统一的查询语法,可以用于查询和操作各种数据源,包括集合.数据库.XML等.下面详细描述了LI ...

  10. VM离线安装Centos 8以及配置

    一.安装 1.预装准备 1.1. 硬件准备 物理内存:2G以上(这里指系统搭建所需占用空间) 物理外存:20G(这里指系统搭建所需占用空间) 1.2. 环境搭建准备 Window10系统电脑一台.Vm ...