SSH隧道管理内部服务(putty,ssh secure shell,SecureCRT)forWINDOWS windows下使用putty和ssh secure shell,SecureCRT的隧道功能映射远程主机的方法
网上有些关于putty和ssh secure shell
如何建立隧道的文章.我觉得写的不清楚.有必
要补充一下概念和如何设置ssh secure shell和putty
概念:隧道就是一种端口映射.他通过中间机器的转发.把远程机器
的端口映射到本地机器的端口上
举个例子
A主机(看着是自己电脑)===可连接(远程管理)====>(外口)B主机(=====能访问=内网====>)C主机
A主机(ADSL)———-(ssh连接)—————–>>B主机(211.200.200.200)—————C主机(192.168.2.254)
A能访问B,B能访问C,但A不能直接访问C.这时可以建立一个隧道.
把C的端口通过B,映射到A的本地端口上去
建立隧道后
A======直接访问c映射端口=========>C
在A主机上的应用程序.只要访问A上的端口.就能连到C的端口.
举个例子
1.通过B.我把C的3306端口映射到A的3306端口.这样我就可以用管理工具访问c主机数据库了
2.通过B.我把C的22端口映射到A的22端口.这样我就可以用SSH工具练到C主机
3.通过B.我把B的防火墙关闭端口和不对外的端口8080映射到A的8080端口
具体设置方法如下
在ssh中.profile->edit profiles->tunneling->add
然后
display.名字.随便打无所谓.你自己知道就行
Type.选tcp或ftp根据你的需要
listen.这个你本地的端口.监听这个端口.把包发送到远程(一般1024以上.选个没用过的就行)
destnation.有两个,1是远程主机地址,2是端口,你希望访问的那个远程机器的信息
例如添加下面:
1.DISPLAY:3306
2.DISPLAY:22
3.DISPLAY:8080
然后save一下.启动这个profile连接到中间节点B主机(这个ssh要一直开着)
现在访问本地3306端口 就是访问C主机的3306端口数据库,
现在访问本地22端口就是访问C主机的22端口的SSHD服务,
现在访问本地8080端口就是访问B主机的8080端口。
现在明白了吗?
下面就是讲putty设置
具体的操作是这样的。
1.运行putty,会出现设置窗口,点击左边的sessions选项(默认)
输入IP地址和端口号(默认为22)
2.选择左边的Connection->SSH->Tunnels选项
在Source port里面输入本地要开启的端口号(选择一个本地未使用的任意端口号)
在Destination里面填入最终要连接的服务器IP和端口号。(例如:我们这里数据库服务器IP为:192.168.2.254,使用的mysql数据库,端口为3306,就要填写:“192.168.2.254:3306”,没有引号。
其他默认就行了。
A主机(看着是自己电脑)===可连接(远程管理)====>(外口)B主机(=====能访问=内网====>)C主机
A主机(ADSL)———-(ssh连接)—————–>>B主机(211.200.200.200)—————C主机(192.168.2.254)
1.通过B.我把C的3306端口映射到A的3306端口.这样我就可以用管理工具访问c主机数据库了
2.通过B.我把C的22端口映射到A的22端口.这样我就可以用SSH工具练到C主机
3.通过B.我把B的防火墙关闭端口和不对外的端口8080映射到A的8080端口
例如:运行putty,会出现设置窗口,点击左边的sessions选项(默认)211.200.200.200端口号:22,
左边的Connection->SSH->Tunnels选项 添加下面三项。
1.Source port(源端口):3306
2.Source port(源端口):22
2.Source port(源端口):8080 Destination(目的):127.0.0.1:8080
用SSH登陆B主机,要一直开着
现在访问本地3306端口 就是访问C主机的3306端口数据库,
现在访问本地22端口就是访问C主机的22端口的SSHD服务,
现在访问本地8080端口就是访问B主机的8080端口。
完成。