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

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

工具/原料

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

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

步骤

  1. ssh远程连接到Linux

    通过ssh开启代理[2]xshell进行端口转发
  2. 打开代理设置面板,点击:view -> Tunneling Pane

    在弹出的窗口选择Forwarding Rules

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

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

    通过ssh开启代理[2]xshell进行端口转发
  5. 至此,xshell已经将服务器的2812端口映射到本地2812端口,可以通过浏览器访问进行验证,结果如图所示:

    通过ssh开启代理[2]xshell进行端口转发
  6. 参数说明和扩展

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值