所以我使用以下软件: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
答案 0 :(得分:0)
注意FTP协议不是NAT透明的。在你的情况下存在类似的情况。对于retrieve命令,ip地址是原始用户的ip地址。如果您只是将此命令转发到服务器,服务器将尝试将数据直接发送给原始用户,这将失败。
为了完成这项工作,tcptunnel需要了解层协议,并在转发数据之前进行必要的数据包修改。