服务器ftp账号密码怎么查?开篇先把话说透
直接在服务器上“查看”FTP密码明文,绝大多数情况下是做不到的,更准确地说你只能查看FTP账号的用户名,然后通过重置密码的方式来获得新密码。 无论是宝塔面板、WDCP还是纯命令行Linux服务器,密码通常以不可逆的哈希形式存储,系统不会像你登录网站后台那样显示“当前密码是什么”,你现在最需要的是一个清晰的操作思路:先定位账号在哪,再走重置密码流程。
ftp账号密码在哪里查看?分清面板环境和纯命令行环境
很多人一上来就搜“ftp账号密码在哪里查看”,其实你得先搞清楚自己的服务器到底有没有装管理面板,有面板和没面板,操作路径完全是两条线,下面分开细说。
有宝塔面板的服务器怎么查看ftp账号
国内服务器用宝塔面板的比例相当高,操作也最直观,登录宝塔面板后台,左侧菜单找到 FTP 这一项(通常在“文件”和“数据库”之间),点进去你就能看到当前服务器上所有FTP账号的列表,这里能看到的信息包括:
- FTP账号用户名(
user@example.com或者你自定义的名字) - 关联的目录路径(账号能访问到哪个文件夹)
- 端口状态(默认是21,或者你改过的其他端口)
但请注意,密码那一列默认是隐藏的,不会直接展示明文,你不能“查看”密码,只能通过 重置密码 功能来更新,点击对应账号的“重置密码”按钮,选择生成随机密码或者自己手动输入一个新密码,保存后新密码立即生效,如果你用的是较新版本的宝塔面板,重置密码时会要求你输入面板密码或做二次验证,这是安全机制的正常流程。
没有面板的Linux服务器怎么查ftp账号
没有面板的服务器(常见的是CentOS、Ubuntu、Debian),你只能通过SSH登录后查看FTP账号的用户名列表,不同FTP服务程序,账号存放的位置不一样:
- 如果是 vsftpd(用的最多的开源FTP服务),虚拟用户的配置文件通常放在
/etc/vsftpd/目录下,具体是vsftpd.conf里指定的user_config_dir路径,物理系统用户则直接看/etc/passwd文件里有没有对应账号(用或grep ftp /etc/passwd
grep -v nologin /etc/passwd筛选)。 - 如果是 pure-ftpd,账号存储在
pureftpd.passwd文件中,位置一般在/etc/pure-ftpd/pureftpd.passwd或者/usr/local/pureftpd/etc/下,你可以用cat命令查看这个文件,里面会显示用户名和加密后的密码字符串,但同样看不到明文密码。
业内专家指出,在多数生产环境服务器上,FTP密码以hash形式存储已是通用做法,原因很简单:防止任何人通过读取配置文件就能拿到所有账号的登录凭证。
虚拟主机和cPanel面板的ftp账号重置
用虚拟主机而不是独立服务器的用户,通常在cPanel或者主机商的“FTP账户管理”里操作,路径一般是这样:
- 登录cPanel控制面板,找到 FTP 账户 图标
- 在账户列表下方,每个账号旁边都有 更改密码 或 管理 按钮
- 点击后输入新密码两次,确认提交
需要注意:在cPanel里,主FTP账号(一般就是你的cPanel登录名)密码通常和cPanel登录密码关联,单独改FTP密码可能不会生效,需要去“安全”板块改整个账户密码,具体以你所用主机商的控制面板界面为准,但大方向没错。
学会重置Linux服务器ftp密码不依赖面板
如果你的服务器没有面板,也懒得装面板,那直接用命令行重置FTP密码就是唯一路径,下面以最常见的 vsftpd 配合系统用户 和 pure-ftpd 的虚拟用户 两种情况来说。
vsftpd + 系统用户的密码重置
如果你用系统用户登录FTP,那FTP密码就是该用户的系统登录密码,重置命令很简单:
passwd 用户名
执行后,系统会提示你输入两次新密码,输入时屏幕上不会显示任何字符(这是正常的,别以为卡住了),重置完成后,用新密码就可以通过FTP连接服务器。
pure-ftpd 虚拟用户的密码重置
如果服务器用的是 pure-ftpd 且是虚拟用户模式(虚拟用户不能直接SSH登录系统),重置命令稍微特殊一点:
pure-pw passwd 用户名 pure-pw mkdb
第一行命令会提示输入新密码,第二行 pure-pw mkdb 是把修改写入账号数据库文件,这个步骤一定不要漏,漏了等于没改,改完之后最好重启一下pure-ftpd服务让配置完全生效:
service pure-ftpd restart # 或者 systemctl restart pure-ftpd
proftpd 的密码重置参考
老一些的服务器可能在用 proftpd,重置密码的命令是 ftpasswd:
ftpasswd --passwd --name=用户名 --change-password
输入新密码后,再用 --uid 等其他参数更新一下原有记录,如果你不熟悉这个工具,建议直接编辑 proftpd.passwd 文件所在目录(通常在 /usr/local/etc/ 或 /etc/proftpd/),用 ftpasswd 重新生成一行记录替换旧的,操作难度略高,新手还是优先用上面两种方案。
从配置文件查询ftp账号的实用命令清单
最后送上一套常用的账号查询命令,覆盖了多数场景,你照着一条条执行,基本能搞清楚服务器上到底有哪些FTP账号、各自绑定在哪个目录:
- 查看系统用户中可用于FTP登录的账号:
grep -E 'sh|bash' /etc/passwd(筛选出有shell权限的用户,通常是真实FTP账号) - 查看vsftpd配置指向的账号文件路径:
cat /etc/vsftpd/vsftpd.conf | grep -i config - 查看pure-ftpd虚拟用户列表:
cat /etc/pure-ftpd/pureftpd.passwd - 查看所有运行中的FTP服务:
service --status-all | grep ftp或者netstat -tlnp | grep :21
注意,用 cat 查看 pureftpd.passwd 时,你看到的密码字段是经过加密的乱码($6$ 开头的SHA512哈希),无法逆向还原,这属于正常现象,不要觉得是系统出错了,行业共识认为,FTP本身是明文传输协议,密码如果可轻易逆向,风险会被无限放大,哈希存储虽不完美但已是当前所有主流FTP服务端的基础底线。
服务器ftp账号密码常见的高频疑问答疑
宝塔面板ftp密码忘了,不改密码有办法查看吗?
没有办法查看。 宝塔面板即便有root权限,存储的FTP密码也是不可逆的,你唯一能做的就是重置,回到宝塔面板FTP管理页面,点击对应账号的“重置密码”,输入新密码后,用新的密码去连接FTP,虚拟主机用户同理,主机商后台的FTP密码重置功能是唯一的解决途径。
Linux服务器查看ftp账号密码显示command not found是什么情况?
这表示你的FTP服务程序不是默认安装的,先确认一下自己服务器装的是vsftpd、pure-ftpd还是proftpd,可以用 rpm -qa | grep ftp(CentOS、RedHat系)或 dpkg -l | grep ftp(Ubuntu、Debian系)来查,确认服务名后再去对应的配置文件路径查询账号,路径表如下:
| FTP服务程序 | 配置文件路径 | 虚拟账号存储文件 | 重置命令 |
|---|---|---|---|
| vsftpd | /etc/vsftpd/vsftpd.conf | /etc/vsftpd/虚拟用户目录 | passwd 用户名 |
| pure-ftpd | /etc/pure-ftpd/pure-ftpd.conf | /etc/pure-ftpd/pureftpd.passwd | pure-pw passwd && pure-pw mkdb |
| proftpd | /etc/proftpd/proftpd.conf | /usr/local/etc/proftpd.passwd | ftpasswd –change-password |
rpm -qa | grep ftp 完全没输出,说明你的服务器可能根本没装FTP服务,需要先 yum install vsftpd 或 apt install vsftpd 装上再说。
改了ftp密码之后,为什么用新密码还是连不上?
这有两层原因,第一层,FTP客户端的连接缓存在作怪,建议完全退出FileZilla等客户端程序,或者清除“快速连接”记录后重试,第二层,服务器端防火墙或SELinux限制,检查一下服务器安全组(云服务器厂商的控制台页面)是否放行了21端口,以及本地防火墙的状态:
systemctl status firewalld # 看防火墙是否开启 iptables -L -n | grep 21 # 看21端口是否放行 grep -i selinux /etc/selinux/config # 确认SELinux是否enforcing
如果是SELinux导致的连接异常,短期内可临时关闭(改配置为permissive),但不建议永久关闭,安全性会受影响,运维层面更推荐用 setsebool -P allow_ftpd_full_access 1 放行FTP相关功能,你也可以尝试换一个FTP客户端(比如WinSCP)交叉测试,排除本地软件问题。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/723261.html





