通过网关设置 ssh 隧道,可以吗?

通过网关设置 ssh 隧道,可以吗?

本地 -> 网关(仅启用 ssh 端口) -> 远程

我可以 ssh 到网关然后到远程,没问题。

我可以通过网关在本地和远程之间建立 ssh 隧道吗?我想访问本地:9980,它将通过网关转发到远程:9980。我担心使用网关上的端口 22 的隧道会给其他人的 ssh 使用带来麻烦。

谢谢

答案1

这取决于。

您的网关是实际的网关/路由器吗?还是网关/服务器?

如果是网关/路由器,那么您可以使用端口转发或 NAT。我会给你说明,但这取决于操作系统/制造商。本质上,你让网关/路由器监听端口 22,然后你转发到destination:9980,只要目的地正在监听 9980,这应该会自动工作。

如果它是一个网关/服务器(假设基于 Linux),那么您可以使用 IPTABLES NAT 规则,或者反向 ssh 隧道(应该从目标端初始化)。

IPTABLES NAT示例:

iptables -t nat -I PREROUTING --src 0/0 -p tcp --dport 22 -j REDIRECT --to-destination $destination_ip --to-ports 9980

这将接收来自端口 22 的任何地址的任何传入流量并将其转发到您的$目标 IP自动运行于端口 9980。

反向 SSH 隧道示例:

destination# ssh -R 9980:localhost:22 user@gateway

这会在网关上设置一个监听器,它将任何要指向的东西gateway:9980映射到destination:22

对于您来说,如果您像平常一样连接到网关:

local# ssh user@gateway

然后您就可以手动连接到目的地从你的网关根据需要,而不是自动

gateway# ssh user@localhost:9980

答案2

remote如果我理解正确的话,你可以通过 建立SSH 隧道gateway。具体做法如下:

ssh -L 9980:remote:9980 gateway

将通过网关使用 ssh 隧道将本地 9980 绑定到远程 9980 端口。

相关内容