利用ssh隧道解决登录vps服务器慢的问题

1. 背景

linode的vps在某些网络下访问比较慢,甚至还有丢包的情况。但是从国内的服务器ping过去,一切正常。之前听说过ssh端口转发及隧道特性,于是考虑在通过正常的国内服务器去登录vps。

2. 传统做法

先登录稳定服务器,然后在上面再通过ssh登录到目标机器。虽然简单直接,但这样的缺点也显而易见,证书管理不方便。

3. SSH隧道方式

这里是基于稳定服务器将vps的端口转发到了本地。

  • step1 先登录稳定服务器
    ssh -L 36000:VPS-IP:22 稳定服务器IP
    这里通过稳定服务器,将VPS的22端口转发到了本地的36000端口
  • step2 登录本地端口
    ssh -p 36000 localhost
    由于是转发,这里之前在VPS上配置的证书依然可以使用,只是换了一个端口和IP而已。

4. 其他使用场景

本地端口转发还有一个比较实用的场景,就是可以将服务器的内网端口转发到本地。比如,有些开发同学习惯通过本地的IDE连接远程的mysql,这样将数据库的远程访问权限打开有一定安全隐患。体验下另外一种方式:

# 先将远程服务器的192.168.2.110:3307端口映射到本地33070
ssh -L 33070:192.168.2.110:3307 跳板机IP
#登录本地33070端口,注意将host指定为127.0.0.1
mysql -P 33070 -h127.0.0.1 -uusername -p'password'

5. 其他转发方式

除了将远程端口转发到本地(Local Forwarding),还有两种方式:

  • 动态端口转发(Dynamic Forwarding)
    ssh -D [bind_addr]:port user@server
    适合代理方式

  • 远程端口转发(Remote Forwarding)
    ssh -R [bind_addr]:port:host:hostport user@server
    相当于将host:hostport映射到了server:port上

标签:SSHVPS 发布于:2019-11-11 09:49:42