🗣 Wd提问: vps如何安装ftp
🤖 Ai回答: 以下是 VPS 安装 FTP 服务(vsftpd)的详细步骤,适用于主流 Linux 系统(Ubuntu/CentOS)。强烈建议优先使用 SFTP(基于 SSH)替代 FTP,因为 FTP 传输明文密码和数据,安全性极低。若必须使用 FTP,请严格按以下步骤操作,并注意安全风险。
⚠️ 重要提醒
FTP 不安全:密码和数据以明文传输,易被窃听。强烈建议使用 SFTP(SSH 文件传输协议),它基于 SSH 加密,无需额外安装服务(只需启用 SSH 的 SFTP 功能)。
若仍需 FTP,请确保:
仅用于内网或临时传输。
为 FTP 用户设置强密码。
配置防火墙限制访问 IP(如仅允许你的 IP)。
✅ 方法 1:安装 vsftpd(传统 FTP 服务)
📌 环境准备
系统:Ubuntu 20.04+ / CentOS 7/8
权限:`root` 或 `sudo` 用户
云服务商安全组:需提前在控制台开放 `21/tcp` 和 `40000-50000/tcp` 端口(被动模式端口)。
🔧 步骤 1:安装 vsftpd
Ubuntu
bash
sudo apt update
sudo apt install vsftpd -y
CentOS
bash
sudo yum install vsftpd -y
CentOS 8 可能需启用 EPEL 源
sudo yum install epel-release -y
sudo yum install vsftpd -y
🔧 步骤 2:配置 vsftpd
1、备份默认配置
bash
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
2、编辑配置文件
bash
sudo nano /etc/vsftpd.conf
修改以下关键参数(删除 `` 注释并调整值):
ini
禁用匿名访问
anonymous_enable=NO
允许本地用户登录
local_enable=YES
允许写入(上传/删除)
write_enable=YES
用户被限制在自己的主目录(chroot)
chroot_local_user=YES
allow_writeable_chroot=YES 允许 chroot 目录可写(否则需单独设置子目录权限)
被动模式配置(关键!)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
pasv_address=你的VPS公网IP 必须替换为实际公网IP(如 1.2.3.4)
其他必要设置
listen=YES
listen_ipv6=NO 如果 VPS 只有 IPv4,设为 NO
💡 `pasv_address` 说明:
如果 VPS 有公网 IP(如阿里云/腾讯云),必须填写公网 IP。
如何获取公网 IP?
bash
curl ifconfig.me
3、保存并退出(`Ctrl+O` → `Enter` → `Ctrl+X`)
🔧 步骤 3:创建 FTP 用户并设置权限
1、创建新用户(例如 `ftpuser`)
bash
sudo adduser ftpuser 按提示设置密码
2、设置目录权限
bash
创建上传目录(主目录不能直接写入,需子目录)
sudo mkdir /home/ftpuser/upload
sudo chown ftpuser:ftpuser /home/ftpuser/upload
sudo chmod 755 /home/ftpuser 主目录权限(不可写)
sudo chmod 775 /home/ftpuser/upload 上传目录权限(可写)
✅ 权限说明:
主目录 `/home/ftpuser`:`755`(所有者可读/执行,其他用户只读/执行)
上传目录 `/home/ftpuser/upload`:`775`(所有者和组可读/写/执行,其他用户只读/执行)
3、(可选)限制用户只能访问 FTP 目录
bash
将用户 shell 设为 /sbin/nologin(禁止 SSH 登录)
sudo usermod -s /sbin/nologin ftpuser
🔧 步骤 4:配置防火墙
Ubuntu(使用 ufw)
bash
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw reload
CentOS(使用 firewalld)
bash
sudo firewall-cmd permanent add-port=21/tcp
sudo firewall-cmd permanent add-port=40000-50000/tcp
sudo firewall-cmd reload
SELinux(仅 CentOS 需要)
bash
允许 FTP 服务访问所有目录
sudo setsebool -P ftpd_full_access on
或针对特定目录(更安全)
sudo semanage fcontext -a -t public_content_rw_t /home/ftpuser/upload(/.*)?
sudo restorecon -Rv /home/ftpuser/upload
🔧 步骤 5:启动服务并测试
bash
启动 vsftpd 并设置开机自启
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
检查状态
systemctl status vsftpd
测试连接
1、使用 FileZilla 客户端(推荐):
主机:`你的VPS公网IP`
用户名:`ftpuser`
密码:`你设置的密码`
端口:`21`
协议:`FTP 文件传输协议`
传输模式:被动模式(PASV)
2、命令行测试(Linux/Mac):
bash
ftp 你的VPS公网IP
用户名: ftpuser
密码: 你的密码
🚨 常见问题解决
| 问题现象 | 解决方案 |
|
| 连接失败 | 检查云服务商安全组是否开放 `21` 和 `40000-50000` 端口 |
| 550 Permission denied | 检查目录权限:主目录 `755`,上传目录 `775`,且所有者为 FTP 用户 |
| 被动模式无法连接 | 确认 `pasv_address` 设置为公网 IP,且防火墙开放了被动端口范围 |
| 无法上传文件 | 检查 `write_enable=YES` 和 `allow_writeable_chroot=YES` 是否生效 |
🔒 强烈推荐:改用 SFTP(更安全!)
无需安装额外服务,直接使用 SSH 的 SFTP 功能(加密传输,密码安全):
bash
1、确保 SSH 已运行(默认已安装)
sudo systemctl status sshd
2、创建用户(同 FTP 用户)
sudo adduser sftpuser
3、限制用户只能 SFTP(禁止 SSH 登录)
sudo usermod -s /usr/sbin/nologin sftpuser
4、配置 SSH(/etc/ssh/sshd_config)
sudo nano /etc/ssh/sshd_config
添加以下内容:
ini
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
⚠️ 注意:`ChrootDirectory` 的父目录必须是 `root:root` 且权限 `755`,子目录需为用户所有。
重启 SSH:
bash
sudo systemctl restart sshd
连接方式:
客户端(如 FileZilla)使用 `SFTP` 协议,端口 `22`,用户名/密码同 SSH。
💡 总结
优先使用 SFTP:无需额外配置,安全性高,适合所有场景。
仅在必要时用 FTP:严格配置防火墙、端口、目录权限,并避免在公网暴露 FTP 服务。
安全建议:
定期更新系统和软件。
使用密钥认证代替密码(SSH/SFTP)。
限制访问 IP(如只允许你的家庭/办公 IP)。
如果仍有问题,请提供具体错误信息,我会帮你进一步排查!
📣 商家广告:





0
IP地址: 250.79.155.28
搜索次数: 0
提问时间: 2025-11-07 20:47:17
🛒 域名购买:
8xg.net
wy.gs
ff.biz
ww.js.cn
lache.com.cn
jjxs.cn
kaosou.com.cn
815.red
yxxg.cn
xhkt.net
❓️ 热门提问:
dns分运营商解析
top 域名注册
远程服务器访问
网站推广短视频脚本
一般的台式主机
国外 动态 ip
idc-p
apc模块化机房
外贸VPS主机售后服务租用指南
香港云主机互联
豌豆Ai站群搜索引擎系统
🌐 域名评估:
sf.jl.cn
y.qh.cn
ll.sd.cn
gozc.cn
uyyc.cn
bwwc.cn
musk.biz
CDs.com.cn
evtol.fund
htmu.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
サーチエンジンツール
软件开发定制
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。