Class One. 基于ECS搭建FTP服务

Class One. 基于ECS搭建FTP服务

序言

1. FTP服务简介

​ FTP(File Transfer Protocol)文件传输协议 是TCP/IP协议簇中的协议之一。

2. FTP服务功能

  • 服务端提供文件存储功能
  • 客户端可以使用FTP客户端软件通过FTP协议访问位于FTP服务器上的资源

3. FTP服务端使用端口

  • 20: 主动模式下传输数据的端口

    若为被动模式,具体端口是由服务端和客户端协商决定的。

  • 21: 传输控制信息

4. FTP服务端软件

  • 较为常用的是vsftpd (Very Secure FTP Daemon),可以运行在Unix/Linux等系统上,且开源免费。
  • 本篇使用vsftpd作为服务搭建使用软件

一.阿里云控制台放行安全组

1. 进入对应的安全组

image-20210121165636754

2. 选择所需方向添加规则

ECS训练营创建的资源已经配置了全部放行,这步可以省略,仅供参考

  • 公网入方向: 从公网访问ECS的流量
  • 公网出方向: 从ECS访问公网的流量
  • 入方向: 访问ECS的流量(范围更广)
  • 出方向: ECS访问其他的流量(范围更广)

image-20210121165942815

二.FTP服务端搭建

1. 安装vsftpd

yum install -y vsftpd

2. 启动vsftpd服务

systemctl start vsftpd

3. 开启vsftpd开机自启动

systemctl enable vsftpd

4. 查看vsftpd服务状态

Loaded行后的enbaled表示已启动开机自启

Active行后的状态为 active(running)表示的是正在运行中

Main PID后的数字表示进程号

systemctl status vsftpd
#### 执行命令后的结果如下
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-01-21 16:29:04 CST; 55s ago
 Main PID: 1608 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─1608 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Jan 21 16:29:04 *********************** systemd[1]: Starting Vsftpd ftp daemon...
Jan 21 16:29:04 *********************** systemd[1]: Started Vsftpd ftp daemon.

三. 配置FTP服务端-匿名模式

vsftpd服务端配置文件位于/etc/vsftpd/vsftpd.conf

1. 修改配置文件,启动匿名模式

vim /etc/vsftpd/vsftpd.conf
#修改anon_upload_enable为YES,并取消注释
anon_upload_enable=YES

2. 添加目录写入权限

chmod o+w /var/ftp/pub

3. 重启vsftp服务

systemctl restart vsftpd

四. 配置FTP服务端-用户模式

1. 创建linux用户并设置密码

useradd ftpuser
echo 123456 | passwd --stdin ftpuser

2. 创建FTP服务使用的目录

mkdir /var/ftp/user
chown -R ftpuser:ftpuser /var/ftp/user

3. 修改vsftpd配置文件

以下仅展示主动模式

  • vsftpd支持ipv4或ipv6,但不支持同时监听。如果listen和listen_ipv6都设置为了YES,则会报错500 OOPS: run two copies of vsftpd for IPv4 and IPv6
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf
#关闭匿名模式
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf
#开启ipv4监听
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf
#关闭ipv6监听
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf
#开启用户chroot功能
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
#允许chroot用户写入权限
echo "local_root=/var/ftp/user" >> /etc/vsftpd/vsftpd.conf
#用户登录后的目录

4. 重启vsftpd服务

systemctl restart vsftpd.service

五.验证FTP服务

1. 本地浏览器访问ftp://IP地址

image-20210121170943381

2. 显示登录,表示成功

阿里云高校计划

阿里云高校计划,陪伴两千多所高校在校生云上实践、云上成长。
在这里你可以领用免费的cpu资源,还可以参加免费训练营,实践提高:
https://developer.aliyun.com/adc/student/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
搭建Java的FTP服务器,您可以按照以下步骤进行操作: 1. 在pom.xml文件中添加FTP服务器的依赖和管理版本: ```xml <properties> <ftpserver.version>1.1.1</ftpserver.version> </properties> <dependencies> <dependency> <groupId>org.apache.ftpserver</groupId> <artifactId>ftpserver-core</artifactId> <scope>compile</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.apache.ftpserver</groupId> <artifactId>ftpserver-core</artifactId> <version>${ftpserver.version}</version> </dependency> </dependencies> </dependencyManagement> ``` 2. 编写Java代码来搭建FTP服务器。您可以使用Apache FtpServer来实现: ```java import org.apache.ftpserver.FtpServer; import org.apache.ftpserver.FtpServerFactory; import org.apache.ftpserver.listener.ListenerFactory; import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory; public class FtpServerExample { public static void main(String[] args) throws Exception { FtpServerFactory serverFactory = new FtpServerFactory(); ListenerFactory listenerFactory = new ListenerFactory(); listenerFactory.setPort(21); // 设置FTP服务器的端口号 serverFactory.addListener("default", listenerFactory.createListener()); PropertiesUserManagerFactory userManagerFactory = new PropertiesUserManagerFactory(); userManagerFactory.setFile(new File("users.properties")); // 指定用户属性文件的路径 serverFactory.setUserManager(userManagerFactory.createUserManager()); FtpServer server = serverFactory.createServer(); server.start(); } } ``` 3. 创建一个`users.properties`文件,用于指定FTP服务器的用户和密码。例如: ``` user1=password1,admin user2=password2 ``` 4. 运行Java代码,启动FTP服务器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅浩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值