温馨提示×

ubuntu filezilla如何解决端口冲突问题

小樊
44
2025-11-16 14:34:04
栏目: 智能运维

Ubuntu 上 FileZilla 端口冲突的定位与解决

一、先判断是客户端还是服务器端冲突

  • 若你是连接远程服务器时出现“端口被占用/无法建立数据连接”,通常是服务器端端口问题;若是本机启动 FileZilla Server 时报错,则是本机端口问题。
  • 快速确认监听端口是否被占用(本机或服务器均可):
    • 查看端口占用:sudo ss -tlpn | grep ‘:21|:22|:14148’
    • 21(FTP 控制)或 22(SFTP/SSH)或 14148(FileZilla Server 默认)已被占用,需更换端口或停用占用者。
  • 若是 SFTP 连接报 Connection refused,优先检查服务器 SSH 服务是否运行、端口是否正确、以及防火墙是否放行。

二、本机运行 FileZilla Server 时的冲突处理(改端口或释放 21)

  • 现象示例:启动日志出现“Failed to create listen socket on port 21 …”,说明 21 被占用。
  • 处理步骤:
    1. 查找并停用占用 21 的进程:
      • 查占用:sudo ss -tlpn | grep ‘:21’
      • 停用示例:sudo systemctl stop vsftpd 或 sudo kill
    2. 修改 FileZilla Server 监听端口:
      • 停止服务:sudo systemctl stop filezilla-server
      • 编辑配置:sudo nano /opt/filezilla-server/etc/settings.xml
      • 找到并修改 <local_port> 值(如改为 14148),保存退出
      • 启动服务:sudo systemctl start filezilla-server
    3. 放行新端口(UFW 示例):sudo ufw allow 14148/tcp
    4. 客户端连接时使用新端口(站点管理器 → 常规 → 端口填写 14148)。

三、连接远程 FTP 时的冲突与被动模式配置

  • 若服务器上已有其他 FTP 服务占用了 21,需停用冲突服务或改用其他端口;客户端在站点管理器 → 常规 → 端口填写服务器实际端口。
  • 被动模式(PASV)端口范围未放行或返回不可路由地址,会导致“读取目录列表失败”等:
    1. 服务器端(FileZilla Server)→ Edit → Settings → Passive mode settings:
      • 勾选“Use custom port range”,如 8000–8020
      • 若服务器在 NAT/内网,选择“Retrieve external IP address from: http://ip.filezilla-project.org/ip.php”
    2. 防火墙放行端口段(UFW 示例):sudo ufw allow 8000:8020/tcp
    3. 路由器/NAT 将 218000–8020 做端口转发(云主机安全组同理)
    4. 客户端保持被动模式即可正常列目录与传输。

四、使用 SFTP 时避免端口冲突的要点

  • SFTP 使用 SSH 的 22 端口,不涉及 FTP 的数据端口;若连接被拒绝:
    • 确认服务器 SSH 服务运行:sudo systemctl status ssh(或 sshd)
    • 未安装则安装:sudo apt update && sudo apt install openssh-server
    • 防火墙放行:sudo ufw allow 22/tcp(或使用 sudo ufw allow ssh)
    • 客户端站点管理器选择协议 SFTP - SSH File Transfer Protocol,端口填 22

五、快速排查清单

  • 明确协议与端口:FTP 默认 21(控制)/数据通道由主动/被动决定;SFTP 固定 22
  • 查占用:sudo ss -tlpn | grep -E ‘:(21|22|14148)’
  • 改端口或停用冲突服务,并在防火墙放行对应端口或端口段。
  • FTP 被动模式需配置端口范围与公网可路由地址;NAT/云主机需做端口转发与安全组放行。
  • SFTP 连不通时,先检查 SSH 服务与防火墙,再核对站点配置。

0