如何最好地设置 ssh 隧道以访问远程网络(Linux)

如何最好地设置 ssh 隧道以访问远程网络(Linux)

我的情况:我想使用 gdbserver 和 eclipse 远程调试我的 c++ 应用程序。Eclipse 在我的本地工作站(在 192.168.0.0 网络中)上运行,gdbserver 在 10.0.0.0 网络中的集群计算机上运行。我可以通过位于两个网络中的计算机通过 ssh 访问集群计算机。

如何设置隧道以便我的 eclipse 可以访问 gdbserver?我没有管理员权限/root/sudo 访问权限。

所有机器都是带有 openssh 的 linux/Unix。

答案1

我相信您已经可以通过 SSH 连接到远程专用网络 (10.0.0.0) 上的系统。如果您的本地系统正在运行 openssh,请将以下内容添加到您的$HOME/.ssh/config

Host gatewaymachine
  LocalForward 12080 remote_ip:portnum

其中 'remote_ip' 是 gdbserver 运行的远程集群计算机系统的 IP 地址,portnum 是它监听的端口。通过 SSH 连接到网关计算机,然后将您的应用程序连接到本地主机,端口 12080。例如,如果这是一个 Web 应用程序

http://localhost:12080

如果您没有使用 Web 应用程序,则需要设置您的连接信息以反映您将要访问“localhost”端口“12080”(或您喜欢的任何端口,请参见下文)。

您无需编辑 ssh 配置,也可以使用 ssh 命令参数:

ssh -L 12080:remote_ip:portnum gatewaymachine

(将 12080 更改为您想要的 1024 以上的任何端口;低于 1024 则需要 root 权限才能绑定到该端口)

答案2

基本上,jtimberman 说过 :)。你可能需要查看自动SSH如果您无法长时间维持隧道畅通。

相关内容