nppftp插件需完整安装三个dll文件且架构匹配,sftp连接须端口22/认证正确,禁用本地缓存并手动上传下载,注意权限、路径、编码及无冲突检测风险。

Notepad++ 本身不带 FTP 功能,NppFTP 插件不是“装上就能用”的开箱即用组件——它依赖三类 DLL 文件、要求协议与端口严格匹配服务器实际配置,且默认开启的本地缓存机制会悄悄覆盖你其他终端正在编辑的内容。
怎么确认 NppFTP.dll 及依赖库已正确放入插件目录
新版 Notepad++(v7.9+)移除了内置 FTP,NppFTP 必须手动安装。不能只丢一个 NppFTP.dll 进 plugins 目录就完事:
- 必须从官方 GitHub(https://www.php.cn/link/a1d821389302a894d408d3da13a74fe0)下载完整 zip 包,解压后你会看到
NppFTP.dll、libeay32.dll、ssleay32.dll三个文件 - 这三个文件要全部复制进
plugins目录(路径如C:\Program Files\Notepad++\plugins),缺一个就会在启动时弹出Failed to load plugin: NppFTP.dll - 32 位和 64 位 Notepad++ 必须对应同架构的 DLL;混用会导致插件菜单不出现,或右下角状态栏一直显示
Plugin loading failed - 装完必须彻底关闭所有 Notepad++ 进程(包括托盘图标),再重新打开——仅“重启”可能不生效
为什么选了 SFTP 却连不上,报 Connection refused 或 Authentication failed
绝大多数 Linux 服务器只开放 SSH 服务(即 SFTP),但协议名、端口、认证方式稍有偏差就会失败:
-
Connection refused:基本是端口填错。SFTP默认走 SSH 端口22,不是21;如果服务器改过 SSH 端口(比如2222),这里必须同步改 -
Authentication failed:密码登录时检查用户名是否为系统账号(如www-data、nginx),而非 FTP 虚拟账号;密钥登录时,NppFTP不支持交互式输密码,必须提前用ssh-copy-id把公钥推到服务器,并在 Profile 设置中勾选Use key file,指定私钥路径(如C:\Users\Me\.ssh\id_rsa) - 别选
FTP协议去连现代服务器——明文传输已被主流防火墙和 SSHD 配置默认拒绝,FTPS也极少启用,除非你亲眼见过服务商文档明确写支持
编辑保存后文件没更新到服务器?先关掉这个默认开关
NppFTP 默认启用本地缓存,它会把远程文件下载到临时目录再打开。Ctrl+S 保存时传回去的,是这个缓存副本,不是你当前编辑的实时内容:
- 进入
Settings → Preferences → Backup,取消勾选Remember current session for next launch(避免残留旧连接干扰) - 在
NppFTP面板右键 →Advanced Settings→ 把Cache files locally改成Never - 每次编辑前,右键目标文件 →
Download确保拉取最新版;改完右键 →Upload,别依赖自动同步——尤其当别人也在 vim 里改同一文件时,NppFTP不做冲突检测 - 大文件(>5MB)或弱网环境下上传中断,
NppFTP不回滚,可能留下半截文件;建议先Download到本地备份,再上传
连接成功但左侧文件树为空,或双击打不开文件
这不是插件问题,而是权限或路径越界:
- 普通用户默认只能访问自己 home 目录,
/etc/nginx/conf.d/这类路径需要 root 权限;SSH 配置通常禁止 root 直接登录,所以填root用户名大概率失败 - 连接后右侧面板空白,先右键 →
Change directory,手动输入绝对路径(如/var/www/html),看是否报Permission denied - 路径中含空格或中文,某些旧版
NppFTP会解析失败;尽量用英文路径,或把文件移到~/下再操作 - 编码问题也会导致文件名乱码、无法点击——在
NppFTP连接设置里勾选UTF-8,并确保服务器 locale 是en_US.UTF-8或同源
真正容易被忽略的是:NppFTP 不校验文件修改时间戳,也不做版本比对。你 Ctrl+S 的那一刻,它只管把当前 buffer 写回去,不管这是否覆盖了别人刚提交的 fix。











