如何在谷歌云虚拟机启用FTP/SFTP?WordPress更新FTP凭证验证失败
解决WordPress更新FTP凭证无效问题 + Google Cloud VM配置FTP/SFTP服务
先解决你最头疼的WordPress更新问题吧——其实这个问题大概率和FTP密码没关系,核心是文件权限的锅,咱们一步步来:
一、搞定WordPress更新不用FTP的方法
WordPress要你输入FTP凭证,本质是它没有直接修改网站文件的权限。与其纠结FTP密码,不如直接给它权限,省得后续麻烦:
1. 给Web服务器赋予文件所有权
首先得搞清楚你的Web服务器用的是什么用户:
- 如果是Apache,一般是
www-data - 如果是Nginx搭配php-fpm,大概率也是
www-data,少数情况是nginx
然后运行命令修改WordPress目录的所有权(把/path/to/wordpress换成你实际的路径,比如/var/www/html):
sudo chown -R www-data:www-data /path/to/wordpress
2. 设置安全的文件权限
接下来调整文件和目录的权限,保证安全的同时让服务器能读写:
# 给所有目录设置755权限(可读可执行,所有者可写) sudo find /path/to/wordpress -type d -exec chmod 755 {} \; # 给所有文件设置644权限(可读,所有者可写) sudo find /path/to/wordpress -type f -exec chmod 644 {} \;
做完这两步,你再去更新WordPress,应该就不会再弹FTP凭证的窗口了。
3. 要是你非得用FTP?排查这几点
如果你坚持要用FTP更新,那得确认:
- 你用
sudo passwd改的是root用户的密码,但FTP一般用普通用户登录,比如你VM的默认用户(ubuntu/debian),是不是改混了? - FTP服务有没有正常启动?先检查状态:
sudo systemctl status vsftpd(如果装的是vsftpd的话) - Google Cloud防火墙有没有开放FTP的21端口?这个后面讲配置FTP的时候会说。
二、在Google Cloud VM上启用FTP/SFTP服务
这里强烈推荐用SFTP,它基于SSH加密,比传统FTP安全太多,而且配置起来更简单:
1. 启用SFTP(推荐)
Google Cloud VM默认已经开启了SSH服务,SFTP就是SSH的一部分,所以基本不用额外配置:
- 先确认SSH服务在运行:
要是没运行,就启动并设置开机自启:sudo systemctl status sshsudo systemctl start ssh sudo systemctl enable ssh - 然后用SFTP客户端(比如FileZilla)连接:
- 主机填VM的外部IP
- 端口用22
- 用户名是你VM的登录用户(比如ubuntu)
- 密码是你设置的用户密码,或者用SSH密钥(更安全,把你的公钥加到VM的
~/.ssh/authorized_keys里就行)
2. 启用传统FTP(不推荐,仅作参考)
如果必须用传统FTP,咱们用vsftpd来配置:
步骤1:安装vsftpd
先更新包然后安装:
sudo apt update sudo apt install vsftpd
步骤2:配置vsftpd
先备份默认配置,以防改坏了:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
然后编辑配置文件:
sudo nano /etc/vsftpd.conf
找到并修改这些配置项:
# 禁止匿名登录,更安全 anonymous_enable=NO # 允许本地用户登录 local_enable=YES # 允许写入操作(更新文件需要) write_enable=YES # 限制用户只能访问自己的主目录,防止越权 chroot_local_user=YES # 启用被动模式(Google Cloud防火墙需要指定端口范围) pasv_enable=YES pasv_min_port=40000 pasv_max_port=50000
改完按Ctrl+O保存,Ctrl+X退出。
步骤3:重启服务并设置开机自启
sudo systemctl restart vsftpd sudo systemctl enable vsftpd
步骤4:配置Google Cloud防火墙规则
登录Google Cloud控制台,找到你的项目:
- 进入VPC网络 → 防火墙
- 创建新规则:
- 名称:比如
allow-ftp-traffic - 目标:选你的VM实例标签(或者所有实例,按需选择)
- 来源IP范围:填
0.0.0.0/0(或者你指定的IP范围,更安全) - 协议和端口:勾选
TCP,填入21,40000-50000
- 名称:比如
- 保存规则,等几分钟生效。
现在你就能用FTP客户端连接你的VM了。
内容的提问来源于stack exchange,提问作者Odie Ardhia
相关产品推荐
相关产品推荐

