我已经建立了一个反向 ssh 隧道到一个aws
服务器的受限网络,即访问它,我 ssh 到aws
服务器,然后从那里我可以在某个自定义端口上访问受限网络中的机器。
在这个受限网络上,有些设备可以通过 Web 浏览器进行配置。
我相信我可以做一些事情,比如ssh -R 8080:deviceIP:80 user@aws
把它转发到aws
机器上,但我仍然无法访问它(除了通过非常慢的远程 X 之外)。我如何通过管道deviceIP:80
连接到家里的浏览器aws
?
我已经尝试了上面的 ssh 命令,然后将我家用计算机上的浏览器定向到aws:8080
但没有加载任何页面......
SSH 隧道对于跨越不安全的网络很有用,在连接位于不同网络上的两个端点时提供端到端加密。
据我所知(感谢评论),您所拥有的是:
本地主机-A:您的
localhost
, 在您的本地网络上(可能在防火墙/NAT 后面)A可公开访问的主机-B:
aws
服务器不可公开访问的主机-C:在受限制的远程网络上(可能在防火墙/NAT 后面)
不可公开访问的主机-D:您称为 的主机
deviceIP
,它侦听端口80
并位于远程受限网络上如果您想将主机 A 连接到主机 D,让您的浏览器通过端口访问它
80
,您需要:从主机 A 到主机 B 的隧道,即:
让 host-A 监听端口
8080
通过隧道从该端口发送流量
在 host-B (
aws
) 上,将来自隧道的流量重定向到本地(即在 host-B 上)端口15872
(我从您的评论中得到它;您可以选择任何可用的端口;只要确保使用相同的端口即可命令)从主机 C 到主机 B 的隧道,即:
让 host-B 监听端口
15872
通过隧道从该端口发送流量
80
在主机 C(您的 Linux 服务器)上,将该流量重定向到主机 D 上的端口这样,在端口上向主机 A 发出的请求
8080
将通过隧道传送到主机 B,重定向到15872
同一主机 B 上的端口,隧道传送到主机 C 并在主机 C 上重定向到主机80
D 的端口。您不会将网络服务器重定向到浏览器 - 您会将请求从浏览器重定向到网络服务器。它是一个正向代理,而不是您需要的反向代理。
这将在您的客户端端口 8080 上创建一个侦听套接字,并将其路由通过
ssh
隧道转发到deviceIP
端口 80: