如何设置端口转发

如何设置端口转发

我有以下设置。

本地 -- 服务器A -- 服务器B

我需要从本地 scp、ssh 到 B。我现在要做的是 scp/ssh 到 A,然后从 A 到 BI,我想知道如何设置端口转发,这样我就可以 ssh 到特定端口,然后直接到达服务器 B

答案1

这听起来像是反向 SSH 隧道的工作。

服务器 B 位于您无法控制的 NAT 或防火墙后面的网络上。在这种情况下,路由器上的端口转发是不可能的。

2021 年更新:改用 ProxyCommand 或 ProxyJump 选项:https://www.redhat.com/sysadmin/ssh-proxy-bastion-proxyjump

代理命令:

将以下内容添加到您的 ssh 配置中~/.ssh/config

Host server-b
  ProxyCommand ssh user@server-a -W %h:%p

您甚至可以在命令行上执行以下操作:

ssh -o ProxyCommand="ssh -W %h:%p server-a" server-b

代理跳转:

SSH 7.3 及更高版本具有-J以下标志ProxyJump

ssh -J user@<server-a:port> <user@server-b:port>

原始答案:

在反向隧道中,您通过可公开访问的 A 将连接隧道传输到 B。为此,您从 B 到 A 进行 SSH 连接,并在命令行上指定端口转发。

    ssh user@server-a -L 2222:server-b:22 -fN

然后从本地 -> A 使用指定转发端口的 SSH:

    ssh -p2222 server-b-user@localhost

...它会将您连接到服务器 B。

资料来源: https://www.redhat.com/sysadmin/ssh-proxy-bastion-proxyjump(2021)

http://www.revsys.com/writings/quicktips/ssh-tunnel.html

autossh如果您想自动创建并保持打开连接,您可能还需要使用。

http://www.ubuntugeek.com/automatically-restart-ssh-sessions-and-tunnels-using-autossh.html

相关内容