首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HaProxy 1.5.8到FTP服务器

HaProxy 1.5.8到FTP服务器
EN

Unix & Linux用户
提问于 2017-06-12 15:11:55
回答 2查看 2.7K关注 0票数 2

我已经在这几次,并已完全陷入配置这一点。目前,我已经为FTP服务器设置了以下内容:

本地PC (My MAC) -> AWS EC2 (HaProxy) -> FTP服务器

以下是我迄今所做的几件事:

  1. 已确认的20/21港口在安全小组中开放
  2. 在SGs中配置TCP端口是打开的(用于被动端口)。
  3. 通过netstat确认打开了适当的端口(作为正常检查,我得到了HaProxy绑定到0-65535 TCP端口(SGs也是一样)。
  4. 在尝试通过代理连接到FTP服务器时运行TCPDump

这是我的haproxy.cfg的副本

代码语言:javascript
运行
复制
listen FTP :21, :10000-10250
        mode tcp
        log 127.0.0.1 local0 debug info warning error
        bind *:21
        bind *:20
        server foo xx.xx.xx.xx:21 check port 21

当我运行tcpdump时,我得到:

代码语言:javascript
运行
复制
10:54:11.695983 IP 10.33.x.x.56374 > ec2-54-234-x-x.compute-1.amazonaws.com.ftp: Flags [P.], seq 45:51, ack 684, win 16384, options [nop,nop,TS val 652929632 ecr 148377527], length 6: FTP: EPSV
10:54:11.726462 IP ec2-54-234-x-x.compute-1.amazonaws.com.ftp > 10.33.x.x.56374: Flags [P.], seq 684:726, ack 51, win 227, options [nop,nop,TS val 148377680 ecr 652929632], length 42: FTP: 229 Extended Passive mode OK (|||12612|)
10:54:11.726513 IP 10.33.x.x.56374 > ec2-54-234-x-x.compute-1.amazonaws.com.ftp: Flags [.], ack 726, win 16378, options [nop,nop,TS val 652929662 ecr 148377680], length 0
10:55:27.134823 IP 10.33.x.x.56374 > ec2-54-234-x-x.compute-1.amazonaws.com.ftp: Flags [P.], seq 51:80, ack 726, win 16384, options [nop,nop,TS val 653004663 ecr 148377680], length 29: FTP: EPRT |1|10.33.x.x|56397|
10:55:27.165241 IP ec2-54-234-x-x.compute-1.amazonaws.com.ftp > 10.33.x.x.56374: Flags [P.], seq 726:798, ack 80, win 227, options [nop,nop,TS val 148396540 ecr 653004663], length 72: FTP: 500 I won't open a connection to 50.232.x.x (only to 54.234.x.x)
10:55:27.165287 IP 10.33.x.x.56374 > ec2-54-234-x-x.compute-1.amazonaws.com.ftp: Flags [.], ack 798, win 16375, options [nop,nop,TS val 653004693 ecr 148396540], length 0
10:55:27.165377 IP 10.33.x.x.56374 > ec2-54-234-x-x.compute-1.amazonaws.com.ftp: Flags [P.], seq 80:106, ack 798, win 16384, options [nop,nop,TS val 653004693 ecr 148396540], length 26: FTP: PORT 10,33,x,x,220,77
10:55:27.194982 IP ec2-54-234-x-x.compute-1.amazonaws.com.ftp > 10.33.x.x.56374: Flags [P.], seq 798:870, ack 106, win 227, options [nop,nop,TS val 148396547 ecr 653004693], length 72: FTP: 500 I won't open a connection to 50.232.x.x (only to 54.234.x.x)
10:55:27.195025 IP 10.33.x.x.56374 > ec2-54-234-x-x.compute-1.amazonaws.com.ftp: Flags [.], ack 870, win 16375, options [nop,nop,TS val 653004722 ecr 148396547], length 0
10:55:27.195304 IP 10.33.x.x.56374 > ec2-54-234-x-x.compute-1.amazonaws.com.ftp: Flags [P.], seq 106:112, ack 870, win 16384, options [nop,nop,TS val 653004722 ecr 148396547], length 6: FTP: LIST
10:55:27.224432 IP ec2-54-234-x-x.compute-1.amazonaws.com.ftp > 10.33.x.x.56374: Flags [P.], seq 870:894, ack 112, win 227, options [nop,nop,TS val 148396555 ecr 653004722], length 24: FTP: 425 No data connection
10:55:27.224464 IP 10.33.x.x.56374 > ec2-54-234-x-x.compute-1.amazonaws.com.ftp: Flags [.], ack 894, win 16381, options [nop,nop,TS val 653004751 ecr 148396555], length 0

我在HaProxy上配置了日志记录,目前有这样的功能(不确定这是否有用):

代码语言:javascript
运行
复制
Jun 12 14:49:25 localhost haproxy[18805]: 50.232.x.x:14857 [12/Jun/2017:14:48:24.811] FTP FTP/media 1/14/60772 792 -- 0/0/0/0/0 0/0
Jun 12 14:49:25 localhost haproxy[18805]: 50.232.x.x:14857 [12/Jun/2017:14:48:24.811] FTP FTP/media 1/14/60772 792 -- 0/0/0/0/0 0/0
Jun 12 14:51:48 localhost haproxy[18805]: 50.232.x.x:56254 [12/Jun/2017:14:49:41.820] FTP FTP/media 1/13/127012 960 -- 0/0/0/0/0 0/0
Jun 12 14:51:48 localhost haproxy[18805]: 50.232.x.x:56254 [12/Jun/2017:14:49:41.820] FTP FTP/media 1/13/127012 960 -- 0/0/0/0/0 0/0
Jun 12 14:52:02 localhost haproxy[18805]: 50.232.x.x:56342 [12/Jun/2017:14:51:54.618] FTP FTP/media 1/14/7670 401 -- 1/1/1/1/0 0/0
Jun 12 14:52:02 localhost haproxy[18805]: 50.232.x.x:56342 [12/Jun/2017:14:51:54.618] FTP FTP/media 1/14/7670 401 -- 1/1/1/1/0 0/0
Jun 12 14:53:36 localhost haproxy[18805]: 50.232.x.x:56345 [12/Jun/2017:14:51:59.386] FTP FTP/media 1/19/97481 1032 -- 0/0/0/0/0 0/0
Jun 12 14:53:36 localhost haproxy[18805]: 50.232.x.x:56345 [12/Jun/2017:14:51:59.386] FTP FTP/media 1/19/97481 1032 -- 0/0/0/0/0 0/0
Jun 12 14:53:59 localhost haproxy[18805]: 50.232.x.x:56373 [12/Jun/2017:14:53:37.880] FTP FTP/media 1/14/21641 333 -- 0/0/0/0/0 0/0
Jun 12 14:53:59 localhost haproxy[18805]: 50.232.x.x:56373 [12/Jun/2017:14:53:37.880] FTP FTP/media 1/14/21641 333 -- 0/0/0/0/0 0/0

我可以连接到FTP服务器和cd到目录。不过,我不能跑到那儿去。当我尝试被动模式时,我得到:

代码语言:javascript
运行
复制
ftp> ls
229 Extended Passive mode OK (|||12612|)
ftp: Can't connect to `54.234.x.x': Operation timed out
500 I won't open a connection to 50.232.x.x (only to 54.234.x.x)
425 No data connection

在活动模式下运行:

代码语言:javascript
运行
复制
Passive mode: off; fallback to active mode: off.
ftp> ls
500 I won't open a connection to 50.232.x.x (only to 54.234.x.x)
425 No data connection

我不认为这是一个问题,特别是FTP服务器,因为我可以通过代理连接到它。即使我直接连接到FTP服务器,也可以在主动和被动模式下运行命令。我的问题是:

  • 我还能查到什么才能进一步解决这个问题呢?
  • 是否还有任何进一步的日志记录配置可以增强对任何类型的TCP请求的日志记录,而不是我目前的情况?
  • 在HaProxy中是否缺少一些配置方面的内容(我知道HaProxy本质上是一个HTTP负载均衡器,但我查阅了足够多的示例,其中我可以将其配置为用作FTP服务器的代理,并且不能重新配置要作为SFTP运行的HaProxy服务器)?
EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2017-06-12 18:30:02

在与我的同事就此事进行了大量研究和调查之后,这就是正在发生的情况:

  • HaProxy可能是一个可行的解决方案。但是,FTP服务器被配置为强制被动模式。HaProxy可以用来代理FTP连接,但是没有真正的方法来配置它来相应地对被动连接作出反应。因此,我无法运行ls/get/put (可能还有更多)命令!

我的解决方案是转到ftp代理并配置它。一旦我将FTP代理配置为将流量路由到FTP服务器(同时将其配置为侦听被动连接),VIOLA!成功了!!

票数 2
EN

Unix & Linux用户

发布于 2017-06-28 05:15:14

我也试图做同样的事情,但ls命令失败了。下面是我在HA代理中配置的内容。听一听xmldb 10.204.24.71:2100服务器xmldb1 10.212.22.31:2100检查20-S服务器xmldb2 10.212.22.36:2100

10.212.22.36和10.212.22.31是正在运行ftp服务器的DB服务器。它们只能从运行HA代理的10.204.24.71服务器上到达。

现在,我从其他linux机器连接,这些机器无法到达DB服务器,但可以到达HA代理服务器。

我需要更多的配置才能让它正常工作吗?

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/370691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档