我有以下情况:
- 计算机 C 上监听 6678 端口的服务
- 只有计算机 B 可以通过 ssh 访问计算机 C
- 计算机 B 可在全球范围内访问
我想做以下事情:
在计算机“A”上设置一个服务,该服务侦听端口 6678,最终将被重定向到计算机“C”及其侦听服务。我知道我需要通过多个跳转创建一个 SSH 隧道。例如A -> B -> C
。
这个问题对我帮助很大,但问题是:它没有在“A”上设置可以全局访问的套接字。我尝试ssh -D
设置绑定套接字,例如
ssh -D *:6678 -p 6678 localhost
但它似乎没有什么作用。
创建多跳 SSH 隧道并同时在计算机“A”上设置侦听器以允许流量的最佳选择是什么?
答案1
我认为您正在寻找:
ssh -g -L 6678:computerC:6678 computerB
如果您在计算机 A 上运行此程序,它将打开计算机 A 上的一个端口,并使用与计算机 B 的 ssh 连接将流量重定向到计算机 C。这假设计算机 B 可以直接访问计算机 C 上的端口 6678。如果您只需要从计算机 A 访问计算机 C,您可能希望首先尝试不使用 -g 选项。如果您需要向多台计算机授予对计算机 C 的访问权限,您将需要 -g 选项,并且可能需要调整防火墙规则。