通过SSH访问服务器的service

产品服务器上的一些服务,比如memcached、Monit Service Manager、database等等,它们的端口往往是被封锁在防火墙内,不可以从外部访问的。有时候为了维护方便,我们希望能够远程访问这些服务,打开防火墙允许这些端口显然不是最好的方式,其实可以用SSH建立一个tunnel,通过这个隧道远程访问这些服务。

以Monit Service Manager为例。比如我们在产品服务器yourserver.com上设置好了monit,并且打开了httpd方式的Monit Service Manager,设置为只允许本地访问,使用缺省端口2812:

set httpd port 2812 address localhost 
    allow localhost

登录到产品服务器访问这个服务显然不实际,从远程访问这个服务,用HTTP Authentication不够安全,SSL配置起来又稍显繁琐。我们可以利用SSH,只用下面一条命令,建立一个从本地2000端口到产品服务器yourserver.com 2812端口的一个通道:

ssh -L2000:localhost:2812 username@yourserver.com

运行完后,就可以通过http://localhost:2000直接访问产品服务器上的Monit Service Manager了。

Monit

同样的方法适用于很多服务,简便,又最大限度的保证了安全性。

4 thoughts on “通过SSH访问服务器的service

Comments are closed.