在云服务器上打开ftp服务-踩坑及心得

我们产生这个需求的原因是因为打算搭建一个博客,选择了使用wordpress框架。然后,在安装插件的过程中,需要使用FTP服务进行操作。于是,我们决定搞清楚这个过程,并在其中遇到的困难进行记录。

一、安装vsftpd

# 安装
sudo apt-get install vsftpd

# 设置开机自启
systemctl enable vsftpd

# 启动ftp服务
systemctl start vsftpd

# 查看ftp状态
sudo service vsftpd status

如果看到下面的状态,说明启动成功

● vsftpd.service - vsftpd FTP server
     Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2023-10-02 18:59:13 CST; 15min ago
    Process: 1178111 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS)
   Main PID: 1178112 (vsftpd)
      Tasks: 3 (limit: 3942)
     Memory: 1.8M
        CPU: 202ms
     CGroup: /system.slice/vsftpd.service
             ├─1178112 /usr/sbin/vsftpd /etc/vsftpd.conf
             ├─1181349 /usr/sbin/vsftpd /etc/vsftpd.conf
             └─1181351 /usr/sbin/vsftpd /etc/vsftpd.conf

Oct 02 18:59:13 VM-24-9-ubuntu systemd[1]: Starting vsftpd FTP server...
Oct 02 18:59:13 VM-24-9-ubuntu systemd[1]: Started vsftpd FTP server.

主要看状态,Active: active (running) 代表正在运行。

二、创建ftp用户,并给权限

# 创建用户,此时系统自动创建了用户组ftpuser
useradd ftpuser

# 设置用户密码
passwd ftpuser

# 创建ftp文件夹
mkdir /home/ftpuser

# 给ftp文件夹权限
chown -R ftpuser:ftpuser /home/ftpuser

# 这里要想要方便省事的话,但是不推荐这么做
# chmod -R 777 /home/ftpuser

三、配置vsftpd

打开 vsftpd.conf 文件

sudo vim /etc/vsftpd.conf

改为以下配置

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
listen=YES

local_root=/var/ftp/test
allow_writeable_chroot=YES
pasv_enable=YES            # 这里选择被动模式
pasv_address=xxx.xx.xxx.xx # 修改云服务器公网 IP
pasv_min_port=40000        # 被动模式需要的开放端口
pasv_max_port=40005

执行以下命令,创建并编辑 chroot_list 文件。

vim /etc/vsftpd/chroot_list

将需要ftp权限的用户添加进去,一行一个

保存退出后重启服务

systemctl restart vsftpd

四、开放端口

这里是我踩得坑,明明都一切正常就是不行,最后发现没有开放端口,这里的端口不仅是服务器中的ufw端口,还有云服务器本身的端口。

首先我们打开ufw也就是linux本身的防火墙

sudo ufw allow 21/tcp

由于我们在被动模式使用了40000-40005号端口,我们也需要打开

sudo ufw allow 40000/tcp
sudo ufw allow 40001/tcp
sudo ufw allow 40002/tcp
sudo ufw allow 40003/tcp
sudo ufw allow 40004/tcp
sudo ufw allow 40005/tcp

其次我们需要再云服务器的安全策略中打开这些端口

在云服务器上打开ftp服务-踩坑及心得_第1张图片

五、测试

可以看到已经可以连接,如果可以连接,但是无法显示文件大概率是权限或者端口开放问题

在云服务器上打开ftp服务-踩坑及心得_第2张图片

六、参考

腾讯云的教程 https://cloud.tencent.com/document/product/213/10912

vsftp文档 https://wiki.ubuntu.org.cn/Vsftpd

你可能感兴趣的:(开发工具,服务器,数据库,postgresql)