应选FTP-Sync插件对接宝塔FTP服务:因宝塔默认启用FTP(端口21),非SFTP;配置需填对host(公网IP/域名)、remotePath(绝对路径,如/www/wwwroot/site.com)、username/password(与宝塔FTP账号完全一致),并确保项目以Open Folder方式加载。

VSCode 本身不提供“一键部署”功能,所谓一键,本质是靠插件 + 正确配置 + 自动化触发实现的。FTP-Sync 和 SFTP 插件都能做到保存即上传,但选哪个、怎么配、为什么连不上,得看你的服务器环境和安全要求。
选 FTP-Sync 还是 SFTP 插件?看宝塔面板的 FTP 服务类型
宝塔面板默认开启的是 FTP 服务(端口 21),不是 SFTP(SSH 的子协议,走 22 端口)。如果你没手动开启 SSH 或配置过密钥登录,直接填 sftp.json 里 "protocol": "sftp" 一定会报错 Connection refused 或 Authentication failed。
- 用宝塔自带 FTP(推荐新手):装
FTP-Sync,协议填ftp,端口填21,用户名密码就是你在宝塔「FTP」页面创建的那个账号 - 已启用 SSH 且想更安全:装
SFTP插件(liximomo 或 Natizyskunk 版),"protocol": "sftp","port": 22,优先用"privateKeyPath"而非明文"password" - 别混用:
FTP-Sync不支持 SFTP 协议;SFTP插件虽然名字叫 SFTP,但也能配 FTP(需手动加"protocol": "ftp"),但实际稳定性差,不建议
ftp-sync.json 或 sftp.json 必须填对的三项
90% 的连接失败,都卡在这三个字段写错或理解偏差:
-
"host":必须是服务器公网 IP 或可解析的域名,不是localhost或内网地址(除非你在服务器本机开 VSCode) -
"remotePath":必须是绝对路径,且以/开头,例如宝塔默认网站根目录是"/www/wwwroot/your-site.com",不是"www/wwwroot/..."或"./www/wwwroot/..." -
"username"和"password":必须和宝塔「FTP」页面里显示的完全一致,注意大小写、特殊字符。如果密码含@或/,插件可能解析失败,建议换简单密码临时测试
uploadOnSave 开了却没同步?检查这三处
保存文件后没自动上传,不是插件坏了,大概率是以下某个地方被忽略:
- 项目没在 VSCode 里“打开文件夹”:必须用
File → Open Folder打开本地项目根目录,否则插件找不到.vscode/下的配置文件 -
"uploadOnSave": true是布尔值,不是字符串 —— 写成"uploadOnSave": "true"会静默失效 - 文件被
"ignore"列表匹配了:比如你改的是package-lock.json,但"ignore"里写了"*.lock",它就不会上传。临时注释掉整个"ignore"段测试最直接
同步后服务器上文件权限不对或 500 错误?重点看 remotePath 和用户归属
上传成功不代表能运行。宝塔下常见问题是:文件属主变成 www 用户,但 FTP 账号属于 root 或其他用户,导致 PHP 无法读取,Nginx 报 500。
- 在宝塔「FTP」页面创建账号时,务必勾选“限制访问目录”,并指定到你的网站根目录(如
/www/wwwroot/your-site.com) - 上传后进宝塔「文件」管理器,右键查看文件属性,确认所有文件属主是
www(不是root或 FTP 用户名)。如果不是,手动批量修改属主 - 不要把
"remotePath"设为"/"或"/www"这种高权限路径,否则上传的文件可能归属错误,且存在安全隐患
真正麻烦的从来不是配置本身,而是你改了配置却没重启 VSCode,或者以为连上了其实只是缓存了旧连接状态。每次调不通,先删掉 .vscode/ 下的配置文件,重跑 ftp-sync:Init 或 SFTP: Config,从空白开始——比修修补补快得多。











