首页 > 解决方案 > 使用被动端口使用 Google Compute Engine 设置 Proftpd?

问题描述

所以我有点困惑。我们有一堆土壤湿度站,它们通过 ftp 向我们的服务器提交数据。我们不能将其更改为 sftp 或 ftps,旧的普通 ftp:/

我已经安装了 Ubuntu 18.04 的全新安装。我还安装了proftpd,我可以在被动和主动模式下通过FileZilla成功连接到服务器。我已启用端口 21 和在 proftpd 的配置中设置的被动端口范围 (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,端口范围

标签: google-compute-engineproftpd

解决方案


好的,如果有人遇到这个问题,那就回答这个问题。

proftpd.conf我取消注释MasqueradeAddress并设置IP地址以匹配服务器的静态IP地址;IEMasqueradeAddress xx.xx.xx.xx哪里xx.xx.xx.xx是给定服务器的静态 IP。

我还创建了自己的配置并将其放入conf.d以下内容

UseReverseDNS off
IdentLookups off

在不禁用的情况下UseReverseDNSIndentLookups连接超时并且无法上传的站点。

如果您有兴趣,请提供更多信息


推荐阅读