所以我有点困惑。 我们有一堆土壤湿度站,它们通过ftp将数据提交到我们的服务器。我们不能将其更改为sftp或ftps,好老式的ftp:/
我已经重新安装了Ubuntu 18.04。 我还安装了proftpd,并且可以在被动模式和主动模式下通过FileZilla成功连接到服务器。 我已经启用了proftpd的配置中设置的端口21和一个被动端口范围(49152-65534),并在Google VPC防火墙规则中启用了这些端口。
一切似乎都很好..当工作站尝试连接到服务器时,请接受。 我得到一条说明站已连接的注释,但是在尝试以被动模式运行时它将失败。 失败提示是“找不到主机名”
我曾尝试关闭UseReverseDNS
,但这似乎无济于事。
我还应该注意,我们已经设置了Proftpd,并且正在GCP之外进行较旧的VPS设置。使用相同的配置,可以正常工作。
这是尝试连接的站点的完整日志
Re-using existing connection! (#0) with host xx.xx.xx.xx
Connected to xx.xx.xx.xx (xx.xx.xx.xx) port 21 (#0)
Request has same path as previous transfer
PASV^M
Connect data stream passively
ftp_perform ends with SECONDARY: 0
227 Entering Passive Mode (10,152,0,20,232,150).^M
Hostname was NOT found in DNS cache
Trying 10.152.0.20...
Connecting to 10.152.0.20 (xx.xx.xx.xx) port 59542
然后是运行proftpd的服务器上的日志
[05/Jun/2019:06:07:17 +0000] "PASS (hidden)" 230 -
[05/Jun/2019:06:07:17 +0000] "PWD" 257 -
[05/Jun/2019:06:07:17 +0000] "CWD incoming" 250 -
[05/Jun/2019:06:07:17 +0000] "PASV" 227 -
您可以看到它正在连接并且可以切换到正确的目录,但这就是失败的原因。
以前有没有人遇到过这个或类似的东西? 我想知道是否与Google设置主机名的方式有关。
编辑:注意其他vps,端口范围
答案 0 :(得分:2)
好吧,如果有人遇到这个问题,请回答这个问题。
在proftpd.conf
中,我未注释MasqueradeAddress
并将IP地址设置为与服务器的静态IP地址匹配; IE MasqueradeAddress xx.xx.xx.xx
,其中xx.xx.xx.xx
是给定服务器的静态IP。
我还创建了自己的配置,并使用以下内容将其放置在conf.d
中
UseReverseDNS off
IdentLookups off
未禁用UseReverseDNS
和IndentLookups
的情况下,连接超时,并且无法上传的电台。
有兴趣的更多信息
答案 1 :(得分:0)
在被动模式连接建立期间,客户端将使用端口21发起连接。之后,客户端将使用某个范围内的随机端口,服务器将使用该端口发送响应。 您实际上可以在客户端日志中看到尝试连接到端口59542的日志,并且它可能已被服务器丢弃。 我建议检查GCP中是否有特定的防火墙规则,以根据客户端配置打开端口范围。您可以在此处查看此信息:https://slacksite.com/other/ftp.html 另外,我建议检查内部系统防火墙规则。