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

跨网络建立SSH隧道至目标机器的问题咨询

直接通过SSH隧道连接私有网络目标机器并指定用户名的方法

我平时经常处理这种跨网络的SSH跳转需求,给你两种实用方案,解决你直接连接目标机器的问题,还能明确指定目标机器的用户名:

方案1:用ProxyJump一步到位(推荐,OpenSSH 7.3+支持)

如果你的本地SSH版本是7.3或更高,直接用这个命令就能跳过中转机器的手动登录,一步连到目标机器,还能分别指定中转和目标的用户名:

ssh -J [中转机器用户名]@[中转机器IP] [目标机器用户名]@192.168.1.x

举个实际例子,假设中转机器用户名是proxy_user,IP是你能直接SSH到的公网/内网IP(比如10.x.x.x),目标机器用户名是target_user,IP是192.168.1.10,那命令就是:

ssh -J proxy_user@10.x.x.x target_user@192.168.1.10

要是觉得连接卡顿,可以加两个优化参数:-C启用压缩(适合网络差的情况),-o ServerAliveInterval=60每隔60秒发心跳包保持连接:

ssh -C -o ServerAliveInterval=60 -J proxy_user@10.x.x.x target_user@192.168.1.10

方案2:本地端口转发(兼容旧版本SSH)

如果你的SSH版本比较老,不支持ProxyJump,就用本地端口转发的方式,分两步或者一步完成:

方式A:一次性命令直接连接

ssh -L 2222:192.168.1.x:22 [中转机器用户名]@[中转机器IP] -t ssh [目标机器用户名]@localhost -p 2222

这里的2222是本地随便选的未被占用的端口,命令的意思是:先通过中转机器把本地2222端口映射到目标机器的22端口,然后直接SSH到本地2222端口(也就是目标机器),同时指定目标机器的用户名。

方式B:先后台建立隧道,再单独连接

先在后台建立持久隧道(不会卡住你的终端):

ssh -fN -L 2222:192.168.1.x:22 [中转机器用户名]@[中转机器IP]

参数说明:-f让SSH后台运行,-N表示只建立隧道不执行远程命令。

之后每次要连目标机器,直接用这条命令(指定目标用户名):

ssh [目标机器用户名]@localhost -p 2222

如果要关闭隧道,用ps aux | grep ssh找到对应的进程,kill掉就行。

之前你的命令卡顿,大概率是没正确区分中转和目标的用户名,或者隧道参数没配置对,用上面的方法应该能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:08:32