我的知识记录

21端口提示被占用?云服务器FTP服务冲突如何排查和解决?

在云服务器上安装或启动FTP服务时,可能会遇到“21端口被占用”的提示。这通常意味着该端口已经被其他程序占用,导致FTP服务无法正常运行。以下是常见的原因及解决方法。

常见原因与排查建议

问题类型 可能原因 排查方法与建议
FTP服务重复启动 已有vsftpd或proftpd等服务正在运行 使用命令 systemctl status vsftpd 查看状态
其他程序占用了21端口 如Nginx、Apache或其他自定义服务绑定了21端口 使用 `netstat -tuln
宝塔面板已内置FTP服务 宝塔安装的Pure-FTPD占用了21端口 登录宝塔 → 软件商店 → 检查Pure-FTPD是否启用
系统残留进程 上次未正确关闭FTP服务 使用 `ps aux

解决思路

  1. 查看21端口占用情况
    
     
    bash
    netstat -tuln | grep 21
    示例输出:
    
     
     
    tcp6 0 0 :::21 :::* LISTEN
  2. 查找占用21端口的进程ID(PID)
    
     
    bash
    lsof -i :21
    或使用:
    
     
    bash
    ps -ef | grep $(lsof -t -i:21)
  3. 停止冲突的服务
    • 如果是vsftpd:
      
       
      bash
      systemctl stop vsftpd
    • 如果是宝塔的Pure-FTPD: 登录宝塔面板 → 软件商店 → 找到 Pure-FTPD → 停止服务
  4. 手动终止进程(谨慎操作)
    
     
    bash
    kill -9 PID
    将 PID 替换为实际进程编号。
  5. 检查是否设置了开机自启
    
     
    bash
    systemctl list-unit-files | grep ftp
    如需禁止开机启动:
    
     
    bash
    systemctl disable vsftpd
  6. 更换FTP端口(可选)
    • 如果不想关闭原有服务,可以修改FTP配置文件,将监听端口改为如 2121
    • 配置文件位置:/etc/vsftpd/vsftpd.conf
    • 修改后重启服务:
      
       
      bash
      systemctl restart vsftpd
  7. 确认云平台安全组放行新端口
    • 如果更改了FTP端口,请登录云服务器控制台(如阿里云、腾讯云);
    • 在安全组中添加对应端口(如2121)的入站规则。

总结

当提示“21端口被占用”时,通常是由于已有FTP服务或其他程序占用了该端口。建议通过 netstat 和 lsof 命令查找占用进程,并根据实际情况选择停止冲突服务、更换端口或清理残留进程等方式解决问题。如果是使用宝塔面板,还需检查其自带的FTP服务是否开启。处理完成后,记得更新防火墙或安全组规则以确保新配置生效。
 

标签:21端口被占用-FTP服务冲突-云服务器端口管理-vsftpd冲突-宝塔FTP配置异常

更新时间:2025-05-15 21:27:01

上一篇:宝塔系统升级后服务器无法访问、网站打不开?如何排查和恢复?

下一篇:刚设置了SSL,一直显示“重定向次数过多”?如何排查和解决?