CentOS系统下FileZilla端口设置实用指南
一、先确认你的使用场景
- 使用场景通常分为两类:在 CentOS 上作为客户端连接远程 FTP/SFTP 服务器;或在 CentOS 上部署 FTP 服务器(常见为 vsftpd,或 Windows 上的 FileZilla Server 通过端口映射/内网穿透)。不同场景的端口设置方法不同,请按下述对应操作。
二、作为客户端连接时的端口设置(Site Manager)
- 打开 FileZilla,进入【文件】→【站点管理器】→【新建站点】。
- 协议选择:
- FTP:默认控制端口为21;若服务器要求加密,选择FTP over TLS(FTPS)。
- SFTP:默认端口为22(基于 SSH,不是 FTP)。
- 端口填写:
- 一般保持空白即为协议默认端口(FTP 为21,SFTP 为22)。
- 如服务器管理员指定了自定义端口(例如2121),在“端口”栏填写该数值。
- 登录类型与凭据:选择“正常”,填写用户名与密码;如需密钥登录(SFTP),在“密钥文件”中选择私钥。
- 模式选择:
- 被动模式(PASV)通常无需额外端口设置即可使用;如出现“无法建立数据连接”,可与服务器确认被动端口范围并在防火墙放行,或临时改用主动模式测试。
- 主动模式(PORT)由客户端发起数据连接,需确保客户端侧防火墙允许出站连接到服务器的20/TCP数据端口。
- 示例(SFTP 自定义端口):协议选 SFTP,主机填服务器 IP,端口填22或管理员指定的端口,登录类型“正常”,填写用户名与密码/密钥后连接。
三、作为服务器部署时的端口设置(vsftpd 示例)
- 安装与基础:
- 安装:sudo yum install -y vsftpd
- 启动与开机自启:sudo systemctl start vsftpd && sudo systemctl enable vsftpd
- 配置被动模式端口范围(关键):
- 编辑配置文件:sudo vi /etc/vsftpd/vsftpd.conf
- 启用并限定被动端口范围(示例为30000–30999):
- pasv_enable=YES
- pasv_min_port=30000
- pasv_max_port=30999
- 如服务器位于 NAT/云环境,建议设置公网出口 IP(部分环境需要):pasv_address=你的公网IP
- 保存后重启:sudo systemctl restart vsftpd
- 防火墙放行(firewalld):
- 放行控制端口与被动端口范围:
- sudo firewall-cmd --permanent --add-port=21/tcp
- sudo firewall-cmd --permanent --add-port=30000-30999/tcp
- sudo firewall-cmd --reload
- 如使用云服务器,还需在安全组中同样放行上述端口范围。
- SELinux(如启用):
- 如出现“553 Could not create file”等权限类报错,可临时测试:sudo setenforce 0
- 更优做法:按需开启布尔值,例如 sudo setsebool -P allow_ftpd_full_access on 与 sudo setsebool -P ftp_home_dir on
- 主动模式补充:
- vsftpd 默认启用主动模式(port_enable=YES),数据通道使用20/TCP;若使用主动模式,请确保服务器侧防火墙允许20/TCP出站/入站策略符合你的网络拓扑。
四、常见问题与快速排查
- 能登录但列目录超时/传输失败(常见于 PASV):
- 服务器端未限定或未放行被动端口范围;按上文在 vsftpd.conf 设置 pasv_min_port/pasv_max_port,并在防火墙/安全组放行相同范围。
- 客户端在 NAT/内网,服务器返回内网 IP;在服务器配置 pasv_address=公网IP,或在客户端强制使用主动模式测试。
- 使用 SFTP 却连不上:
- 确认协议选择为SFTP且端口为22(或管理员自定义端口),不是 FTP/FTPS。
- 云服务器端口不通:
- 除了系统防火墙,务必在云安全组放行对应端口(控制端口与被动端口范围)。