使用云服务器搭建私有文件共享系统,可以实现异地、高速、便捷的共享文件。
可以如同使用,可以实时传输的,U盘一样操作文件。并且部署成本低(几十块钱/月),难度小。以下是具体指南。
公网FTP文件共享系统搭建指南
本文为个人为开发团队搭建FPS系统过程的记录。力争做到如果你和我使用同样的环境,则可完全按照本指南完成部署。
结合自身情况,综合成本(主要是成本考虑)与后期拓展性考虑,我选择的是 阿里云 ESC 服务器。这个服务器 免费试用3个月,后期继续租用费用也低。
服务器信息
服务商:阿里云
型号:1核(vCPU) 2 GiB
系统:Ubuntu 22.04 64位 UEFI版
云盘:高效云盘 40GiB (2120 IOPS)(系统盘)
在服务器上部署FPS服务
主要参看 阿里云-轻量应用-搭建FTP服务器 指南,在ESC服务器上部署vsftpd(very secure FTP daemon)服务。
由于使用的是不通操作系统,少部分命令不适用,特做出修改和补充。
PS. vsftpd 是Linux操作系统下的一款小巧轻快、安全易用的FTP服务器软件。
前提条件
已创建 阿里云 ESC 服务器 使用Ubuntu 22.04 64位 UEFI版系统。
步骤一 安装与启动vsftpd
-
远程连接Linux服务器。
登录ESC服务器控制台,选择远程连接,
-
执行以下命令,查看轻量服务器是否已安装vsftpd。
部分使用应用镜像部署的轻量应用服务器已经预安装了vsftpd,如果再次安装可能会出现冲突。
vsftpd -v
如果回显信息类似如下所示,表示当前轻量应用服务器已经安装了vsftpd,您无需再次安装,您可以跳过本步骤
[admin@************ ~]$ vsftpd -v vsftpd: version 3.0.2
-
运行以下命令,安装vsftpd。
运行以下命令安装vsftpd
apt-get install vsftpd
看到vsftpd版本号,表示vsftpd安装成功。
很可能会出现如下报错:
Unable to locate package vsftpd
Unable to locate package XXX报错解决:
-
更新sources.list源
使用命令
vim /etc/apt/sources.list
打开sources.list,并添加如下国内下载源贴两个国内下载源,更多请见:CSDN Ubuntu更换源
-
清华源ubuntu清华源选择对应系统版本查看源地址
-
网易源
-
deb http://mirrors.163.com/ubuntu/ wily main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ wily-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ wily-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ wily-proposed main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ wily-backports main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ wily main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ wily-security main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ wily-updates main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ wily-proposed main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ wily-backports main restricted universe multiverse
编辑完后更新缓存
sudo apt-get update
-
-
更新apt
- 依次执行如下命令
sudo apt-get update sudo apt-get upgrade
-
彻底解决 原文连接
-
检查包名是不是写错了
-
更新存储库缓存
sudo apt-get update
-
检查该软件包是否适用于您的 Ubuntu 版本
查看本系统版本
lsb_release -a
例如输出abhishek@itsfoss:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.3 LTS ##看这里,看这里! Release: 18.04 Codename: bionic
请带着这个消息前往 https://packages.ubuntu.com/?ref=itsfoss.com 查找你需要的软件包(Keyword)是否在 系统版本(Distribution)的Universe 存储库中可用
-
-
-
运行以下命令,设置FTP服务开机自启动。
sudo systemctl enable vsftpd.service
-
运行以下命令,启动FTP服务。
sudo systemctl start vsftpd.service
说明
如果出现无法启动FTP,且提示错误信息
Job for vsftpd.service failed because the control process exited with error code
,请排查是否存在21端口被占用问题。- 使用
lsof -i:21
命令,查看是否存在进程。 - 如果存在进程,使用
kill -9 <进程号>
命令,杀掉进程。
- 使用
-
运行以下命令,查看FTP服务的端口号。
sudo netstat -antup | grep ftp
可查看到FTP服务的端口号,表示服务已正常启动。
步骤二 设置FTP服务器的访问模式
您可以选择以下任一方式设置FTP服务器,建议您使用更加安全的本地用户模式。
本地用户模式
您可以选择以下任一方式设置FTP服务器,建议您使用更加安全的本地用户模式。
本地用户模式(推荐) 匿名访问模式 参见
-
运行以下命令为FTP服务创建一个Linux用户。
本示例中,该用户名为
ftptest
。sudo adduser ftptest
-
运行以下命令修改
ftptest
用户的密码。sudo passwd ftptest
运行命令后,根据命令行提示完成FTP用户的密码修改。
-
运行以下命令创建一个供FTP服务使用的文件目录。
sudo mkdir /var/ftp/test
-
运行以下命令更改/var/ftp/test目录的拥有者为
ftptest
。sudo chown -R ftptest:ftptest /var/ftp/test
-
修改vsftpd.conf配置文件。
-
运行以下命令,修改配置文件/etc/vsftpd.conf。
如果您在安装vsftpd时,使用的是其他安装命令,则配置文件路径为/etc/vsftpd/vsftpd.conf。
sudo vim /etc/vsftpd.conf
-
按i进入编辑模式。
-
配置FTP服务器为被动模式。
具体的配置参数说明如下,除下面提及的参数,其他参数保持默认值即可。
重要
复制以下参数,然后粘贴至Linux服务器的配置文件时,请注意参数不要被
#
号注释掉。同时,请注意格式问题。例如,添加多余的空格会造成无法重启服务的结果。修改下列参数的值:
#禁止匿名登录FTP服务器。 anonymous_enable=NO #允许本地用户登录FTP服务器。 local_enable=YES #监听IPv4 sockets。 listen=YES
在行首添加#注释掉以下参数,关闭监听IPv6 sockets:
#listen_ipv6=YES
在配置文件的末尾添加下列参数,其中
pasv_address
参数需要替换为轻量应用服务器的公网IP地址:#设置本地用户登录后所在目录。 local_root=/var/ftp/test #全部用户被限制在主目录。 chroot_local_user=YES #启用例外用户名单。 chroot_list_enable=YES #指定例外用户列表文件,列表中用户不被锁定在主目录。 chroot_list_file=/etc/vsftpd/chroot_list #开启被动模式。 pasv_enable=YES allow_writeable_chroot=YES #本示例中为轻量应用服务器的公网IP地址。 pasv_address=39.105.xx.xx #设置被动模式下,建立数据传输可使用的端口范围的最小值。 #建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。 pasv_min_port=50000 #设置被动模式下,建立数据传输可使用的端口范围的最大值。 pasv_max_port=50010
以上为阿里云源文档,我照搬了并进行了以下其他设置
#不允许下载 download_enable=NO #开启下载上传日志 dual_log_enable=YES vsftpd_log_file=/var/log/vsftpd.log #注意这下面这部分需要更改上文而非添加 #新建文件权限,一般设置为022,那么新建后的文件的权限就是777-002=775 local_umask=002 #允许写操作 write_enable=YES
更多参数的详细信息,请参见vsftp配置文件及参数说明。
- 按Esc退出编辑模式,然后输入
:wq
并回车,保存退出文件。
-
-
创建chroot_list文件,并在文件中写入例外用户名单。
-
运行以下命令,创建chroot_list文件。
sudo vim /etc/vsftpd/chroot_list
-
按i进入编辑模式。
-
输入例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。
没有外用户也需要完成创建
-
按Esc退出编辑模式,然后输入
:wq
并回车,保存退出文件。
-
-
修改配置文件
将
/etc/ssh/sshd_config
文件尾行参数PasswordAuthentication的值改为
yes -
运行以下命令,重启FTP服务。
sudo systemctl restart vsftpd.service
步骤三:配置安全策略/防火墙
搭建好FTP站点后,在Linux服务器的防火墙中,需要放行下列FTP端口。ECS服务为修改安全组
被动模式需开放21端口,以及配置文件/etc/vsftpd.conf中参数pasv_min_port
和pasv_max_port
之间的所有端口。配置详情如下表所示。
应用类型 | 协议 | 端口范围 |
---|---|---|
FTP | TCP | 21 |
自定义 | TCP | pasv_min_port/pasv_max_port 。例如:50000/50010 |
步骤五:通过FTP客户端测试连接FTP服务器
-
下载并 打开FileZilla客户端。
-
在顶部菜单栏,选择****文件** > *站点管理器***。
-
在站点管理器对话框的左下角,单击新站点。
-
输入新站点的名称,并完成站点配置。
协议:FTP
主机:服务器公网IP地址
登录类型:正常
用户密码即为 创建的Linux用户的信息单击连接。
连接成功后,您可以对文件进行上传、下载和删除等操作。
windows11 系统 FPS共享文件夹创建
演示环境:Windows 11
step 1 “添加一个网络位置”
打开资源管理器,选中 “此电脑” 右键惠后选择 “显示更多选项”
在弹出选项卡中选择 “添加一个网络位置”[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
step 2 网络位置
在“添加网络位置向导”中添入对应信息
!注意:取消勾选 “匿名登陆”
我是Paddy。接下来将持续为大家带来高质量的知识分享。期待得到批评指正与交流讨论。
我的文章会首先发布于知乎,期待您的关注