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

Pet*_*mit 6 linux ssh ssh-tunnel

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

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

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

jti*_*man 8

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

Host gatewaymachine
  LocalForward 12080 remote_ip:portnum
Run Code Online (Sandbox Code Playgroud)

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

http://localhost:12080
Run Code Online (Sandbox Code Playgroud)

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

除了编辑 ssh 配置,您还可以使用 ssh 命令参数:

ssh -L 12080:remote_ip:portnum gatewaymachine
Run Code Online (Sandbox Code Playgroud)

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