文章

使用 SSH 隧道 实现 SSH 代理

使用SSH将实例中的端口代理到本地,具体步骤为:

  1. 在实例中启动您的服务(比如您的服务监听6006端口,下面以6006端口为例)

  2. 在本地电脑的终端(cmd / powershell / terminal等)中执行代理命令:

1
2
ssh -CNg -L 本地端口:127.0.0.1:远程服务端口 root@主机名 -p ssh端口
ssh -CNg -L 6006:127.0.0.1:6006 root@123.125.240.150 -p 42151

其中root@123.125.240.150和42151分别是实例中SSH指令的访问地址与端口,请找到自己实例的ssh指令做相应替换。6006:127.0.0.1:6006是指代理实例内6006端口到本地的6006端口。

执行完这条ssh命令,没有任何日志是正常的,只要没有要求重新输入密码或错误退出

Windows下的cmd/powershell如果一直提示密码错误,是因为无法粘贴,手动输入即可(正常不会显示正在输入的密码)

image-20230313162654913

  1. 在本地浏览器中访问http://127.0.0.1:6006即可打开服务,注意这里的6006端口要和上述6006:127.0.0.1:6006中的端口保持一致

image-20230313162636526

常见问题
  1. SSH指令的各个参数什么含义?

SSH指令复制出来为形如该格式的命令:ssh -p 48332 root@region-3.autodl.com

在ssh -p 48332 root@region-3.autodl.com命令中, 各个参数的含义为:

用户名:root

主机host: region-3.autodl.com

端口号:48332

那么ssh隧道的命令为(假设为代理实例中的6006端口到本地)

1
ssh -CNg -L 6006:127.0.0.1:6006 root@region-3.autodl.com -p 48332
本文由作者按照 CC BY 4.0 进行授权