好的,我有一个 Web 服务器,我们称之为服务器 A,它通过 HTTPS 提供服务。我有一个 SSH 网关服务器,我们称之为服务器 B。
由于防火墙规则,我无法从我的台式 Linux 计算机访问服务器 A 的 Web 服务。因此,要查看 Web 服务,我必须使用 X Forwarding 通过 SSH 连接到服务器 B,并通过 SSH 隧道运行 Firefox。服务器 B 可以访问服务器 A 的 Web 服务,因此一切正常。
我想知道是否可以在我的 PC 和服务器 B 之间创建一个 SSH 隧道,这样我就可以使用我的桌面 Web 浏览器访问服务器 A 上的服务,而不是通过 SSH 隧道运行 Firefox。
答案1
对的,这是可能的:
ssh -L 8443:serverA:443 -Nf [user@]<serverB>
这将允许您将桌面浏览器指向端口 8443 并将其发送到服务器 A 上的端口 443(HTTPS 端口)。这-Nf
将使会话后台运行并立即退出回到您的桌面,而不是建立与服务器 B 的实际 shell 会话。
答案2
您甚至不需要SSH Tunneling
访问web service
。Server A
您可以使用Dynamic Port Forwarding
ssh -N -D 9000 user@server_b
并配置你的网络浏览器以使用 SOCKS 代理主机127.0.0.1
和端口9000