FTP隧道在Windows PC上使用netsh命令到VMS FTP服务器


1

我试图使用netsh命令来帮助设置FTP“隧道”。

netsh interface portproxy add v4tov4 listenport=21 listenaddress=0.0.0.0 connectport=21 connectaddress=ftpserver

如果我在机器A上设置隧道,这似乎很有效。如果我去机器B和ftp到机器A,我确实得到了ftpserver的登录。但是,当我尝试发出任何命令时,我会收到错误

425-无法为x.x.x.x构建数据连接,64009 425连接到网络对象被拒绝

我认为问题是返回的连接卡在机器A上,因为它只转发端口21而不是端口64009.我已经设置机器A将端口64009转发回机器B,它确实进一步下线但是超时后;

150打开主机的数据连接:[FOLDERA]。; *(x.x.x.x,64009)

我这样做是错误的吗?或者有人可以提供建议。

基本上我试图从不同网络上的机器B访问ftp服务器,但机器A在两个网络上(两个网卡)

我也尝试使用端口21转发端口20,因为我相信这在FTP过程中使用,但这没有帮助

Answers:


0

仅转发端口21是不够的。即使在被动模式下,FTP服务器也为数据通道提供了其他动态端口:

PASV
227 Entering Passive Mode (194,105,148,53,120,164)

最后两个字节(在这种情况下为120和164)表示双字节端口号中的较高和较低字节(120 * 256 + 164 = 30 884)。此数字取自FTP服务器特定的某个范围。为了使客户端连接到数据通道,您必须转发所有范围的动态FTP服务器端口。

不幸 netsh 实用程序没有为端口范围添加转发规则的语法,您只能逐个添加端口。

因此,你有选择:

  1. 添加FTP动态端口范围的转发规则。您可以根据需要生成包含多行的批处理文件,以便为范围内的每个端口添加规则。
  2. 为此目的使用其他东西。几乎每个硬件路由器都具有此类功能。
  3. 使用Unix / Linux机器作为路由器和设置 iptables

我试过这个似乎没有工作.. code 230用户已登录.ftp> dir 500 Illegal PORT命令。 425-无法为x.x.x.x构建数据连接,59122 425连接到网络对象被拒绝ftp> quot pasv 227进入被动模式(x.x.x.x,215,157)ftp> DIR code 然后就像它在等待
Cormac O'Donnell

你是对的。改写了答案。
greatvovan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.