一.名词解释
L: 本机(Local Host)
M: 中间主机(Middle Host)
D: 目的主机(Destination Host)
二.实现原理
SecureCrt提供端口转发的功能,可以将发送到某主机的某端口的数据转发到另一个主机的某端口上.也就是说SecureCrt提供了一个数据转发的功能.我们可以利用这个功能,通过中间主机,在本机和原来不可达的目的主机间传送数据,以达到从本机直接登录原本不可达的目的主机的目标(至少看上去是这个效果).
三.SecureCrt设置过程
1.新建连接到M的Session
启动SecureCrt后,单击工具栏的按钮: "Quick Connect",出现"Quick Connect"对话框:
对于"Hostname",输入: M
对于"Username"输入可以登录M的用户名
对于"Username"输入可以登录M的用户名
其他项目按实际情况填写/选择.
勾选"Save session",并单击"Connect".进行第一次到M的连接.
2.更改连接到M的Session属性
首先断开到M的连接,否则无法更改某些属性.
单击"File"->"Connect ...",打开"Connect"对话框,单击已保存的连接到M的Session,然后单击该对话框内工具栏的"Properties"按钮,打开"Session Options"对话框:
单击左边的"Port Forwarding",在右边会显示相应的"Local Port Forwarding"选项.
单击"Add...",打开"Local Port Forwarding Properties"对话框:
在Name选项区:
对于"Name",输入一个唯一的名字,以标识一个Local Port Forwarding配置项目
在Local选项区:
勾选"Manually select local IP address on which to allow connections",对于"IP",输入: 127.0.0.1
对于"Port",输入一个端口号(最好大于1024),这里记为P
对于"Port",输入一个端口号(最好大于1024),这里记为P
在Remote选项区:
勾选"Destination host is different from the SSH server",对于"Hostname",输入: D
对于"Port",输入D上SSH服务器端程序监听的端口号,通常是22
对于"Port",输入D上SSH服务器端程序监听的端口号,通常是22
单击"OK",返回"Session Options"对话框.
重复"Add...",可以添加多个Local Port Forwarding配置项目,以对应多个不同的目的主机.需要注意的是Local选项区的Port必须不同!
单击"OK",保存配置.
3.新建连接到D的Session
过程同"1.新建连接到M的Session",只是下面所列之处不同:
对于"Hostname",输入: 127.0.0.1
对于"Port",输入: P
对于"Username"输入可以登录D的用户名
对于"Port",输入: P
对于"Username"输入可以登录D的用户名
四.直接登录D
首先,单击"File"->"Connect ...",打开"Connect"对话框,单击连接到M的Session,然后单击"Connect",连接到M
然后,单击"File"->"Connect ...",打开"Connect"对话框,单击连接到D的Session,然后单击"Connect",连接到D
此时如果打开一个cmd窗口,执行命令: netstat -na
可以看到2个类似下面的输出条目:
TCP
127.0.0.1:P
0.0.0.0:0
LISTENING
TCP
127.0.0.1:P
127.0.0.1:1244
ESTABLISHED
TCP
也就是说到D的连接(第二个)是通过127.0.0.1:P和到M的连接中转的.