解决FTP“服务器回应不可路由的地址。使用服务器地址替代”错误

文章讲述了在搭建FileZillaServerFTP服务器时,遇到内网穿透环境下被动模式端口映射问题,服务器错误地将地址指向127.0.0.1,而非预期的公网地址。解决方法是取消FileZillaServer的某个推荐选项,以确保正确处理内网穿透请求。
摘要由CSDN通过智能技术生成

问题背景

我们使用FileZilla Server搭建FTP服务器。我们在服务器上监听了21端口作为服务器FTP端口。我们还选择了端口范围49123-49124作为被动模式端口,因为我们想让客户端全部以被动模式连接。
服务端口
服务端口

被动模式端口范围
被动模式端口范围

由于我们的服务器不暴露在公网上,我们使用FRP进行内网穿透。配置信息被记录在frpc.ini中,内容如下。

[common]
server_addr = someone.net
server_port = 7000
token = passowrd
local_ip = 192.168.1.185

[ftpsrvport]
type = tcp
local_port = 21
remote_port = 21212

[pasvport1]
type = tcp
local_port = 49123
remote_port = 49123

[pasvport2]
type = tcp
local_port = 49124
remote_port = 49124

预期出现的行为

客户端连接someone.net:21212以进行FTP命令交互。服务端向客户端发送被动模式连接地址和端口someone.net:49123someone.net:49124,以告诉客户端到何处连接来传输FTP数据。接着,客户端主动连接被告知的地址和端口。

实际出现的行为

尽管已经在FileZilla Server中配置在被动模式时告诉客户端去连接someone.net:49123-49124作为FTP的数据传输端口,服务器仍然告诉客户端去连接127.0.0.1:49123-49124,导致客户端无法传输数据。而在使用FileZilla Client时,FileZilla Client也只是在意识到服务器给出的地址不可用后智能地自行决定用服务器的公网地址替换127.0.0.1才得以连接成功。
FileZilla Client信息输出
FileZilla Client信息输出

原因

内网穿透的来访请求会全部变为127.0.0.1来访。FileZilla Server默认私自决定对于这些非公网来访请求,都不再将被动模式地址替换为我们指定的公网地址。
内网穿透后,所有的来访请求都会变成来自127.0.0.1
内网穿透后,所有来访请求都会变成来自127.0.0.1

解决方案

取消这个私自决定。
取消勾选推荐选项
取消勾选推荐选项

结论背景

尽管在解决后,这个问题的原因显得非常幼稚,但是网络上有无数人遇到这个问题却不知道如何解决。人们给出的对该问题的回答通常模棱两可,例如“检查防火墙配置”或“可能是由于你的服务器(或路由器)配置不正确”。很显然,只有在网路配置不正确的情况下,才会出现问题。这是无意义的虚词。

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值