如何从现有的 Unix 服务器连接连接到 FTP 服务器?
How to connect to an FTP server from an existing connection to Unix server?
目前我正在使用Reflection for Unix and OpenVMS。我连接到 Unix 服务器。连接后,我与目标服务器建立了一个新的 FTP 连接。这是控制台 window 的样子:
login: xxx
Password : xxx
// Now I'm connected to UNIX
// Next I am connecting to that FTP
ftpLogin@hostName :/whatever/.../ $ ftp someftp.example.com
Conencted
Name: myLogin
Password:
XXX
Login OK
我试图以编程方式复制相同的步骤,但对这个 "double connection" 感到困惑。我只能连接到 Unix,但我不知道如何继续。
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
System.out.println("Establishing Connection...");
session.connect();
现在我已连接到 Unix,我该如何继续这一步 ftpLogin@hostName :/whatever/.../ $ ftp someftp.example.com
?
我想我可能只需要发送一个命令,比如
sftpChannel.setCommand("ftpLogin@hostName :/whatever/.../ $ ftp someftp.example.com ?")
如何从现有 "session/connection" 连接到单独的 FTP?
您通常为此使用 local port forwarding。
在 JSch 中,连接后,调用 setPortForwardingL
:
int ftpPort = session.setPortForwardingL(0, "someftp.example.com", 21);
然后将本地 FTP 客户端(例如 FTPClient
from Apache Commons)连接到 localhost:ftpPort
:
FTPClient ftp = new FTPClient();
ftp.connect("localhost", ftpPort);
ftp.login("myLogin", password);
目前我正在使用Reflection for Unix and OpenVMS。我连接到 Unix 服务器。连接后,我与目标服务器建立了一个新的 FTP 连接。这是控制台 window 的样子:
login: xxx
Password : xxx
// Now I'm connected to UNIX
// Next I am connecting to that FTP
ftpLogin@hostName :/whatever/.../ $ ftp someftp.example.com
Conencted
Name: myLogin
Password:
XXX
Login OK
我试图以编程方式复制相同的步骤,但对这个 "double connection" 感到困惑。我只能连接到 Unix,但我不知道如何继续。
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
System.out.println("Establishing Connection...");
session.connect();
现在我已连接到 Unix,我该如何继续这一步 ftpLogin@hostName :/whatever/.../ $ ftp someftp.example.com
?
我想我可能只需要发送一个命令,比如
sftpChannel.setCommand("ftpLogin@hostName :/whatever/.../ $ ftp someftp.example.com ?")
如何从现有 "session/connection" 连接到单独的 FTP?
您通常为此使用 local port forwarding。
在 JSch 中,连接后,调用 setPortForwardingL
:
int ftpPort = session.setPortForwardingL(0, "someftp.example.com", 21);
然后将本地 FTP 客户端(例如 FTPClient
from Apache Commons)连接到 localhost:ftpPort
:
FTPClient ftp = new FTPClient();
ftp.connect("localhost", ftpPort);
ftp.login("myLogin", password);