我的情况:我想使用 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如果您无法长时间维持隧道畅通。