CentOS 上常见的 FTP 服务端(如 vsftpd、ProFTPD)是支持 IPv6 的,但是否“能用 IPv6”取决于:
下面分别说明。
vsftpd 支持 IPv6(CentOS 7 / 8 / Stream 均支持)
listen_ipv6=YES
listen=NO
listen_ipv6=YES:监听 IPv6ss -tulnp | grep vsftpd
应能看到:
tcp LISTEN :::21
完整支持 IPv6
DefaultAddress ::
Port 21
或指定 IPv6 地址:
DefaultAddress 2001:db8::1
ip -6 addr
如果没有 inet6 地址,需要先启用 IPv6(修改 /etc/sysctl.conf 或 NetworkManager)。
firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --reload
⚠️ 如果启用 被动模式(PASV),还需放行被动端口范围
| 模式 | IPv6 支持 |
|---|---|
| 主动模式(PORT) | ✅ 支持 |
| 被动模式(PASV) | ✅ 支持 |
| FXP | 依赖客户端/服务端 |
被动模式示例(vsftpd):
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
❌ “CentOS 不支持 FTP IPv6”
✅ 实际是:服务未配置 IPv6 监听
❌ “IPv6 只能用 IPv6 客户端”
✅ 实际:IPv6 socket 通常同时支持 IPv4 客户端
✅ CentOS + vsftpd / ProFTPD 支持 IPv6 FTP
✅ 只需:
如果你用的是 具体 CentOS 版本(7 / 8 / Stream) 或 某个 FTP 软件,我可以给你更精确的配置示例。