小编jmo*_*n12的帖子

通过跳转服务器进行远程端口转发

我有以下使用 ssh 进行远程端口转发的用例。我的本地网络上有一个许可服务器 (L)。我希望能够从目标服务器 (T) 获得许可。T 只能通过跳转盒 (J) 访问。为了使许可发挥作用,我需要两个特定端口可供 T 访问。我不想从 T 本地转发它们,因为我不会在这里进行开发。综上所述,我需要远程转发一个端口,比方说1025,如下:

L --> J --> T

目前的解决方案

目前,我只是做了两个远程端口转发,如下(后缀“_IP”指的是相关IP地址)

  • 来自L:ssh -fNT -R 1025:127.0.0.1:1025 user@J_IP
  • 来自 J:ssh -fNT -R 1025:127.0.0.1:1025 user@T_IP

一切都按其应有的方式进行。

想要解决方案

出于可用性和安全原因,我希望通过一条隧道或至少一条命令来完成转发。理想情况下,J 不应该提供转发的端口。在阅读了一些 ssh 文档和博客后,我从 L 中得出了以下命令:

ssh -fNT -R T_IP:1025:127.0.0.1:1025 user@J_IP
Run Code Online (Sandbox Code Playgroud)

这不起作用。J 上的 sshd 日志显示身份验证成功。首先,理论上正确吗?我应该另外配置T吗?

注意:我通常会在我的机器上使用本地端口转发直接 ssh 到 T 做类似的事情,我认为它会非常相似:

ssh -fNT -L [127.0.0.1:]2222:T_IP:22 user@J_IP
ssh -p 2222 user@localhost
Run Code Online (Sandbox Code Playgroud)

相关配置细节: J在/etc/ssh/sshd_config中有以下选项:

AllowTcpForwarding yes
GatewayPorts yes
Run Code Online (Sandbox Code Playgroud)

执行的测试: 我还必须说我不是 Linux 专家,所以我无法找到它不工作的所有可能原因。这些是它已经尝试过的场景:

  • GatewayPorts yes在 …

networking remote port-forwarding ssh-tunnel

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

networking ×1

port-forwarding ×1

remote ×1

ssh-tunnel ×1