您的位置:首页 > 运维架构 > Shell

通过ssh开启代理[2]xshell进行端口转发

2014-03-30 09:44 369 查看
工作中经常会遇到类似下面的问题:机房服务器上的某个端口只允许本地访问,如monit的管理端口2812端口,dell服务器的管理端口1311;机房某些服务器没有公网ip地址,只允许通过内网ip连接,如mysql服务器。这些问题有许多解决办法,这里我用xshell通过ssh开启代理的方式教你解决这个问题。


工具/原料

一个ssh账户,可以连接到一台Linux服务器

本地安装xshell(xmanager的一个组件,最新版本是xmanager4)


步骤

ssh远程连接到Linux





打开代理设置面板,点击:view -> Tunneling Pane

在弹出的窗口选择Forwarding Rules









在空白处右键:add。在弹出的Forwarding Rule,按照如图所示进行配置,Type选择“Local(Outgoing)”;Source Host使用默认的localhost;Listen Port添上monit的端口2812;Destination Host使用默认的localhost;Destination Port添上2812;Descripting根据自己需要进行描述,可以留空。配置完成后点击OK会弹出一个对话框,点击是的话会对当前会话进行保存,以后每次连接此ssh会话,开启此端口转发,我只是做演示,选择否。









添加完成后在Forwarding Rules对话框可以看到图中所示的一行转发配置,确保Status的状态是“Open”,如果显示的是“Failed”可能是2812这个本地端口已经被占用了,可以尝试将Listen Port修改为其它端口进行重新设置。





至此,xshell已经将服务器的2812端口映射到本地2812端口,可以通过浏览器访问进行验证,结果如图所示:





参数说明和扩展

在Type选择“Local(Outgoing)”的时候,Source Host表示使用的本地ip地址,可以是localhost也可以是本地内网ip或者公网ip,使用相应的ip便可以被本地网络的用户访问到,比如上例中,如果需要同ip段的同事访问2812的端口管理服务器,便可以设置成他可以访问到的那个ip地址;Destination Host表示服务器端的ip地址,可以是服务器本地的地址localhost或者是服务器可以访问到的一个ip地址,例如服务器同机房的某个ip,或者服务器可以连接公网的话,可以是公网上某台服务器的ip地址。下图中便是我将服务器同机房的另外一台mysql的端口转发到了本地,使本地的应用程序可以访问到这个mysql进行测试,添加完毕后原本因只有一个内网ip无法访问到的机房mysql数据库服务器,便可以像开在我本地的数据库服务器一样进行访问。







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: