FTP无法通过TCP隧道工作

时间:2013-12-11 23:52:00

标签: ftp reverse-proxy

所以我使用以下软件:tcptunnel。这是一个基本上将数据包转发到另一台服务器的简单软件。在这种情况下,我使用受DDoS保护的服务器将数据转发到我未受保护的服务器,因此它不会得到ddosed。

无论如何这里是我的tcptunnel命令,相当标准

/root/tcptunnel/tcptunnel \
--local-port=21 \
--remote-port=21 \
--remote-host=x.x.x.x \
--bind-address=209.141.39.157 \
--fork \
--stay-alive

现在,如果我使用x.x.x.x正常连接到我的FTP服务器,它可以工作,但是当连接受保护的IP时,连接开始并且似乎验证但不显示文件。

感谢任何帮助。

Status: Connecting to 209.141.39.157:21...
Status: Connection established, waiting for welcome message...
Response:   220 Multicraft 1.8.2 FTP server
Command:    USER xxxx
Response:   331 Username ok, send password.
Command:    PASS ********
Response:   230 Login successful
Command:    OPTS UTF8 ON
Response:   200 OK
Status: Connected
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/" is the current directory.
Command:    TYPE I
Response:   200 Type set to: Binary.
Command:    PASV
Response:   227 Entering passive mode (x,x,x,x,96)
Command:    MLSD
Response:   150 File status okay. About to open data connection.
Error:  Connection timed out
Error:  Failed to retrieve directory listing

1 个答案:

答案 0 :(得分:0)

注意FTP协议不是NAT透明的。在你的情况下存在类似的情况。对于retrieve命令,ip地址是原始用户的ip地址。如果您只是将此命令转发到服务器,服务器将尝试将数据直接发送给原始用户,这将失败。

为了完成这项工作,tcptunnel需要了解层协议,并在转发数据之前进行必要的数据包修改。