我有一个在 AWS EC2 实例中运行的 Web 服务器(CentOS Web Panel)。
我正在将定制应用程序连接到使用 MySQL 和 FTP 连接的服务器。
我在连接 FTP 服务器(PureFTP)时遇到了问题。
我可以使用 Filezilla 连接到 FTP 服务器而没有任何错误 - 尽管我收到一条警告消息:
"Server sent passive reply with unroutable address. Using server address instead"
。
现在,当我使用定制应用程序(使用固定为被动模式的 Chilkat FTP 模块)连接时,它只是挂在连接上。
查看系统日志我看到以下消息:
Feb 13 12:26:23 hosting kernel: nf_ct_ftp: dropping packet: partial matching of `227 ' IN= OUT= SRC=172.31.9.153 DST=51.219.52.115 LEN=65 TOS=0x10 PREC=0x00 TTL=64 ID=11556 DF PROTO=TCP SPT=21 DPT=33158 SEQ=512403447 ACK=2693072523 WINDOW=421 RES=0x00 ACK PSH FIN URGP=0 OPT (0101050AA085068AA085068B)
172.31.9.153 是 AWS 本地 IP,51.219.52.115 是运行定制应用程序的本地机器 IP。
我的 pureftp 配置如下:
ChrootEveryone:yes
BrokenClientsCompatibility:no
MaxClientsNumber:50
Daemonize:yes
MaxClientsPerIP:8
VerboseLog:no
DisplayDotFiles:yes
AnonymousOnly:no
NoAnonymous:no
SyslogFacility:ftp
DontResolve:yes
MaxIdleTime:15
PureDB:/etc/pure-ftpd/pureftpd.pdb
PAMAuthentication:yes
UnixAuthentication:yes
LimitRecursion:10000 8
AnonymousCanCreateDirs:no
MaxLoad:4
PassivePortRange:30000 35000
AntiWarez:yes
Umask:133:022
MinUID:1000
UseFtpUsers:no
AllowUserFXP:no
AllowAnonymousFXP:no
ProhibitDotFilesWrite:no
ProhibitDotFilesRead:no
AutoRename:no
AnonymousCantUpload:yes
AltLog:clf:/var/log/pureftpd.log
MaxDiskUsage:99
CustomerProof:yes
我已经在 AWS 以及 CSF 防火墙中打开了端口 30000 35000(并尝试禁用防火墙)。
有人能解释这些奇怪的错误或发现我设置错误的任何东西吗?
答案1
发现问题,pure-ftp 使用本地 NAT IP 地址而不是服务器的公共 IP 地址进行响应。
我需要设置选项:
强制被动IP 54.194.63.112
这没有出现在 CWP 设置中,所以我不得不手动将其编辑到文件中
/etc/pure-ftpd/pure-ftpd.conf
。
一旦输入此信息并重新启动 ftp 服务,一切都开始正常工作。