如何通过端口 22 进行基于批处理的 FTP 连接

问题描述 投票:0回答:2

我有这个批处理文件,可以将文件发送到我的 FTP。它可以登录并进行所有操作,但通过错误的端口进行连接。有什么办法可以通过端口 22 进行连接吗? 此 FTP 使用 000webhost

@echo off
CD %userprofile%/desktop
echo user MyUsername> ftpcmd.dat
echo PASSWORDHERE>> ftpcmd.dat
echo put %1>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat files.000webhost.com
del ftpcmd.dat
batch-file ftp
2个回答
0
投票

有关您字面问题的答案,请参阅:
无法使用 Windows 命令行 ftp 连接到非标准端口号


不过,端口 22 用于 SSH/SFTP。这与 FTP 无关,因此您不能使用命令行

ftp

Windows 中没有内置的 SFTP 客户端。您必须使用一些第三方 SFTP 客户端。

为此,请参阅使用 Windows 批处理脚本确保 FTP 安全


-1
投票

还有一种替代方法。 ftp命令有一个子命令open,open子命令支持特定端口,点击这里。因此,您可以将子命令 open 放入 ftpcmd.dat 文件中,并通过此子命令使用特定端口打开与 ftp 服务器的连接。

例如,我在我的网站上做了一个测试,打开ftp连接到ftp服务器172.18.128.122,端口21,它可以工作。

C:\>ftp -d -v -s:test.txt 127.0.0.1   #note, it is not ftp server ip here.
ftp> open 172.18.128.122 21           
Name(172.18.128.122:(none)):
---> USER test
---> PASS test
ftp> put aaa.txt
---> PORT 172,18,128,121,218,69
---> STOR aaa.txt
ftp> quit
---> QUIT

我的 test.txt 文件如下:

open 172.18.128.122 21
test
test
put aaa.txt
quit

所以我认为你的bat文件可以如下所示:

@echo off
CD %userprofile%/desktop
echo open files.000webhost.com 22> ftpcmd.dat
echo user MyUsername>> ftpcmd.dat
echo PASSWORDHERE>> ftpcmd.dat
echo put %1>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat 127.0.0.1
del ftpcmd.dat

希望有帮助,仅供参考。

© www.soinside.com 2019 - 2024. All rights reserved.