如何通过Ubuntu FTP服务器实现文件共享
一、安装vsftpd(Ubuntu默认推荐FTP服务器)
打开终端,依次执行以下命令更新软件包列表并安装vsftpd:
sudo apt update
sudo apt install vsftpd
安装完成后,vsftpd会自动启动;若未启动,可通过sudo systemctl start vsftpd
手动启动,并用sudo systemctl enable vsftpd
设置开机自启。
二、配置vsftpd.conf(核心设置)
编辑vsftpd的主配置文件(需root权限):
sudo nano /etc/vsftpd.conf
修改或添加以下关键配置项(按需调整):
- 基础安全与访问控制:
anonymous_enable=NO
(禁止匿名用户登录,避免未授权访问);
local_enable=YES
(允许本地系统用户登录FTP);
write_enable=YES
(允许用户上传、删除文件);
chroot_local_user=YES
(将用户限制在自己的主目录,防止越权访问服务器其他文件);
allow_writeable_chroot=YES
(允许chroot目录可写,解决“chroot目录不可写”的报错)。 - 被动模式设置(可选,解决客户端连接问题):
pasv_enable=YES
(启用被动模式,适用于NAT或防火墙环境);
pasv_min_port=10000
(设置被动模式最小端口);
pasv_max_port=10100
(设置被动模式最大端口,需与防火墙规则匹配)。
修改完成后,按Ctrl+O
保存文件,Ctrl+X
退出编辑器。
三、创建专用FTP用户并设置权限
为避免使用root账户登录FTP(存在安全风险),建议创建专用用户:
sudo adduser ftpuser
按照提示设置密码(建议使用强密码)及其他信息(如姓名、电话等,可跳过)。
设置用户主目录权限(确保用户对其主目录有读写权限):
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
(注:若需更严格的权限控制,可将用户添加到ftp
组,并通过/etc/vsftpd.chroot_list
文件管理允许访问的用户列表。
四、配置防火墙(允许FTP流量通过)
若服务器启用了UFW防火墙(Ubuntu默认防火墙),需开放FTP相关端口:
sudo ufw allow 21/tcp # FTP控制端口(默认21)
sudo ufw allow 10000:10100/tcp # 被动模式端口范围(需与vsftpd.conf中的设置一致)
sudo ufw reload # 重新加载防火墙规则,使更改生效
(注:若使用iptables防火墙,可执行sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
等命令开放端口。
五、测试FTP连接
使用FTP客户端(如FileZilla、WinSCP或终端命令ftp
)连接服务器:
- 主机:输入服务器IP地址(如
192.168.1.100
); - 用户名:
ftpuser
(步骤三创建的用户); - 密码:步骤三设置的密码;
- 端口:
21
(默认FTP端口,若修改了vsftpd.conf中的listen_port
,需填写对应端口)。
连接成功后,尝试上传(如从本地复制文件到FTP服务器)、下载(如从FTP服务器复制文件到本地)及删除文件,验证功能是否正常。
六、增强安全性(可选但推荐)
- 启用FTPS(FTP over SSL/TLS):
生成SSL证书(如使用Let’s Encrypt免费证书),编辑vsftpd.conf添加:
重启vsftpd服务:ssl_enable=YES rsa_cert_file=/etc/ssl/private/vsftpd.crt rsa_private_key_file=/etc/ssl/private/vsftpd.key
sudo systemctl restart vsftpd
。 - 限制特定IP访问:
在vsftpd.conf中添加allow_writeable_chroot=YES
,并创建/etc/vsftpd.chroot_list
文件,写入允许访问的IP地址(每行一个),设置chroot_list_enable=YES
。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何通过Ubuntu FTP服务器实现文件共享
本文地址: https://pptw.com/jishu/731743.html