通过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了。 同样的方法适用于很多服务,简便,又最大限度的保证了安全性。