`
qn_lf
  • 浏览: 120926 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

用ssh端口转发功能访问远程服务器 转

阅读更多

现在的系统一般都需要数据库,如oracle或者sybase,为了安全考虑,数据库一般建在内网的某台机器上,而数据库的端口也不能直接暴露在防 火墙外。为了支持现场工作,家里需要访问数据库时,一般的作法是先用远程桌面登录到现场的某台装有客户端的机器,再打开客户端访问数据库,这种办法最直 接,但很不方便,首先是网速的限制,刷新画面有时候非常慢,另一个不方便的地方是,有可能这台装客户端的机器有多个人同时要用,这时候互相之间很有可能要 打架了图片点击可在新窗口打开查看 。如果现场有能直接访问的linux服务器,就可以用ssh的端口转发功能来访问数据库。

 

首先,现场需要有一台linux服务器,而且打开ssh服务,当然这台服务器的22端口要在防火墙上配置成能被外网访问到,或者这台服务器本身就是接口服务器。

另外,你本地的机器需要有用于ssh登录的软件(比如说SecureCRT),而且需要能访问到现场那台linux服务器。

最后,当然你得有数据库客户端。

linux服务器我们取名叫A,

内网的数据库服务器我们取名叫B。

 

我们用SecureCRT来举例说明ssh的端口转发功能,当然其它软件应该也有类似功能,这就需要你自己研究一下了。

首先,在SecureCRT里建立一个普通会话,用ssh连接到A,如果不会建立会话,请参考软件手册,或者联系我。

然后,想办法得到数据库的服务端口,比如oracle一般是1521,sybase一般是5000,下面用oracle的1521端口作例子。

接着,打开SecureCRT刚刚建立的会话的属性,


能看到对话框左边有个Port Forwarding,点开后在右边点击Add...

 


图片点击可在新窗口打开查看 此主题相关图片如下:

在弹出的对话框里填这几样东东:

Name: 随便写个名字,这里是oracle

Local下面的Port:填入本地将建立的服务端口,这里是1521跟远程的一样(后面会解释这个端口)

Remote下面把Destination host is different from the SSH server前的勾打上,

Remote下面Hostname:填入B的IP,比如10.8.20.10

Remote下面的Port:填入数据库服务器的服务端口,这里是1521(如果跟本地端口一样,一般会自动填上不用改)

最后点OK确定。 

 


图片点击可在新窗口打开查看 此主题相关图片如下:

 

再点OK确定,这时我们的工作已经完成一半了,剩下的就是数据库客户端的设置了,在这之前先解释一下前面设置的两个端口分别是干什么的。

前面看到设置的时候有两个端口,一个是Local,一个是Remote。

Remote:指的就是远程数据库的服务端口,这很好理解,这个端口肯定得设置。

Local:指的是在本地,SecureCRT将开一个监听端口,通过ssh,将所有在这个端口上收到的消息,转发到远程数据库的服务端口。


图片点击可在新窗口打开查看 此主题相关图片如下:

 

所以,客户端设置的时候,只要把数据库地址设置成localhost,或者127.0.0.1就可以了,端口则设置成上面我们设置的Local下面的端口,如果不会设置,找会的人问下,或者google一下,或者参考手册。

 

好了,设置完成,让我们来试着连接一下,如果SecureCRT的会话在修改属性后还没重连过,现在断开。

首先,连接修改过属性的会话,连上A。

然后,打开数据库客户端,选择刚刚建立的数据库设置连上,好了,如果顺利,你现在打开的就是现场数据库了。

 

提醒一下,如果用这种方式打开数据库,必须保持ssh连接,因为所有的数据是通过ssh连接发送的。

当然这种方法不止限于数据库,大部分内网的服务都可以用这种方式来访问,比如说内网的远程桌面,试一下,这个功能远比你想象的好用。

  • 大小: 36.2 KB
  • 大小: 55.6 KB
  • 大小: 38.9 KB
  • 大小: 9.8 KB
分享到:
评论
4 楼 skzr.org 2011-01-10  
qn_lf 写道
skzr.org 写道
A机器的ssh无法直接访问,内网的ubuntu server的ssh已经安装了,不知道ssh的反向连接是啥?
家里的client pc可以完全暴露端口到adsl线路上
那个client的ubuntu下有securtCRT没?



前提是在家可以访问公司任何一台机子的ssh服务,可通过防火墙进行端口映射


不用,家里开启ssh服务,公司机器利用反向转发连接家里的机器,就可以了
具体案例可以参考:远程控制内网机器
3 楼 qn_lf 2011-01-10  
skzr.org 写道
A机器的ssh无法直接访问,内网的ubuntu server的ssh已经安装了,不知道ssh的反向连接是啥?
家里的client pc可以完全暴露端口到adsl线路上
那个client的ubuntu下有securtCRT没?



前提是在家可以访问公司任何一台机子的ssh服务,可通过防火墙进行端口映射
2 楼 skzr.org 2011-01-05  
非常感谢你的热情
1 楼 skzr.org 2011-01-05  
A机器的ssh无法直接访问,内网的ubuntu server的ssh已经安装了,不知道ssh的反向连接是啥?
家里的client pc可以完全暴露端口到adsl线路上
那个client的ubuntu下有securtCRT没?

相关推荐

Global site tag (gtag.js) - Google Analytics