• windows环境下如何优雅搭建ftp服务?


    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    5.启动FTPServer

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

    service install
    ftpd.bat res/conf/ftpd-typical.xml
    
    • 1
    • 2

    注意:由于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
    
    • 1
    • 2
    • 可以把启动命令制作成bat文件,内容为:
    d:
    cd D:\apache-ftpserver-1.0.5\bin
    ftpd.bat res/conf/ftpd-typical.xml
    
    • 1
    • 2
    • 3

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

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

  • 相关阅读:
    【java基础-实战2】数组拷贝的几种实现方式
    1.3自然语言的分布式表示-word2vec
    对可再生能源和微电网集成研究的新控制技术和保护算法进行基线和测试及静态、时域和频率分析研究(Matlab代码实现)
    1.2 数据模型
    streamlit学习-如何播放HLS视频(streamlit嵌入html)
    Python计算器(包含机制转换)
    文心一言 VS 讯飞星火 VS chatgpt (109)-- 算法导论10.1 7题
    Kubernetes kustomize 技术从入门到企业实战(下)
    Elasticsearch如何创建索引,添加,删除,更新文档
    本地存储localStorage及商品管理系统
  • 原文地址:https://blog.csdn.net/rong0913/article/details/125629456