石锅拌饭

通过SSH访问服务器的service

by Robin Lu on Feb.21, 2008, about , ,

产品服务器上的一些服务,比如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

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

:, ,

3 Comments for this entry

  • 美金

    ssh -L2000:localhost:2812 username@yourserver.com 是否应该为:
    ssh -L2000:yourserver.com:2812 username@yourserver.com

  • Robin Lu

    在这种情况,两个是一样的。
    这个localhost是从yourserver.com这台机器上看出去的localhost,其实就是yourserver.com这台机器。只要可以,建议用localhost代替yourserver.com,从TCP连接的角度,这样在你的服务器上,走的是loopback interface,即安全,又节约。
    当然,如果你是要通过yourserver.com连接内网的另一台机器,就需要提供那台机器的地址了。

  • 美金

    受教,刚才没看仔细man。

1 Trackback or Pingback for this entry

Search

Archives

Browse by tags

agile apple blog book design ecto extension firefox git google hack ichm iphone keyword life mac madfox movie nonsense opensource plugin pm ruby rubyonrails sns software startup wordpress work 财帮子