FTP 服务器 运行 通过 NAT 在端口 2000 上无法在被动模式下工作
FTP server running on Port 2000 over NAT not working on Passive Mode
我是 运行 FILE-Zilla ftp 服务器 windows 中的一台 LAN pc 连接到我的路由器。我正在尝试通过添加端口转发规则 使用 Router WAN ip (WAN-to-LAN) 从路由器外部的网络访问 FTP 服务器](NAT) 在路由器中。根据以下配置,我这里有 2 个案例。 1 正在工作 并且 2 不是(在被动模式下)。
Note: i have added the custom inbound rule in the windows 7 firewall
where the ftp server is running.
配置 #1
Filezilla FTP server port: 21
Passive port range: 50000-51000
NAT - external port: 21
NAT - internal port: 21
Windows firewall inboud rule port allow port: 21, 50000-51000
Client connecting to: <Wan IP>:21
如果客户端尝试使用 Active/Passive 模式
进行连接,则此方法有效
配置#2
Filezilla FTP server port: 2000
Passive port range: 50000-51000
NAT - external port: 21
NAT - internal port: 2000
Windows firewall inboud rule port allow port: 2000, 50000-51000
Client connecting to: <Wan IP>:21
这仅在客户端设置为 活动模式 时有效。
不使用被动模式 客户端配置。客户端可以连接并且登录成功,但在服务器端以这样的错误消息结尾,没有任何目录列表。
227 Entering Passive Mode (192,168,1,2,195,85)
Note: both the case working in LAN-LAN network.
我的猜测是,配置 #1 之所以有效,是因为 NAT 足够智能,可以转换来自服务器的 PASV
响应中的 IP 地址。但它可能只对标准 FTP 端口这样做。
您应该告诉 FileZilla FTP 服务器它的外部 IP 地址。转到 编辑 > 设置 > 被动模式设置 > IPv4 特定 > 被动模式传输的外部服务器 IP 地址。
目前您的 FTP 服务器正在向客户端发送其内部 IP 地址。而且客户端显然无法连接到IP地址。
并让 NAT 转发被动端口范围 (50000-51000) 中的端口。
尽管更改会中断 LAN-LAN 连接。要同时允许 LAN 和 WAN 连接,请检查 NAT 是否也可以配置为转换非标准端口的 IP 地址。尽管翻译无论如何都只能用于未加密的连接。而且你不应该使用未加密的连接!
如果您的客户允许,最后一个选项是使用扩展被动模式 (EPSV
)。在扩展被动模式下,响应中没有 IP 地址。 FTP 客户端使用 FTP 服务器的主 IP 地址进行数据连接。
我是 运行 FILE-Zilla ftp 服务器 windows 中的一台 LAN pc 连接到我的路由器。我正在尝试通过添加端口转发规则 使用 Router WAN ip (WAN-to-LAN) 从路由器外部的网络访问 FTP 服务器](NAT) 在路由器中。根据以下配置,我这里有 2 个案例。 1 正在工作 并且 2 不是(在被动模式下)。
Note: i have added the custom inbound rule in the windows 7 firewall where the ftp server is running.
配置 #1
Filezilla FTP server port: 21
Passive port range: 50000-51000
NAT - external port: 21
NAT - internal port: 21
Windows firewall inboud rule port allow port: 21, 50000-51000
Client connecting to: <Wan IP>:21
如果客户端尝试使用 Active/Passive 模式
进行连接,则此方法有效配置#2
Filezilla FTP server port: 2000
Passive port range: 50000-51000
NAT - external port: 21
NAT - internal port: 2000
Windows firewall inboud rule port allow port: 2000, 50000-51000
Client connecting to: <Wan IP>:21
这仅在客户端设置为 活动模式 时有效。 不使用被动模式 客户端配置。客户端可以连接并且登录成功,但在服务器端以这样的错误消息结尾,没有任何目录列表。
227 Entering Passive Mode (192,168,1,2,195,85)
Note: both the case working in LAN-LAN network.
我的猜测是,配置 #1 之所以有效,是因为 NAT 足够智能,可以转换来自服务器的 PASV
响应中的 IP 地址。但它可能只对标准 FTP 端口这样做。
您应该告诉 FileZilla FTP 服务器它的外部 IP 地址。转到 编辑 > 设置 > 被动模式设置 > IPv4 特定 > 被动模式传输的外部服务器 IP 地址。
目前您的 FTP 服务器正在向客户端发送其内部 IP 地址。而且客户端显然无法连接到IP地址。
并让 NAT 转发被动端口范围 (50000-51000) 中的端口。
尽管更改会中断 LAN-LAN 连接。要同时允许 LAN 和 WAN 连接,请检查 NAT 是否也可以配置为转换非标准端口的 IP 地址。尽管翻译无论如何都只能用于未加密的连接。而且你不应该使用未加密的连接!
如果您的客户允许,最后一个选项是使用扩展被动模式 (EPSV
)。在扩展被动模式下,响应中没有 IP 地址。 FTP 客户端使用 FTP 服务器的主 IP 地址进行数据连接。