基于ECS搭建FTP服务

本文档详细介绍了如何在ECS(Elastic Compute Service)服务器上搭建FTP服务,包括安装vsftpd,设置开机自启动,创建用户,配置目录权限,修改vsftpd.conf文件,处理启动失败的问题,以及最终成功启动和验证FTP服务的过程。
摘要由CSDN通过智能技术生成

基于ECS搭建FTP服务

1. 远程连接ECS服务器

在这里插入图片描述

2.运行以下命令安装vsftpd。

yum install -y vsftpd

Install 1 Package

Total download size: 172 k Installed size: 353 k Downloading packages:
vsftpd-3.0.2-27.el7.x86_64.rpm |
172 kB 00:00:00 Running transaction check Running transaction
test Transaction test succeeded Running transaction Warning: RPMDB
altered outside of yum. Installing : vsftpd-3.0.2-27.el7.x86_64
1/1 Verifying : vsftpd-3.0.2-27.el7.x86_64
1/1

Installed: vsftpd.x86_64 0:3.0.2-27.el7

Complete!

3.运行以下命令设置FTP服务开机自启动。

systemctl enable vsftpd.service

Created symlink from
/etc/systemd/system/multi-user.target.wants/vsftpd.service to
/usr/lib/systemd/system/vsftpd.service.

4.启动FTP服务。

运行以下命令查看FTP服务监听的端口。

systemctl start vsftpd.service
netstat -antup | grep ftp

tcp6 0 0 :::21
LISTEN 1417/vsftpd

5.为FTP服务创建一个Linux用户。

[root@iZuf6dkalb4kt74jqcmupdZ ~]# adduser geqian
[root@iZuf6dkalb4kt74jqcmupdZ ~]# passwd geqian Changing password for
 user geqian. New password:  Retype new password:  passwd: all
 authentication tokens updated successfully.

6. 创建一个供FTP服务使用的文件目录。

mkdir /var/ftp/test

7. 更改/var/ftp/test目录的拥有者为ftptest

[root@iZuf6dkalb4kt74jqcmupdZ ~]# chown -R ftptest:ftptest /var/ftp/test
chown: invalid user: ‘ftptest:ftptest’

8.修改vsftpd.conf配置文件

sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器 
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #监听IPv4 sockets 
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #关闭监听IPv6 sockets 
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部用户被限制在主目录 
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #启用例外用户名单 
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外用户列表文件,列表中的用户不被锁定在主目录 
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf 
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #设置本地用户登录后所在的目录


sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器 
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #监听IPv4 sockets 
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #关闭监听IPv6 sockets 
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部用户被限制在主目录 
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #启用例外用户名单 
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外用户列表文件,列表中的用户不被锁定在主目录 
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf 
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #设置本地用户登录后所在的目录 

echo "pasv_enable=YES" >> /etc/vsftpd/vsftpd.conf #开启被动模式 
echo "pasv_address=<FTP服务器公网IP地址>" >> /etc/vsftpd/vsftpd.conf #本教程中为ECS服务器弹性IP 
echo "pasv_min_port=20" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最小值 
echo "pasv_max_port=21" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最大值

9./etc/vsftpd目录下创建chroot_list文件,并在文件中写入例外用户名单。

mkdir /etc/vsftpd/chroot_list

10.重启FTP服务

systemctl restart vsftpd.service

11.检查FTP是否启动

systemctl status vsftpd.service

● vsftpd.service - Vsftpd ftp daemon Loaded: loaded
(/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset:
disabled) Active: failed (Result: exit-code) since Thu 2020-09-24
22:19:41 CST; 3s ago Process: 1490 ExecStart=/usr/sbin/vsftpd
/etc/vsftpd/vsftpd.conf (code=exited, status=2) Main PID: 1451
(code=killed, signal=TERM)

Sep 24 22:19:41 iZuf6dkalb4kt74jqcmupdZ systemd[1]: Starting Vsftpd
ftp daemon… Sep 24 22:19:41 iZuf6dkalb4kt74jqcmupdZ vsftpd[1490]:
500 OOPS: unrecognised variable in config file: sed -i
's/anonymous_enable Sep 24 22:19:41 iZuf6dkalb4kt74jqcmupdZ
systemd[1]: vsftpd.service: control process exited, code=exited
status=2 Sep 24 22:19:41 iZuf6dkalb4kt74jqcmupdZ systemd[1]: Failed to
start Vsftpd ftp daemon. Sep 24 22:19:41 iZuf6dkalb4kt74jqcmupdZ
systemd[1]: Unit vsftpd.service entered failed state. Sep 24 22:19:41
iZuf6dkalb4kt74jqcmupdZ systemd[1]: vsftpd.service failed.

1.检查端口是否被占用

netstat -tlunp

Active Internet connections (only servers) Proto Recv-Q Send-Q Local
Address Foreign Address State PID/Progra tcp
0 0 0.0.0.0:22 0.0.0.0:* LISTEN
981/sshd udp 0 0 127.0.0.1:323 0.0.0.0:*
549/chrony udp 0 0 0.0.0.0:68 0.0.0.0:*
781/dhclie udp6 0 0 ::1:323 ::😗
549/chrony

2.查看配置文件

grep -v "#" /etc/vsftpd/vsftpd.conf

anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022
dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES
xferlog_std_format=YES listen=NO listen_ipv6=YES

pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES

echo “allow_writeable_chroot=YES” >> /etc/vsftpd/vsftpd.conf

echo “allow_writeable_chroot=YES” >> /etc/vsftpd/vsftpd.conf

果然,配置文件写错了

修改配置文件并重启

[root@iZuf6b9d11wlslfktk222xZ ~]# vi /etc/vsftpd/vsftpd.conf 
[root@iZuf6b9d11wlslfktk222xZ ~]# systemctl restart vsftpd.service
[root@iZuf6b9d11wlslfktk222xZ ~]# systemctl status vsftpd.service

● vsftpd.service - Vsftpd ftp daemon Loaded: loaded
(/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset:
disabled) Active: active (running) since Thu 2020-09-24 22:51:17
CST; 4s ago Process: 1492 ExecStart=/usr/sbin/vsftpd
/etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS) Main PID:
1493 (vsftpd) CGroup: /system.slice/vsftpd.service
└─1493 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Sep 24 22:51:17 iZuf6b9d11wlslfktk222xZ systemd[1]: Starting Vsftpd
ftp daemon… Sep 24 22:51:17 iZuf6b9d11wlslfktk222xZ systemd[1]:
Started Vsftpd ftp daemon.

查看浏览器端

ftp://<公网ip>:21

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值