You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过两台跳转服务器实现SSH远程端口转发(Sublime与rmate通信)

多跳转服务器场景下建立Sublime Text与rmate的隧道连接

问题背景

我可通过命令 ssh -J user1@jump1,user2@jump2 user3@server 直接连接防火墙后方的目标服务器,连接路径为 local → user1@jump1 → user2@jump2 → user3@server。

现在需要建立本地Sublime Text与目标服务器上rmate的隧道连接,已知单服务器场景的命令为 ssh -R 52698:localhost:52698 user3@server,但找不到适用于多跳转服务器场景的实现方法,特此求助可行方案及带端口的命令示例。

尝试过的命令及错误

我曾执行以下命令:

ssh  -R 52698:localhost:52698,52698:jump1:52698, 52698:jump2:52698, 52698:server:52698 -J user1@jump1,user2@jump2 user3@server

出现错误提示:

Bad remote forwarding specification 52698:localhost:52698,52698:jump1:52698,52698:jump2:52698,52698:server:52698

注:jump1、jump2、server为对应IP地址的代称,实际命令中使用真实IP地址。


可行解决方案

简洁版命令(推荐)

不需要在转发规则中包含跳转服务器,直接将远程端口转发参数与跳转参数组合即可:

ssh -R 52698:localhost:52698 -J user1@jump1,user2@jump2 user3@server

原理:-J 参数会自动建立到每台跳转服务器的加密通道,所有流量通过这些通道转发至目标服务器;-R 52698:localhost:52698 负责将目标服务器的52698端口转发到本地的52698端口,rmate 连接目标服务器的该端口后,流量会通过已建立的多跳转通道回到本地Sublime Text。

分步建立隧道(精细控制场景)

如果需要更精细的通道控制,可分步操作:

  1. 建立本地到jump1的隧道,同时转发端口到jump2:
ssh -L 2222:jump2:22 user1@jump1
  1. 新开终端,通过本地2222端口连接jump2,同时转发端口到server:
ssh -L 3333:server:22 -p 2222 user2@localhost
  1. 再开终端,通过本地3333端口连接server并建立rmate转发:
ssh -R 52698:localhost:52698 -p 3333 user3@localhost

内容的提问来源于stack exchange,提问作者NotTilFour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 09:48:29